Merge pull request #6333 from vinothkannans/rich-text-pasting

FIX: Use tight list format for GDocs html to markdown
This commit is contained in:
Vinoth Kannan 2018-08-30 12:14:50 +05:30 committed by GitHub
commit 092fb0c170
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 2 deletions

View File

@ -109,6 +109,12 @@ export class Tag {
}
decorate(text) {
const parent = this.element.parent;
if (this.name === "p" && parent && parent.name === "li") { // fix for google docs
this.gap = "";
}
return `${this.gap}${this.prefix}${text}${this.suffix}${this.gap}`;
}
};
@ -400,6 +406,12 @@ export class Tag {
return class extends Tag.block(name) {
decorate(text) {
let smallGap = "";
const parent = this.element.parent;
if (parent && parent.name === "ul") {
this.gap = "";
this.suffix = "\n";
}
if (this.element.filterParentNames(["li"]).length) {
this.gap = "";

View File

@ -70,7 +70,7 @@ QUnit.test("converts heading tags", assert => {
});
QUnit.test("converts ul list tag", assert => {
const html = `
let html = `
<ul>
<li>Item 1</li>
<li>
@ -84,7 +84,20 @@ QUnit.test("converts ul list tag", assert => {
<li>Item 3</li>
</ul>
`;
const markdown = `* Item 1\n* Item 2\n * Sub Item 1\n * Sub Item 2\n\n * Sub Item 3\n * Sub *Sub* Item 1\n * Sub **Sub** Item 2\n* Item 3`;
let markdown = `* Item 1\n* Item 2\n * Sub Item 1\n * Sub Item 2\n * Sub Item 3\n * Sub *Sub* Item 1\n * Sub **Sub** Item 2\n* Item 3`;
assert.equal(toMarkdown(html), markdown);
html = `
<ul>
<li><p><span>Bullets at level 1</span></p></li>
<li><p><span>Bullets at level 1</span></p></li> <ul> <li><p><span>Bullets at level 2</span></p></li> <li><p><span>Bullets at level 2</span></p></li> <ul> <li><p><span>Bullets at level 3</span></p></li> </ul> <li><p><span>Bullets at level 2</span></p></li> </ul> <li><p><span>Bullets at level 1</span></p></li></ul> `;
markdown = `* Bullets at level 1
* Bullets at level 1
* Bullets at level 2
* Bullets at level 2
* Bullets at level 3
* Bullets at level 2
* Bullets at level 1`;
assert.equal(toMarkdown(html), markdown);
});