diff --git a/changelog_unreleased/markdown/19739.md b/changelog_unreleased/markdown/19739.md new file mode 100644 index 000000000..a4ed6a496 --- /dev/null +++ b/changelog_unreleased/markdown/19739.md @@ -0,0 +1,15 @@ +#### Preserve single tildes in Markdown (#19739 by @lazerg) + +Since 3.9.0, single-tilde spans like `H~2~O` were rewritten to double tildes, turning subscript syntax into strike-through. Only double tildes are treated that way now, matching GitHub. + + +```markdown + +H~2~O + + +H~~2~~O + + +H~2~O +``` diff --git a/src/language-markdown/parse/parse-markdown.js b/src/language-markdown/parse/parse-markdown.js index 8c07cc832..ba7f76a2b 100644 --- a/src/language-markdown/parse/parse-markdown.js +++ b/src/language-markdown/parse/parse-markdown.js @@ -16,7 +16,7 @@ let markdownParseOptions; function getMarkdownParseOptions() { return (markdownParseOptions ??= { extensions: [ - gfmSyntax(), + gfmSyntax({ singleTilde: false }), mathSyntax(), wikiLinkSyntax({ // We don't need support alias, use a fake string to bypass diff --git a/tests/format/markdown/delete/__snapshots__/format.test.js.snap b/tests/format/markdown/delete/__snapshots__/format.test.js.snap index 7d3bc7d0c..07a25aa94 100644 --- a/tests/format/markdown/delete/__snapshots__/format.test.js.snap +++ b/tests/format/markdown/delete/__snapshots__/format.test.js.snap @@ -13,3 +13,21 @@ proseWrap: "always" ================================================================================ `; + +exports[`single-tilde.md - {"proseWrap":"always"} format 1`] = ` +====================================options===================================== +parsers: ["markdown"] +proseWrap: "always" + printWidth: 80 (default) | +=====================================input====================================== +H~2~O + +~~2~~ and ~1~ and ~~~3~~~ and ~~~~4~~~~ + +=====================================output===================================== +H~2~O + +~~2~~ and ~1~ and ~~~3~~~ and ~~~~4~~~~ + +================================================================================ +`; diff --git a/tests/format/markdown/delete/single-tilde.md b/tests/format/markdown/delete/single-tilde.md new file mode 100644 index 000000000..262b98b8d --- /dev/null +++ b/tests/format/markdown/delete/single-tilde.md @@ -0,0 +1,3 @@ +H~2~O + +~~2~~ and ~1~ and ~~~3~~~ and ~~~~4~~~~ diff --git a/tests/format/markdown/gfm-test-suite/__snapshots__/format.test.js.snap b/tests/format/markdown/gfm-test-suite/__snapshots__/format.test.js.snap index f306edc49..e6a5b81cf 100644 --- a/tests/format/markdown/gfm-test-suite/__snapshots__/format.test.js.snap +++ b/tests/format/markdown/gfm-test-suite/__snapshots__/format.test.js.snap @@ -300,7 +300,7 @@ proseWrap: "always" ~~Hi~~ Hello, ~there~ world! =====================================output===================================== -~~Hi~~ Hello, ~~there~~ world! +~~Hi~~ Hello, ~there~ world! ================================================================================ `;