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}>`, `${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 = `
`;
assert.equal(toMarkdown(html), ``);
});
+
+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);
+});