fix(markdown): replace newlines with hardlines in multiparser (#3611)
* test: add failing test * fix(markdown): replace newlines with hardlines in multiparsermaster
parent
0af436cd47
commit
6872ed8310
|
@ -18,7 +18,13 @@ function embed(path, print, textToDoc, options) {
|
|||
Math.max(3, util.getMaxContinuousCount(node.value, styleUnit) + 1)
|
||||
);
|
||||
const doc = textToDoc(node.value, { parser });
|
||||
return concat([style, node.lang, hardline, doc, style]);
|
||||
return concat([
|
||||
style,
|
||||
node.lang,
|
||||
hardline,
|
||||
replaceNewlinesWithHardlines(doc),
|
||||
style
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -38,6 +44,20 @@ function embed(path, print, textToDoc, options) {
|
|||
|
||||
return null;
|
||||
}
|
||||
|
||||
function replaceNewlinesWithHardlines(doc) {
|
||||
return util.mapDoc(
|
||||
doc,
|
||||
currentDoc =>
|
||||
typeof currentDoc === "string" && currentDoc.includes("\n")
|
||||
? concat(
|
||||
currentDoc
|
||||
.split(/(\n)/g)
|
||||
.map((v, i) => (i % 2 === 0 ? v : hardline))
|
||||
)
|
||||
: currentDoc
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = embed;
|
||||
|
|
|
@ -35,6 +35,113 @@ exports[`code.md 1`] = `
|
|||
|
||||
`;
|
||||
|
||||
exports[`ignore-code.md 1`] = `
|
||||
> \`\`\`\`md
|
||||
> <!-- prettier-ignore -->
|
||||
> \`\`\`js
|
||||
> ugly ( code ) ;
|
||||
> \`\`\`
|
||||
> \`\`\`\`
|
||||
|
||||
> \`\`\`md
|
||||
> <!-- prettier-ignore -->
|
||||
> - This is a long long
|
||||
> long long long long
|
||||
> long long paragraph.
|
||||
> \`\`\`
|
||||
|
||||
> - test
|
||||
> \`\`\`md
|
||||
> <!-- prettier-ignore -->
|
||||
> - This is a long long
|
||||
> long long long long
|
||||
> long long paragraph.
|
||||
> \`\`\`
|
||||
|
||||
\`\`\`\`md
|
||||
> \`\`\`md
|
||||
> <!-- prettier-ignore -->
|
||||
> - This is a long long
|
||||
> long long long long
|
||||
> long long paragraph.
|
||||
> \`\`\`
|
||||
\`\`\`\`
|
||||
|
||||
> \`\`\`\`md
|
||||
> > \`\`\`md
|
||||
> > <!-- prettier-ignore -->
|
||||
> > - This is a long long
|
||||
> > long long long long
|
||||
> > long long paragraph.
|
||||
> > \`\`\`
|
||||
> \`\`\`\`
|
||||
|
||||
>
|
||||
> <!-- prettier-ignore -->
|
||||
> - This is a long long
|
||||
> long long long long
|
||||
> long long paragraph.
|
||||
>
|
||||
|
||||
> \`\`\`\`js
|
||||
> // prettier-ignore
|
||||
> const x = 1,
|
||||
> b = 2
|
||||
> \`\`\`\`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
> \`\`\`\`md
|
||||
> <!-- prettier-ignore -->
|
||||
> \`\`\`js
|
||||
> ugly ( code ) ;
|
||||
> \`\`\`
|
||||
> \`\`\`\`
|
||||
|
||||
> \`\`\`md
|
||||
> <!-- prettier-ignore -->
|
||||
> - This is a long long
|
||||
> long long long long
|
||||
> long long paragraph.
|
||||
> \`\`\`
|
||||
|
||||
> * test
|
||||
> \`\`\`md
|
||||
> <!-- prettier-ignore -->
|
||||
> - This is a long long
|
||||
> long long long long
|
||||
> long long paragraph.
|
||||
> \`\`\`
|
||||
|
||||
\`\`\`\`md
|
||||
> \`\`\`md
|
||||
> <!-- prettier-ignore -->
|
||||
> - This is a long long
|
||||
> long long long long
|
||||
> long long paragraph.
|
||||
> \`\`\`
|
||||
\`\`\`\`
|
||||
|
||||
> \`\`\`\`md
|
||||
> > \`\`\`md
|
||||
> > <!-- prettier-ignore -->
|
||||
> > - This is a long long
|
||||
> > long long long long
|
||||
> > long long paragraph.
|
||||
> > \`\`\`
|
||||
> \`\`\`\`
|
||||
|
||||
> <!-- prettier-ignore -->
|
||||
> - This is a long long
|
||||
> long long long long
|
||||
> long long paragraph.
|
||||
|
||||
> \`\`\`js
|
||||
> // prettier-ignore
|
||||
> const x = 1,
|
||||
> b = 2
|
||||
> \`\`\`
|
||||
|
||||
`;
|
||||
|
||||
exports[`nested.md 1`] = `
|
||||
>>> 123
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
> ````md
|
||||
> <!-- prettier-ignore -->
|
||||
> ```js
|
||||
> ugly ( code ) ;
|
||||
> ```
|
||||
> ````
|
||||
|
||||
> ```md
|
||||
> <!-- prettier-ignore -->
|
||||
> - This is a long long
|
||||
> long long long long
|
||||
> long long paragraph.
|
||||
> ```
|
||||
|
||||
> - test
|
||||
> ```md
|
||||
> <!-- prettier-ignore -->
|
||||
> - This is a long long
|
||||
> long long long long
|
||||
> long long paragraph.
|
||||
> ```
|
||||
|
||||
````md
|
||||
> ```md
|
||||
> <!-- prettier-ignore -->
|
||||
> - This is a long long
|
||||
> long long long long
|
||||
> long long paragraph.
|
||||
> ```
|
||||
````
|
||||
|
||||
> ````md
|
||||
> > ```md
|
||||
> > <!-- prettier-ignore -->
|
||||
> > - This is a long long
|
||||
> > long long long long
|
||||
> > long long paragraph.
|
||||
> > ```
|
||||
> ````
|
||||
|
||||
>
|
||||
> <!-- prettier-ignore -->
|
||||
> - This is a long long
|
||||
> long long long long
|
||||
> long long paragraph.
|
||||
>
|
||||
|
||||
> ````js
|
||||
> // prettier-ignore
|
||||
> const x = 1,
|
||||
> b = 2
|
||||
> ````
|
Loading…
Reference in New Issue