diff --git a/app/assets/javascripts/discourse/lib/to-markdown.js.es6 b/app/assets/javascripts/discourse/lib/to-markdown.js.es6 index be280948498..c52b3befbe1 100644 --- a/app/assets/javascripts/discourse/lib/to-markdown.js.es6 +++ b/app/assets/javascripts/discourse/lib/to-markdown.js.es6 @@ -86,6 +86,14 @@ class Tag { }; } + static keep(name) { + return class extends Tag { + constructor() { + super(name, `<${name}>`, ``); + } + }; + } + static replace(name, text) { return class extends Tag { constructor() { @@ -184,9 +192,10 @@ const tags = [ ...Tag.emphases().map((e) => Tag.emphasis(e[0], e[1])), Tag.cell("td"), Tag.cell("th"), Tag.replace("br", "\n"), Tag.replace("hr", "\n---\n"), Tag.replace("head", ""), + Tag.keep("ins"), Tag.keep("del"), Tag.keep("small"), Tag.keep("big"), Tag.li(), Tag.link(), Tag.image(), - // TO-DO CREATE: code, tbody, ins, del, blockquote, small, large + // TO-DO CREATE: code, tbody, blockquote // UPDATE: ol, pre, thead, th, td ]; diff --git a/test/javascripts/lib/to-markdown-test.js.es6 b/test/javascripts/lib/to-markdown-test.js.es6 index 4a8e0cd8cb4..eb5c7c729fe 100644 --- a/test/javascripts/lib/to-markdown-test.js.es6 +++ b/test/javascripts/lib/to-markdown-test.js.es6 @@ -128,3 +128,23 @@ QUnit.test("converts img tag", assert => { html = `description`; assert.equal(toMarkdown(html), `![description](${url})`); }); + +QUnit.test("suppring html tags by keeping them", assert => { + let html = "Lorem ipsum dolor sit amet, consectetur"; + let output = html; + assert.equal(toMarkdown(html), output); + + html = `Lorem ipsum dolor sit amet, consectetur`; + assert.equal(toMarkdown(html), output); + + html = `Lorem ipsum dolor sit.`; + output = `[Lorem ipsum dolor sit](http://example.com).`; + assert.equal(toMarkdown(html), output); + + html = `Lorem ipsum \n\n dolor sit.`; + assert.equal(toMarkdown(html), html); + + html = `Lorem ipsum \n\n\n dolor sit.`; + output = `Lorem [ipsum \n dolor sit.](http://example.com)`; + assert.equal(toMarkdown(html), output); +});