From 8a6d697308162874a236c84aac0b0f8c7ac01f83 Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Tue, 1 Sep 2026 14:48:45 +0300 Subject: refactor: separate website presentation from runtime --- website/src/docs-path.ts | 87 ------------------------------------------------ 1 file changed, 87 deletions(-) delete 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 deleted file mode 100644 index 53ace41d..00000000 --- a/website/src/docs-path.ts +++ /dev/null @@ -1,87 +0,0 @@ -const docsLocales = new Set(['ja', 'zh-cn']); -const docsVersionPattern = /^\d+\.\d+\.\d+$/; - -export type DocsTarget = 'stable' | 'preview' | string; - -export interface DocsRoute { - isDocs: boolean; - locale: string | undefined; - target: DocsTarget; - page: string; -} - -export interface DocsScope { - locales: Record; -} - -export function docsRoute(pathname: string): DocsRoute { - const segments = pathname.split('/').filter(Boolean); - let locale: string | undefined; - - if (segments[0] && docsLocales.has(segments[0])) { - locale = segments.shift(); - } - - if (segments.shift() !== 'docs') { - return { isDocs: false, locale, target: 'stable', page: '' }; - } - - let target: DocsTarget = 'stable'; - if (segments[0] === 'preview') { - target = 'preview'; - segments.shift(); - } else if (segments[0] && docsVersionPattern.test(segments[0])) { - target = segments.shift()!; - } - - return { - isDocs: true, - locale, - target, - page: segments.join('/'), - }; -} - -export function docsVersion(pathname: string) { - return docsRoute(pathname).target; -} - -export function docsTargetHref( - route: DocsRoute, - target: DocsTarget, - scopes?: Record, -) { - if (!route.isDocs) throw new Error('cannot build a documentation target from a non-docs route'); - - const localeKey = route.locale ?? 'root'; - const availablePages = scopes?.[target]?.locales[localeKey]; - const page = availablePages?.includes(route.page) === false ? '' : route.page; - const prefix = route.locale ? `/${route.locale}` : ''; - const targetSegment = target === 'stable' ? '' : `/${target}`; - return `${prefix}/docs${targetSegment}${page ? `/${page}` : ''}/`; -} - -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('/'); - - let targetSegment = ''; - if (segments[0] === 'preview') { - targetSegment = 'preview'; - segments.shift(); - } else if (segments[0] === '_versions' && segments[1] && docsVersionPattern.test(segments[1])) { - segments.shift(); - targetSegment = segments.shift()!; - } - - let locale: string | undefined; - if (segments[0] && docsLocales.has(segments[0])) { - locale = segments.shift(); - } - - const page = segments.join('/'); - const prefix = locale ? `${locale}/` : ''; - const target = targetSegment ? `/${targetSegment}` : ''; - return `${prefix}docs${target}${page && page !== 'index' ? `/${page}` : ''}`; -} -- cgit v1.2.3