PERF: Better handling of headings in HTML inline pasting

This commit is contained in:
Vinoth Kannan 2017-12-17 00:45:21 +05:30
parent 8175740e87
commit 4f2f42d710
3 changed files with 10 additions and 5 deletions

View File

@ -640,11 +640,11 @@ export default Ember.Component.extend({
},
_pasteMarkdown(text) {
const lineVal = this._getSelected(null, {lineVal: true}).lineVal;
const { pre, lineVal } = this._getSelected(null, {lineVal: true});
if(lineVal) { // inline pasting
if(lineVal && pre.match(/[^\n]$/)) { // inline pasting
text = text.replace(/^#+/, "").trim();
text = (lineVal.search(/\s$/) === lineVal.length - 1) ? text : ` ${text}`;
text = pre.match(/\S$/) ? ` ${text}` : text;
}
this.appEvents.trigger('composer:insert-text', text);

View File

@ -109,6 +109,7 @@ class Tag {
const attr = this.element.attributes;
if (attr && attr.href && text !== attr.href) {
text = text.replace(/\n{2,}/g, "\n");
return "[" + text + "](" + attr.href + ")";
}

View File

@ -21,8 +21,12 @@ QUnit.test("converts inline nested styles", assert => {
});
QUnit.test("converts a link", assert => {
const html = `<a href="https://discourse.org">Discourse</a>`;
const markdown = `[Discourse](https://discourse.org)`;
let html = `<a href="https://discourse.org">Discourse</a>`;
let markdown = `[Discourse](https://discourse.org)`;
assert.equal(toMarkdown(html), markdown);
html = `<a href="https://discourse.org">Disc\n\n\nour\n\nse</a>`;
markdown = `[Disc\nour\nse](https://discourse.org)`;
assert.equal(toMarkdown(html), markdown);
});