diff --git a/packages/website/src/middleware.ts b/packages/website/src/middleware.ts index 98473a36c..c91a95e81 100644 --- a/packages/website/src/middleware.ts +++ b/packages/website/src/middleware.ts @@ -2,9 +2,9 @@ import { NextResponse } from 'next/server'; import type { NextRequest } from 'next/server'; export default function middleware(request: NextRequest) { - return NextResponse.redirect(new URL('/docs/main/packages/builders', request.url)); + return NextResponse.redirect(new URL('/docs/packages/builders/main', request.url)); } export const config = { - matcher: ['/docs', '/docs/:branch'], + matcher: ['/docs'], }; diff --git a/packages/website/src/pages/docs/[...slug].tsx b/packages/website/src/pages/docs/[...slug].tsx index 0c85706ae..f997030e2 100644 --- a/packages/website/src/pages/docs/[...slug].tsx +++ b/packages/website/src/pages/docs/[...slug].tsx @@ -49,7 +49,7 @@ export const getStaticPaths: GetStaticPaths = async () => { const pkg = findPackage(model, packageName); return [ - { params: { slug: ['main', 'packages', packageName] } }, + { params: { slug: ['packages', packageName, 'main'] } }, ...getMembers(pkg!) // Filtering out enum `RESTEvents` because of interface with similar name `RestEvents` // causing next.js export to error @@ -58,12 +58,12 @@ export const getStaticPaths: GetStaticPaths = async () => { if (member.kind === 'Function' && member.overloadIndex && member.overloadIndex > 1) { return { params: { - slug: ['main', 'packages', packageName, `${member.name}:${member.overloadIndex}`], + slug: ['packages', packageName, 'main', `${member.name}:${member.overloadIndex}`], }, }; } - return { params: { slug: ['main', 'packages', packageName, member.name] } }; + return { params: { slug: ['packages', packageName, 'main', member.name] } }; }), ]; } catch { @@ -80,7 +80,7 @@ export const getStaticPaths: GetStaticPaths = async () => { }; export const getStaticProps: GetStaticProps = async ({ params }) => { - const [branchName = 'main', , packageName = 'builders', member = 'ActionRowBuilder'] = params!.slug as string[]; + const [, packageName = 'builders', branchName = 'main', member = 'ActionRowBuilder'] = params!.slug as string[]; const [memberName, overloadIndex] = member.split(':') as [string, string | undefined]; diff --git a/packages/website/src/pages/docs/[version]/packages.tsx b/packages/website/src/pages/docs/packages/index.tsx similarity index 95% rename from packages/website/src/pages/docs/[version]/packages.tsx rename to packages/website/src/pages/docs/packages/index.tsx index 3fb73a15b..4b5ae8eae 100644 --- a/packages/website/src/pages/docs/[version]/packages.tsx +++ b/packages/website/src/pages/docs/packages/index.tsx @@ -22,7 +22,7 @@ export default function PackagesRoute() { {packages.map((pkg) => ( - + diff --git a/packages/website/src/util/parse.server.ts b/packages/website/src/util/parse.server.ts index 565284ee0..62cfecb21 100644 --- a/packages/website/src/util/parse.server.ts +++ b/packages/website/src/util/parse.server.ts @@ -24,7 +24,7 @@ export function findPackage(model: ApiModel, name: string): ApiPackage | undefin } export function generatePath(items: readonly ApiItem[]) { - let path = '/docs/main/packages'; + let path = '/docs/packages'; for (const item of items) { switch (item.kind) { case ApiItemKind.Model: @@ -53,7 +53,7 @@ export function generatePath(items: readonly ApiItem[]) { } } - return path.replace(/@discordjs\//, ''); + return path.replace(/@discordjs\/(.*)\/(.*)?/, '$1/main/$2'); } export function resolveDocComment(item: ApiDocumentedItem) {