From ca7ae086e8d6e80f6efc969d541b390328a6d143 Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Tue, 14 Jul 2026 02:41:24 +0300 Subject: fix(website): scope docs search by locale and channel --- website/src/docs-path.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 website/src/docs-path.ts (limited to 'website/src/docs-path.ts') diff --git a/website/src/docs-path.ts b/website/src/docs-path.ts new file mode 100644 index 00000000..be022a4b --- /dev/null +++ b/website/src/docs-path.ts @@ -0,0 +1,20 @@ +const docsLocales = new Set(['ja', 'zh-cn']); + +export function docsChannel(pathname: string) { + return /^\/(?:ja\/|zh-cn\/)?docs\/preview(?:\/|$)/.test(pathname) ? 'preview' : 'stable'; +} + +export function docsPath({ entry }: { entry: string }) { + const slug = entry.replace(/\.(md|mdx|markdown|mdown|mkdn|mkd|mdwn)$/i, ''); + const normalized = slug.replace(/\/index$/, ''); + const segments = normalized.split('/'); + const localeIndex = segments[0] === 'preview' ? 1 : 0; + const locale = segments[localeIndex]; + + if (locale && docsLocales.has(locale)) { + segments.splice(localeIndex, 1); + return `${locale}/docs${segments.length > 0 ? `/${segments.join('/')}` : ''}`; + } + + return normalized === 'index' ? 'docs' : `docs/${normalized}`; +} -- cgit v1.2.3