diff --git a/src/core/components/providers/markdown.jsx b/src/core/components/providers/markdown.jsx
index 65b94d9d..ee2ddec2 100644
--- a/src/core/components/providers/markdown.jsx
+++ b/src/core/components/providers/markdown.jsx
@@ -35,6 +35,8 @@ function Markdown({ source, className = "" }) {
linkTarget: "_blank"
})
+ md.core.ruler.disable(["replacements", "smartquotes"])
+
const html = md.render(source)
const sanitized = sanitizer(html)
diff --git a/test/e2e-cypress/static/documents/bugs/5060.yaml b/test/e2e-cypress/static/documents/bugs/5060.yaml
new file mode 100644
index 00000000..5c3c32ab
--- /dev/null
+++ b/test/e2e-cypress/static/documents/bugs/5060.yaml
@@ -0,0 +1,10 @@
+---
+swagger: '2.0'
+info:
+ title: Foobar Service
+ description: '
Example of a simple GET request via curl with bearer HTTP Authentication:
curl + -X GET "https://foobar.com/stuff" -H "Accept: application/json" -H "Authorization: + Bearer abc123.xyz.789"' + version: '2.0' +paths: {} + diff --git a/test/e2e-cypress/tests/bugs/5060.js b/test/e2e-cypress/tests/bugs/5060.js new file mode 100644 index 00000000..68ce6bc3 --- /dev/null +++ b/test/e2e-cypress/tests/bugs/5060.js @@ -0,0 +1,15 @@ +describe("#5060: unwanted smart quotes in rendered Markdown", () => { + it("should not convert regular quotes to smart quotes", () => { + cy + .visit("/?url=/documents/bugs/5060.yaml") + .get("div.description") + .should($el => { + const text = $el.get(0).textContent + expect(text).to.include(`Example of a simple GET request via curl with bearer HTTP Authentication`) + expect(text).to.include(`curl -X GET "https://foobar.com/stuff"`) + expect(text).to.include(`-H "Accept: application/json"`) + expect(text).to.include(`-H "Authorization: Bearer abc123.xyz.789"`) + expect(text.indexOf(`“`)).to.equal(-1) + }) + }) +})