fix(markdown): inline footnote def if there's only one 1-line paragraph (#5025)
parent
669282e32a
commit
4ce28d3ef4
|
@ -345,22 +345,35 @@ function genericPrint(path, options, print) {
|
|||
return concat(["[^", node.identifier, "]"]);
|
||||
case "footnoteDefinition": {
|
||||
const nextNode = path.getParentNode().children[path.getName() + 1];
|
||||
const shouldInlineFootnote =
|
||||
node.children.length === 1 &&
|
||||
node.children[0].type === "paragraph" &&
|
||||
(options.proseWrap === "never" ||
|
||||
(options.proseWrap === "preserve" &&
|
||||
node.children[0].position.start.line ===
|
||||
node.children[0].position.end.line));
|
||||
return concat([
|
||||
"[^",
|
||||
node.identifier,
|
||||
"]: ",
|
||||
group(
|
||||
shouldInlineFootnote
|
||||
? printChildren(path, options, print)
|
||||
: group(
|
||||
concat([
|
||||
align(
|
||||
" ".repeat(options.tabWidth),
|
||||
printChildren(path, options, print, {
|
||||
processor: (childPath, index) =>
|
||||
index === 0
|
||||
? group(concat([softline, softline, childPath.call(print)]))
|
||||
? group(
|
||||
concat([softline, softline, childPath.call(print)])
|
||||
)
|
||||
: childPath.call(print)
|
||||
})
|
||||
),
|
||||
nextNode && nextNode.type === "footnoteDefinition" ? softline : ""
|
||||
nextNode && nextNode.type === "footnoteDefinition"
|
||||
? softline
|
||||
: ""
|
||||
])
|
||||
)
|
||||
]);
|
||||
|
|
|
@ -2,12 +2,43 @@
|
|||
|
||||
exports[`long.md - markdown-verify 1`] = `
|
||||
[^hello]: this is a long long long long long long long long long long long long long paragraph.
|
||||
[^world]: this is a long long long long long long long long long long long long long paragraph.
|
||||
this is a long long long long long long long long long long long long long paragraph.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
[^hello]:
|
||||
|
||||
this is a long long long long long long long long long long long long long
|
||||
paragraph.
|
||||
|
||||
[^world]:
|
||||
|
||||
this is a long long long long long long long long long long long long long
|
||||
paragraph. this is a long long long long long long long long long long long
|
||||
long long paragraph.
|
||||
|
||||
`;
|
||||
|
||||
exports[`long.md - markdown-verify 2`] = `
|
||||
[^hello]: this is a long long long long long long long long long long long long long paragraph.
|
||||
[^world]: this is a long long long long long long long long long long long long long paragraph.
|
||||
this is a long long long long long long long long long long long long long paragraph.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
[^hello]: this is a long long long long long long long long long long long long long paragraph.
|
||||
[^world]: this is a long long long long long long long long long long long long long paragraph. this is a long long long long long long long long long long long long long paragraph.
|
||||
|
||||
`;
|
||||
|
||||
exports[`long.md - markdown-verify 3`] = `
|
||||
[^hello]: this is a long long long long long long long long long long long long long paragraph.
|
||||
[^world]: this is a long long long long long long long long long long long long long paragraph.
|
||||
this is a long long long long long long long long long long long long long paragraph.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
[^hello]: this is a long long long long long long long long long long long long long paragraph.
|
||||
[^world]:
|
||||
|
||||
this is a long long long long long long long long long long long long long paragraph.
|
||||
this is a long long long long long long long long long long long long long paragraph.
|
||||
|
||||
`;
|
||||
|
||||
exports[`multiline.md - markdown-verify 1`] = `
|
||||
|
@ -64,6 +95,112 @@ exports[`multiline.md - markdown-verify 1`] = `
|
|||
|
||||
`;
|
||||
|
||||
exports[`multiline.md - markdown-verify 2`] = `
|
||||
[^fn1]:
|
||||
|
||||
> \`\`\`rs
|
||||
> fn main() {
|
||||
> println!("this is some Rust!");
|
||||
> }
|
||||
> \`\`\`
|
||||
|
||||
[^fn2]: Here is a footnote which includes code.
|
||||
|
||||
\`\`\`rs
|
||||
fn main() {
|
||||
println!("this is some Rust!");
|
||||
}
|
||||
\`\`\`
|
||||
|
||||
[^fn2]: Here is a footnote which includes code. Here is a footnote which includes code. Here is a footnote which includes code.
|
||||
|
||||
\`\`\`rs
|
||||
fn main() {
|
||||
println!("this is some Rust!");
|
||||
}
|
||||
\`\`\`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
[^fn1]:
|
||||
|
||||
> \`\`\`rs
|
||||
> fn main() {
|
||||
> println!("this is some Rust!");
|
||||
> }
|
||||
> \`\`\`
|
||||
|
||||
[^fn2]: Here is a footnote which includes code.
|
||||
|
||||
\`\`\`rs
|
||||
fn main() {
|
||||
println!("this is some Rust!");
|
||||
}
|
||||
\`\`\`
|
||||
|
||||
[^fn2]:
|
||||
|
||||
Here is a footnote which includes code. Here is a footnote which includes code. Here is a footnote which includes code.
|
||||
|
||||
\`\`\`rs
|
||||
fn main() {
|
||||
println!("this is some Rust!");
|
||||
}
|
||||
\`\`\`
|
||||
|
||||
`;
|
||||
|
||||
exports[`multiline.md - markdown-verify 3`] = `
|
||||
[^fn1]:
|
||||
|
||||
> \`\`\`rs
|
||||
> fn main() {
|
||||
> println!("this is some Rust!");
|
||||
> }
|
||||
> \`\`\`
|
||||
|
||||
[^fn2]: Here is a footnote which includes code.
|
||||
|
||||
\`\`\`rs
|
||||
fn main() {
|
||||
println!("this is some Rust!");
|
||||
}
|
||||
\`\`\`
|
||||
|
||||
[^fn2]: Here is a footnote which includes code. Here is a footnote which includes code. Here is a footnote which includes code.
|
||||
|
||||
\`\`\`rs
|
||||
fn main() {
|
||||
println!("this is some Rust!");
|
||||
}
|
||||
\`\`\`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
[^fn1]:
|
||||
|
||||
> \`\`\`rs
|
||||
> fn main() {
|
||||
> println!("this is some Rust!");
|
||||
> }
|
||||
> \`\`\`
|
||||
|
||||
[^fn2]: Here is a footnote which includes code.
|
||||
|
||||
\`\`\`rs
|
||||
fn main() {
|
||||
println!("this is some Rust!");
|
||||
}
|
||||
\`\`\`
|
||||
|
||||
[^fn2]:
|
||||
|
||||
Here is a footnote which includes code. Here is a footnote which includes code. Here is a footnote which includes code.
|
||||
|
||||
\`\`\`rs
|
||||
fn main() {
|
||||
println!("this is some Rust!");
|
||||
}
|
||||
\`\`\`
|
||||
|
||||
`;
|
||||
|
||||
exports[`sibling.md - markdown-verify 1`] = `
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
|
@ -121,9 +258,137 @@ exports[`sibling.md - markdown-verify 1`] = `
|
|||
|
||||
`;
|
||||
|
||||
exports[`sibling.md - markdown-verify 2`] = `
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: > 123
|
||||
[^a]: a
|
||||
[^a]: > 123
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
|
||||
---
|
||||
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: > 123\\
|
||||
> 456
|
||||
[^a]: a
|
||||
[^a]: > 123\\
|
||||
> 456
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: > 123
|
||||
[^a]: a
|
||||
[^a]: > 123
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
|
||||
---
|
||||
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]:
|
||||
|
||||
> 123\\
|
||||
> 456
|
||||
|
||||
[^a]: a
|
||||
[^a]:
|
||||
|
||||
> 123\\
|
||||
> 456
|
||||
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
|
||||
`;
|
||||
|
||||
exports[`sibling.md - markdown-verify 3`] = `
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: > 123
|
||||
[^a]: a
|
||||
[^a]: > 123
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
|
||||
---
|
||||
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: > 123\\
|
||||
> 456
|
||||
[^a]: a
|
||||
[^a]: > 123\\
|
||||
> 456
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: > 123
|
||||
[^a]: a
|
||||
[^a]: > 123
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
|
||||
---
|
||||
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]:
|
||||
|
||||
> 123\\
|
||||
> 456
|
||||
|
||||
[^a]: a
|
||||
[^a]:
|
||||
|
||||
> 123\\
|
||||
> 456
|
||||
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
[^a]: a
|
||||
|
||||
`;
|
||||
|
||||
exports[`simple.md - markdown-verify 1`] = `
|
||||
[^hello]: world
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
[^hello]: world
|
||||
|
||||
`;
|
||||
|
||||
exports[`simple.md - markdown-verify 2`] = `
|
||||
[^hello]: world
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
[^hello]: world
|
||||
|
||||
`;
|
||||
|
||||
exports[`simple.md - markdown-verify 3`] = `
|
||||
[^hello]: world
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
[^hello]: world
|
||||
|
||||
`;
|
||||
|
|
|
@ -1 +1,3 @@
|
|||
run_spec(__dirname, ["markdown"], { proseWrap: "always" });
|
||||
run_spec(__dirname, ["markdown"], { proseWrap: "never" });
|
||||
run_spec(__dirname, ["markdown"], { proseWrap: "preserve" });
|
||||
|
|
|
@ -1 +1,3 @@
|
|||
[^hello]: this is a long long long long long long long long long long long long long paragraph.
|
||||
[^world]: this is a long long long long long long long long long long long long long paragraph.
|
||||
this is a long long long long long long long long long long long long long paragraph.
|
||||
|
|
Loading…
Reference in New Issue