fix(javascript): correct escape for markdown in js (#4381)
* test: add tests * fix(javascript): correct escape for markdown in js * test: add trailing newlinemaster
parent
b46a46b112
commit
ff38aaff95
|
@ -164,7 +164,10 @@ function embed(path, print, textToDoc /*, options */) {
|
|||
(parentParent.tag.name === "md" ||
|
||||
parentParent.tag.name === "markdown")))
|
||||
) {
|
||||
const text = parent.quasis[0].value.cooked;
|
||||
const text = parent.quasis[0].value.raw.replace(
|
||||
/((?:\\\\)*)\\`/g,
|
||||
(_, backslashes) => "\\".repeat(backslashes.length / 2) + "`"
|
||||
);
|
||||
const indentation = getIndentation(text);
|
||||
const hasIndent = indentation !== "";
|
||||
return concat([
|
||||
|
@ -207,7 +210,7 @@ function escapeBackticks(doc) {
|
|||
|
||||
currentDoc.parts.forEach(part => {
|
||||
if (typeof part === "string") {
|
||||
parts.push(part.replace(/`/g, "\\`"));
|
||||
parts.push(part.replace(/(\\*)`/g, "$1$1\\`"));
|
||||
} else {
|
||||
parts.push(part);
|
||||
}
|
||||
|
|
|
@ -69,6 +69,35 @@ markdown\\\`
|
|||
|
||||
`;
|
||||
|
||||
exports[`escape.js 1`] = `
|
||||
markdown\`
|
||||
const cssString = css\\\`
|
||||
background-color: \\$\\{color('base')\\}
|
||||
\\\`;
|
||||
\`
|
||||
|
||||
markdown\`
|
||||
- \\\`
|
||||
- \\\\\\\`
|
||||
- \\\\\\\\
|
||||
- \\$
|
||||
- \\u1234
|
||||
\`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
markdown\`
|
||||
const cssString = css\\\`background-color: \\$\\{color('base')\\}\\\`;
|
||||
\`;
|
||||
|
||||
markdown\`
|
||||
* \\\`
|
||||
* \\\\\\\`
|
||||
* \\\\\\\\
|
||||
* \\$
|
||||
* \\u1234
|
||||
\`;
|
||||
|
||||
`;
|
||||
|
||||
exports[`markdown.js 1`] = `
|
||||
export default function ReadMe() {
|
||||
return md\`
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
markdown`
|
||||
const cssString = css\`
|
||||
background-color: \$\{color('base')\}
|
||||
\`;
|
||||
`
|
||||
|
||||
markdown`
|
||||
- \`
|
||||
- \\\`
|
||||
- \\\\
|
||||
- \$
|
||||
- \u1234
|
||||
`
|
Loading…
Reference in New Issue