Skip to content

Commit 9640c25

Browse files
committed
fix(docs): preserve markdown redirect handling
1 parent d3c6a32 commit 9640c25

2 files changed

Lines changed: 34 additions & 4 deletions

File tree

src/routes/$libraryId/$version.docs.framework.$framework.{$}[.]md.tsx

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { findLibrary, getBranch } from '~/libraries'
22
import { isDocsNotFoundError } from '~/utils/docs-errors'
3-
import { loadDocs } from '~/utils/docs'
4-
import { notFound, createFileRoute } from '@tanstack/react-router'
3+
import { loadDocs, resolveDocsRedirect } from '~/utils/docs'
4+
import { notFound, redirect, createFileRoute } from '@tanstack/react-router'
55
import { filterFrameworkContent } from '~/utils/markdown/filterFrameworkContent'
66
import { getPackageManager } from '~/utils/markdown/installCommand'
77

@@ -46,6 +46,22 @@ export const Route = createFileRoute(
4646
})
4747
} catch (error) {
4848
if (isDocsNotFoundError(error)) {
49+
const redirectPath = await resolveDocsRedirect({
50+
repo: library.repo,
51+
branch: getBranch(library, version),
52+
docsRoot: root,
53+
docsPaths: docsPath
54+
? [`framework/${framework}/${docsPath}`, `${framework}/${docsPath}`]
55+
: [],
56+
})
57+
58+
if (redirectPath !== null) {
59+
throw redirect({
60+
href: `/${libraryId}/${version}/docs/${redirectPath}.md`,
61+
statusCode: 308,
62+
})
63+
}
64+
4965
throw notFound()
5066
}
5167

src/routes/$libraryId/$version.docs.{$}[.]md.tsx

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { createFileRoute, notFound } from '@tanstack/react-router'
1+
import { createFileRoute, notFound, redirect } from '@tanstack/react-router'
22
import { getBranch, getLibrary, type LibraryId } from '~/libraries'
33
import { isDocsNotFoundError } from '~/utils/docs-errors'
4-
import { loadDocs } from '~/utils/docs'
4+
import { loadDocs, resolveDocsRedirect } from '~/utils/docs'
55
import { filterFrameworkContent } from '~/utils/markdown/filterFrameworkContent'
66
import { getPackageManager } from '~/utils/markdown/installCommand'
77

@@ -35,6 +35,20 @@ export const Route = createFileRoute('/$libraryId/$version/docs/{$}.md')({
3535
})
3636
} catch (error) {
3737
if (isDocsNotFoundError(error)) {
38+
const redirectPath = await resolveDocsRedirect({
39+
repo: library.repo,
40+
branch: getBranch(library, version),
41+
docsRoot: root,
42+
docsPaths: [docsPath],
43+
})
44+
45+
if (redirectPath !== null) {
46+
throw redirect({
47+
href: `/${libraryId}/${version}/docs/${redirectPath}.md`,
48+
statusCode: 308,
49+
})
50+
}
51+
3852
throw notFound()
3953
}
4054

0 commit comments

Comments
 (0)