Switch to commonmark-test-suite (#18444)

This commit is contained in:
fisker Cheung authored and GitHub committed 2025-12-08 10:18:39 +08:00
1 parent 88a41df74f
commit 8ee96d64e5
63 files changed
+1689 -1141

No files matched your search

+1 -1
View File
@@ -135,7 +135,7 @@
"browserslist-to-esbuild": "2.1.1",
"buffer": "6.0.3",
"c8": "10.1.3",
"commonmark.json": "0.31.0",
"commonmark-test-suite": "0.1.0",
"cross-env": "10.1.0",
"cspell": "9.3.2",
"enquirer": "2.4.1",
+19 -13
View File
@@ -1,19 +1,25 @@
import fs from "node:fs/promises";
import { commonmark } from "commonmark.json";
import commonmarkTestSuite from "commonmark-test-suite";
const existing = new Set(commonmark.map(({ markdown }) => markdown.trim()));
const DIRECTORY = new URL(
"../tests/format/markdown/legacy-spec/",
import.meta.url,
const existing = new Set(
Object.values(commonmarkTestSuite).flatMap((release) =>
release.testCases.map(({ markdown }) => markdown.trim()),
),
);
for (const file of await fs.readdir(DIRECTORY, { withFileTypes: true })) {
if (!file.isFile()) {
continue;
}
const fileUrl = new URL(file.name, DIRECTORY);
const content = await fs.readFile(fileUrl, "utf8");
if (existing.has(content.trim())) {
await fs.rm(new URL(file.name, DIRECTORY));
const DIRECTORIES = [
new URL("../tests/format/markdown/spec-legacy/", import.meta.url),
];
for (const directory of DIRECTORIES) {
for (const file of await fs.readdir(directory, { withFileTypes: true })) {
if (!file.isFile()) {
continue;
}
const fileUrl = new URL(file.name, directory);
const content = await fs.readFile(fileUrl, "utf8");
if (existing.has(content.trim())) {
await fs.rm(new URL(file.name, directory));
}
}
}
@@ -0,0 +1,45 @@
import commonmarkTestSuite from "commonmark-test-suite";
const BUGS = new Set();
const exclude = new Set(
commonmarkTestSuite.latest.testCases.map(({ markdown }) => markdown),
);
const testCases = [];
for (const release of Object.values(commonmarkTestSuite)) {
if (release === commonmarkTestSuite.latest) {
continue;
}
for (const testCase of release.testCases) {
const { markdown } = testCase;
if (exclude.has(markdown)) {
continue;
}
exclude.add(markdown);
testCases.push({ version: release.version, ...testCase });
}
}
runFormatTest(
{
importMeta: import.meta,
snippets: testCases
.map(({ version, section, markdown: input, example }) => {
const filename = `${version}/example-${example}.md`;
if (BUGS.has(filename)) {
return;
}
return {
name: `${filename} (${section})`,
filename,
code: input,
};
})
.filter(Boolean),
},
["markdown"],
{ proseWrap: "always" },
);
@@ -1,4 +1,4 @@
import { commonmark as commonmarkTestSuite } from "commonmark.json";
import commonmarkTestSuite from "commonmark-test-suite";
const BUGS = new Set([
"example-11.md",
@@ -18,15 +18,16 @@ const BUGS = new Set([
runFormatTest(
{
importMeta: import.meta,
snippets: commonmarkTestSuite
.map(({ section, markdown: input }, index) => {
const filename = `example-${index + 1}.md`;
snippets: commonmarkTestSuite.latest.testCases
.map(({ section, markdown: input, example }) => {
const filename = `example-${example}.md`;
if (BUGS.has(filename)) {
return;
}
return {
name: `example-${index + 1}.md (${section})`,
name: `${filename} (${section})`,
filename,
code: input,
};
@@ -66,21 +66,6 @@ proseWrap: "always"
================================================================================
`;
exports[`example-33.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
# foo
=====================================output=====================================
# foo
================================================================================
`;
exports[`example-46.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
@@ -106,181 +91,6 @@ proseWrap: "always"
================================================================================
`;
exports[`example-134.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
<pre language="haskell"><code>
import Text.HTML.TagSoup
main :: IO ()
main = print $ parseTags tags
</code></pre>
=====================================output=====================================
<pre language="haskell"><code>
import Text.HTML.TagSoup
main :: IO ()
main = print $ parseTags tags
</code></pre>
================================================================================
`;
exports[`example-135.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
<script type="text/javascript">
// JavaScript example
document.getElementById("demo").innerHTML = "Hello JavaScript!";
</script>
=====================================output=====================================
<script type="text/javascript">
// JavaScript example
document.getElementById("demo").innerHTML = "Hello JavaScript!";
</script>
================================================================================
`;
exports[`example-136.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
<style
type="text/css">
h1 {color:red;}
p {color:blue;}
</style>
=====================================output=====================================
<style
type="text/css">
h1 {color:red;}
p {color:blue;}
</style>
================================================================================
`;
exports[`example-143.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
<!-- Foo
bar
baz -->
=====================================output=====================================
<!-- Foo
bar
baz -->
================================================================================
`;
exports[`example-144.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
<?php
echo '>';
?>
=====================================output=====================================
<?php
echo '>';
?>
================================================================================
`;
exports[`example-146.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then {
return 1;
} else {
return 0;
}
}
]]>
=====================================output=====================================
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then {
return 1;
} else {
return 0;
}
}
]]>
================================================================================
`;
exports[`example-159.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
[Foo bar]:
<my%20url>
'title'
[Foo bar]
=====================================output=====================================
[Foo bar]: my%20url "title"
[Foo bar]
================================================================================
`;
exports[`example-215.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
@@ -299,735 +109,3 @@ two
================================================================================
`;
exports[`example-222.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
- foo
bar
- foo
bar
- \`\`\`
foo
bar
\`\`\`
- baz
+ \`\`\`
foo
bar
\`\`\`
=====================================output=====================================
- foo
bar
- foo
bar
- \`\`\`
foo
bar
\`\`\`
- baz
- \`\`\`
foo
bar
\`\`\`
================================================================================
`;
exports[`example-224.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
- Foo
bar
baz
=====================================output=====================================
- Foo
bar
baz
================================================================================
`;
exports[`example-253.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
- foo
- bar
- baz
=====================================output=====================================
- foo
- bar
- baz
================================================================================
`;
exports[`example-254.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
- foo
- bar
- baz
=====================================output=====================================
- foo
- bar
- baz
================================================================================
`;
exports[`example-265.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
- foo
bar
- baz
=====================================output=====================================
- foo
bar
- baz
================================================================================
`;
exports[`example-267.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
- foo
- bar
- baz
- bim
=====================================output=====================================
- foo
- bar
- baz
- bim
================================================================================
`;
exports[`example-268.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
- foo
notcode
- foo
code
=====================================output=====================================
- foo
notcode
- foo
code
================================================================================
`;
exports[`example-269.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
- a
- b
- c
- d
- e
- f
- g
- h
- i
=====================================output=====================================
- a
- b
- c
- d
- e
- f
- g
- h
- i
================================================================================
`;
exports[`example-287.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
\\*not emphasized*
\\<br/> not a tag
\\[not a link](/foo)
\\\`not code\`
1\\. not a list
\\* not a list
\\# not a heading
\\[foo]: /url "not a reference"
=====================================output=====================================
\\*not emphasized\\* \\<br/> not a tag \\[not a link](/foo) \\\`not code\` 1\\. not a
list \\* not a list \\# not a heading \\[foo]: /url "not a reference"
================================================================================
`;
exports[`example-293.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
<http://example.com?find=\\*>
=====================================output=====================================
<http://example.com?find=\\*>
================================================================================
`;
exports[`example-299.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
&#35; &#1234; &#992; &#98765432; &#0;
=====================================output=====================================
&#35; &#1234; &#992; &#98765432; &#0;
================================================================================
`;
exports[`example-301.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
&nbsp &x; &#; &#x;
&ThisIsNotDefined; &hi?;
=====================================output=====================================
&nbsp &x; &#; &#x; &ThisIsNotDefined; &hi?;
================================================================================
`;
exports[`example-311.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
\`\` foo \` bar \`\`
=====================================output=====================================
\`\`foo \` bar \`\`
================================================================================
`;
exports[`example-314.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
\`foo bar
baz\`
=====================================output=====================================
\`foo bar baz\`
================================================================================
`;
exports[`example-315.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
\`foo \`\` bar\`
=====================================output=====================================
\`foo \`\` bar\`
================================================================================
`;
exports[`example-321.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
\`<http://foo.bar.\`baz>\`
=====================================output=====================================
\`<http://foo.bar.\`baz>\`
================================================================================
`;
exports[`example-322.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
<http://foo.bar.\`baz>\`
=====================================output=====================================
<http://foo.bar.\`baz>\`
================================================================================
`;
exports[`example-441.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
**foo*bar**
=====================================output=====================================
**foo\\*bar**
================================================================================
`;
exports[`example-452.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
**a<http://foo.bar/?q=**>
=====================================output=====================================
**a<http://foo.bar/?q=**>
================================================================================
`;
exports[`example-453.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
__a<http://foo.bar/?q=__>
=====================================output=====================================
**a<http://foo.bar/?q=**>
================================================================================
`;
exports[`example-463.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
[link]((foo)and(bar))
=====================================output=====================================
[link](<(foo)and(bar)>)
================================================================================
`;
exports[`example-465.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
[link](foo(and\\(bar\\)))
=====================================output=====================================
[link](<foo(and(bar))>)
================================================================================
`;
exports[`example-466.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
[link](<foo(and(bar))>)
=====================================output=====================================
[link](<foo(and(bar))>)
================================================================================
`;
exports[`example-468.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
[link](#fragment)
[link](http://example.com#fragment)
[link](http://example.com?foo=3#frag)
=====================================output=====================================
[link](#fragment)
[link](http://example.com#fragment)
[link](http://example.com?foo=3#frag)
================================================================================
`;
exports[`example-492.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
[foo<http://example.com/?search=](uri)>
=====================================output=====================================
[foo<http://example.com/?search=](uri)>
================================================================================
`;
exports[`example-501.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
[foo *bar][ref]
[ref]: /uri
=====================================output=====================================
[foo \\*bar][ref]
[ref]: /uri
================================================================================
`;
exports[`example-504.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
[foo<http://example.com/?search=][ref]>
[ref]: /uri
=====================================output=====================================
[foo<http://example.com/?search=][ref]>
[ref]: /uri
================================================================================
`;
exports[`example-506.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
[Толпой][Толпой] is a Russian word.
[ТОЛПОЙ]: /url
=====================================output=====================================
[Толпой][Толпой] is a Russian word.
[ТОЛПОЙ]: /url
================================================================================
`;
exports[`example-555.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
\\!\\[foo]
[foo]: /url "title"
=====================================output=====================================
\\!\\[foo]
[foo]: /url "title"
================================================================================
`;
exports[`example-558.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
<http://foo.bar.baz/test?q=hello&id=22&boolean>
=====================================output=====================================
<http://foo.bar.baz/test?q=hello&id=22&boolean>
================================================================================
`;
exports[`example-563.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
<http://../>
=====================================output=====================================
<http://../>
================================================================================
`;
exports[`example-565.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
<http://foo.bar/baz bim>
=====================================output=====================================
<http://foo.bar/baz bim>
================================================================================
`;
exports[`example-566.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
<http://example.com/\\[\\>
=====================================output=====================================
<http://example.com/\\[\\>
================================================================================
`;
exports[`example-571.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
< http://foo.bar >
=====================================output=====================================
< http://foo.bar >
================================================================================
`;
exports[`example-574.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
http://example.com
=====================================output=====================================
http://example.com
================================================================================
`;
exports[`example-584.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
< a><
foo><bar/ >
=====================================output=====================================
< a>< foo><bar/ >
================================================================================
`;
exports[`example-588.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
foo <!-- this is a
comment - with hyphen -->
=====================================output=====================================
foo <!-- this is a
comment - with hyphen -->
================================================================================
`;
exports[`example-589.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
foo <!-- not a comment -- two hyphens -->
=====================================output=====================================
foo <!-- not a comment -- two hyphens -->
================================================================================
`;
exports[`example-590.md - {"proseWrap":"always"} format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80
proseWrap: "always"
| printWidth
=====================================input======================================
foo <!--> foo -->
foo <!-- foo--->
=====================================output=====================================
foo <!--> foo -->
foo <!-- foo--->
================================================================================
`;
@@ -1,6 +0,0 @@
<pre language="haskell"><code>
import Text.HTML.TagSoup
main :: IO ()
main = print $ parseTags tags
</code></pre>
@@ -1,5 +0,0 @@
<script type="text/javascript">
// JavaScript example
document.getElementById("demo").innerHTML = "Hello JavaScript!";
</script>
@@ -1,6 +0,0 @@
<style
type="text/css">
h1 {color:red;}
p {color:blue;}
</style>
@@ -1,4 +0,0 @@
<!-- Foo
bar
baz -->
@@ -1,5 +0,0 @@
<?php
echo '>';
?>
@@ -1,12 +0,0 @@
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then {
return 1;
} else {
return 0;
}
}
]]>
@@ -1,5 +0,0 @@
[Foo bar]:
<my%20url>
'title'
[Foo bar]
@@ -1,24 +0,0 @@
- foo
bar
- foo
bar
- ```
foo
bar
```
- baz
+ ```
foo
bar
```
@@ -1,5 +0,0 @@
- Foo
bar
baz
@@ -1,3 +0,0 @@
- foo
- bar
- baz
@@ -1,3 +0,0 @@
- foo
- bar
- baz
@@ -1,5 +0,0 @@
- foo
bar
- baz
@@ -1,6 +0,0 @@
- foo
- bar
- baz
- bim
@@ -1,8 +0,0 @@
- foo
notcode
- foo
code
@@ -1,9 +0,0 @@
- a
- b
- c
- d
- e
- f
- g
- h
- i
@@ -1,8 +0,0 @@
\*not emphasized*
\<br/> not a tag
\[not a link](/foo)
\`not code`
1\. not a list
\* not a list
\# not a heading
\[foo]: /url "not a reference"
@@ -1 +0,0 @@
<http://example.com?find=\*>
@@ -1 +0,0 @@
&#35; &#1234; &#992; &#98765432; &#0;
@@ -1,2 +0,0 @@
&nbsp &x; &#; &#x;
&ThisIsNotDefined; &hi?;
@@ -1 +0,0 @@
`` foo ` bar ``
@@ -1,2 +0,0 @@
`foo bar
baz`
@@ -1 +0,0 @@
`foo `` bar`
@@ -1 +0,0 @@
`<http://foo.bar.`baz>`
@@ -1 +0,0 @@
<http://foo.bar.`baz>`
@@ -1 +0,0 @@
# foo
@@ -1 +0,0 @@
**foo*bar**
@@ -1 +0,0 @@
**a<http://foo.bar/?q=**>
@@ -1 +0,0 @@
__a<http://foo.bar/?q=__>
@@ -1 +0,0 @@
[link]((foo)and(bar))
@@ -1 +0,0 @@
[link](foo(and\(bar\)))
@@ -1 +0,0 @@
[link](<foo(and(bar))>)
@@ -1,5 +0,0 @@
[link](#fragment)
[link](http://example.com#fragment)
[link](http://example.com?foo=3#frag)
@@ -1 +0,0 @@
[foo<http://example.com/?search=](uri)>
@@ -1,3 +0,0 @@
[foo *bar][ref]
[ref]: /uri
@@ -1,3 +0,0 @@
[foo<http://example.com/?search=][ref]>
[ref]: /uri
@@ -1,3 +0,0 @@
[Толпой][Толпой] is a Russian word.
[ТОЛПОЙ]: /url
@@ -1,3 +0,0 @@
\!\[foo]
[foo]: /url "title"
@@ -1 +0,0 @@
<http://foo.bar.baz/test?q=hello&id=22&boolean>
@@ -1 +0,0 @@
<http://../>
@@ -1 +0,0 @@
<http://foo.bar/baz bim>
@@ -1 +0,0 @@
<http://example.com/\[\>
@@ -1 +0,0 @@
< http://foo.bar >
@@ -1 +0,0 @@
http://example.com
@@ -1,2 +0,0 @@
< a><
foo><bar/ >
@@ -1,2 +0,0 @@
foo <!-- this is a
comment - with hyphen -->
@@ -1 +0,0 @@
foo <!-- not a comment -- two hyphens -->
@@ -1,3 +0,0 @@
foo <!--> foo -->
foo <!-- foo--->
@@ -1,7 +0,0 @@
[foo]: /url '
title
line1
line2
'
[foo]
@@ -1,8 +0,0 @@
-
foo
-
```
bar
```
-
baz
@@ -1 +0,0 @@
*-*
@@ -1,5 +0,0 @@
1. a
2. b
3. c
@@ -1,7 +0,0 @@
- a
- ```
b
```
- c
@@ -1 +0,0 @@
```foo``
@@ -1 +0,0 @@
*foo **bar *baz* bim** bop*
@@ -1 +0,0 @@
foo *_*
@@ -1 +0,0 @@
****foo*
+5 -5
View File
@@ -3578,10 +3578,10 @@ __metadata:
languageName: node
linkType: hard
"commonmark.json@npm:0.31.0":
version: 0.31.0
resolution: "commonmark.json@npm:0.31.0"
checksum: 10/457519df977443df620ef46230ca54b5ab3b5845ea85fc620ebb386eaceaafcc2dae1fa6b6785f858ddf8c55ed597e0c608c95180ea32e45bb97e52d7eb35aae
"commonmark-test-suite@npm:0.1.0":
version: 0.1.0
resolution: "commonmark-test-suite@npm:0.1.0"
checksum: 10/d50b2e5b7ac48be29d577d1a849e26df38cce35552dd478c499b99a0de2402e4602f404c87bd1f92f404a4a688cb343d79a2261c6015a54ab78631b63e3e319c
languageName: node
linkType: hard
@@ -7541,7 +7541,7 @@ __metadata:
ci-info: "npm:4.3.1"
cjk-regex: "npm:3.4.0"
collapse-white-space: "npm:1.0.6"
commonmark.json: "npm:0.31.0"
commonmark-test-suite: "npm:0.1.0"
cross-env: "npm:10.1.0"
cspell: "npm:9.3.2"
css-units-list: "npm:2.1.0"