diff --git a/packages/remark-wiki-link/src/lib/fromMarkdown.ts b/packages/remark-wiki-link/src/lib/fromMarkdown.ts index d9e9a0ef..5b5f7b9c 100644 --- a/packages/remark-wiki-link/src/lib/fromMarkdown.ts +++ b/packages/remark-wiki-link/src/lib/fromMarkdown.ts @@ -116,7 +116,7 @@ function fromMarkdown(opts: FromMarkdownOptions = {}) { // remove leading # if the target is a heading on the same page const displayName = alias || target.replace(/^#/, ""); - const headingId = heading.replace(/\s+/, "-").toLowerCase(); + const headingId = heading.replace(/\s+/g, "-").toLowerCase(); let classNames = wikiLinkClassName; if (!matchingPermalink) { classNames += " " + newClassName; diff --git a/packages/remark-wiki-link/src/lib/html.ts b/packages/remark-wiki-link/src/lib/html.ts index 021970a8..1058652f 100644 --- a/packages/remark-wiki-link/src/lib/html.ts +++ b/packages/remark-wiki-link/src/lib/html.ts @@ -99,7 +99,7 @@ function html(opts: HtmlOptions = {}) { // remove leading # if the target is a heading on the same page const displayName = alias || target.replace(/^#/, ""); // replace spaces with dashes and lowercase headings - const headingId = heading.replace(/\s+/, "-").toLowerCase(); + const headingId = heading.replace(/\s+/g, "-").toLowerCase(); let classNames = wikiLinkClassName; if (!matchingPermalink) { classNames += " " + newClassName; diff --git a/packages/remark-wiki-link/test/micromarkExtensionWikiLink.spec.ts b/packages/remark-wiki-link/test/micromarkExtensionWikiLink.spec.ts index 165717e7..663b885c 100644 --- a/packages/remark-wiki-link/test/micromarkExtensionWikiLink.spec.ts +++ b/packages/remark-wiki-link/test/micromarkExtensionWikiLink.spec.ts @@ -324,12 +324,11 @@ describe("micromark-extension-wiki-link", () => { describe("Links with special characters", () => { test("parses a link with special characters and symbols", () => { - const serialized = micromark("[[li nk-w(i)th-àcèô íã_a(n)d_underline!:ª%@'*º$ °~./\\#li nk-w(i)th-àcèô íã_a(n)d_underline!:ª%@'*º$ °~./\\]]", "ascii", { + const serialized = micromark("[[li nk-w(i)th-àcèô íã_a(n)d_underline!:ª%@'*º$ °~./\\#LI NK-W(i)th-àcèô íã_a(n)d_uNdErlinE!:ª%@'*º$ °~./\\]]", "ascii", { extensions: [syntax()], htmlExtensions: [html() as any], }); - const prefixExpected = '
`); }); }) }); diff --git a/packages/remark-wiki-link/test/remarkWikiLink.spec.ts b/packages/remark-wiki-link/test/remarkWikiLink.spec.ts index e8f72a88..276038fc 100644 --- a/packages/remark-wiki-link/test/remarkWikiLink.spec.ts +++ b/packages/remark-wiki-link/test/remarkWikiLink.spec.ts @@ -365,7 +365,7 @@ describe("remark-wiki-link", () => { test("parses a link with special characters and symbols", () => { const processor = unified().use(markdown).use(wikiLinkPlugin); - let ast = processor.parse("[[li nk-w(i)th-àcèô íã_a(n)d_underline!:ª%@'*º$ °~./\\#li-nk-w(i)th-àcèô íã_a(n)d_underline!:ª%@'*º$ °~./\\]]"); + let ast = processor.parse("[[li nk-w(i)th-àcèô íã_a(n)d_underline!:ª%@'*º$ °~./\\#li-nk-w(i)th-àcèô íã_a(n)D_UNDERLINE!:ª%@'*º$ °~./\\]]"); ast = processor.runSync(ast); expect(select("wikiLink", ast)).not.toEqual(null); @@ -378,10 +378,10 @@ describe("remark-wiki-link", () => { "internal new" ); expect((node.data?.hProperties as any).href).toEqual( - "li nk-w(i)th-àcèô íã_a(n)d_underline!:ª%@'*º$ °~./\\#li-nk-w(i)th-àcèô-íã_a(n)d_underline!:ª%@'*º$ °~./\\" + "li nk-w(i)th-àcèô íã_a(n)d_underline!:ª%@'*º$ °~./\\#li-nk-w(i)th-àcèô-íã_a(n)d_underline!:ª%@'*º$-°~./\\" ); expect((node.data?.hChildren as any)[0].value).toEqual( - "li nk-w(i)th-àcèô íã_a(n)d_underline!:ª%@'*º$ °~./\\#li-nk-w(i)th-àcèô íã_a(n)d_underline!:ª%@'*º$ °~./\\" + "li nk-w(i)th-àcèô íã_a(n)d_underline!:ª%@'*º$ °~./\\#li-nk-w(i)th-àcèô íã_a(n)D_UNDERLINE!:ª%@'*º$ °~./\\" ); }) });