From 383e164c6a090c9e6d716337513384bcd8cfa489 Mon Sep 17 00:00:00 2001 From: Romain Meunier Date: Tue, 18 Mar 2025 17:18:12 +0100 Subject: [PATCH 1/3] fix(createNormalizedUrl): replace String.fromCharCode by String.fromCodePoint https://github.com/TypeStrong/typedoc/issues/2905 --- src/lib/utils/html.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/utils/html.ts b/src/lib/utils/html.ts index 3b6a93f15..7177160e7 100644 --- a/src/lib/utils/html.ts +++ b/src/lib/utils/html.ts @@ -72,7 +72,7 @@ export function createNormalizedUrl(url: string) { codePoints[i] = Chars.UNDERSCORE; } - return String.fromCharCode(...codePoints); + return String.fromCodePoint(...codePoints); } const enum Chars { From c421520b789c75e47a5904ae3da9a8b2d1edad55 Mon Sep 17 00:00:00 2001 From: Romain Meunier Date: Wed, 19 Mar 2025 09:57:27 +0100 Subject: [PATCH 2/3] text(createNormalizedUrl): add UTF8 & emoji tests --- src/test/utils/html.test.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/utils/html.test.ts b/src/test/utils/html.test.ts index 04e41f94e..c53952aa7 100644 --- a/src/test/utils/html.test.ts +++ b/src/test/utils/html.test.ts @@ -288,4 +288,12 @@ describe("createNormalizedUrl", () => { it("Permits Chinese characters", () => { equal(createNormalizedUrl("ζ–‡ζ‘£"), "ζ–‡ζ‘£"); }); + + it("Permits Emoji characters", () => { + equal(createNormalizedUrl("🐌 Foo πŸͺ.md"), "🐌_Foo_πŸͺ.md"); + }); + + it("Permits UTF8 characters", () => { + equal(createNormalizedUrl("β—‰ bar⚐.md"), "β—‰_bar⚐.md"); + }); }); From df1033f086c952253e7f052d5bbe6b5f68bcf90c Mon Sep 17 00:00:00 2001 From: Romain Meunier Date: Wed, 19 Mar 2025 10:15:44 +0100 Subject: [PATCH 3/3] style: remove useless spaces --- src/test/utils/html.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/utils/html.test.ts b/src/test/utils/html.test.ts index c53952aa7..6c8d14d8f 100644 --- a/src/test/utils/html.test.ts +++ b/src/test/utils/html.test.ts @@ -292,7 +292,7 @@ describe("createNormalizedUrl", () => { it("Permits Emoji characters", () => { equal(createNormalizedUrl("🐌 Foo πŸͺ.md"), "🐌_Foo_πŸͺ.md"); }); - + it("Permits UTF8 characters", () => { equal(createNormalizedUrl("β—‰ bar⚐.md"), "β—‰_bar⚐.md"); });