From da63b35416d618f1f79e3aecfc2628000861964a Mon Sep 17 00:00:00 2001 From: Luffy <52o@qq52o.cn> Date: Mon, 16 Mar 2026 17:43:50 +0800 Subject: [PATCH] fix: enhance slugify function to handle markdown links --- src/core/render/slugify.js | 1 + test/unit/render-util.test.js | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/core/render/slugify.js b/src/core/render/slugify.js index d27250f65a..6f1f6a7ee2 100644 --- a/src/core/render/slugify.js +++ b/src/core/render/slugify.js @@ -13,6 +13,7 @@ export function slugify(str) { let slug = str .trim() .normalize('NFC') + .replace(/\[([^\]]+)\]\([^)]+\)/g, '$1') .replace(/\uFE0F/g, '') .replace(/[\p{Emoji_Presentation}\p{Extended_Pictographic}]/gu, '') .replace(/[A-Z]+/g, lower) diff --git a/test/unit/render-util.test.js b/test/unit/render-util.test.js index 094308ea82..9636c01e6b 100644 --- a/test/unit/render-util.test.js +++ b/test/unit/render-util.test.js @@ -212,5 +212,10 @@ describe('core/render/slugify', () => { const quoteCleanedSlug = slugify('"The content"'); expect(quoteCleanedSlug).toBe('the-content'); + + const markdownLinkSlug = slugify( + '[5.0.0-rc.4](https://github.com/docsifyjs/docsify/compare/v5.0.0-rc.3...v5.0.0-rc.4) (2026-03-11)', + ); + expect(markdownLinkSlug).toBe('_500-rc4-2026-03-11'); }); });