路由系统

AR Docs 基于 Astro 的文件路由系统,自动根据目录结构生成页面 URL。

文件路由

基本规则

文件路径生成的 URL
src/pages/index.astro/
src/pages/about.astro/about
src/pages/docs/guide.astro/docs/guide

动态路由

使用 [param] 命名文件创建动态路由:

src/pages/[lang]/docs/[...slug].astro

匹配:/zh/docs/getting-started/en/docs/api

内容集合

文档使用内容集合管理:

// src/content.config.ts
import { defineCollection, z } from 'astro:content';
import { glob } from 'astro/loaders';

const docs = defineCollection({
  loader: glob({ pattern: '**/*.{md,mdx}', base: './docs' }),
  schema: z.object({
    title: z.string(),
    description: z.string().optional(),
  }),
});

export const collections = { docs };

生成静态页面

在动态路由页面中使用 getStaticPaths

export async function getStaticPaths() {
  const docs = await getCollection('docs');
  return docs.map((doc) => ({
    params: { slug: doc.id },
    props: { doc },
  }));
}

Cloudflare Pages 注意事项

注意

在 Cloudflare Pages 上部署时,动态路由需要在 getStaticPaths 中预定义所有可能的路径。