项目结构

以 Markdown 格式查看

本页面提供了 Fern 文档项目的文件和文件夹结构概述。如果你要将文档分布在多个存储库中并发布到同一域名,请参阅 多源文档

目录结构

你的文档配置文件存放在 fern 文件夹中:

fern
docs# 文档内容
pages# MDX 文件
assets# 图片、logo、图标
changelog# 更新日志条目
snippets# 可重用的 MDX 片段
docs.yml# 定义导航、主题和托管
openapi.yaml# API 定义 (OpenAPI、AsyncAPI 等)
generators.yml# 引用规范,配置 SDK
fern.config.json# 组织名称和 CLI 版本
styles.css# 自定义 CSS 样式

fernchangelog 文件夹是保留名称——如果重命名,Fern 将无法识别它们。所有其他文件夹名称都可以自定义。

Pages 文件夹

pages 文件夹包含构成文档的 Markdown (MDX) 文件。每个 MDX 文件代表文档中的一个页面。文件夹名称可以自定义。

pages
welcome.mdx
navigation.mdx
customization.mdx
support.mdx

你可以根据文档的部分将 pages 文件夹组织成子文件夹,或者如上所示保持页面扁平化。

Assets 文件夹

assets 文件夹包含文档中使用的任何图片或视频。你可以在 MDX 文件中使用相对路径引用这些资源。文件夹名称可以自定义。

assets
favicon.svg
logo.svg# 浅色模式 logo
logo-dark.svg# 深色模式 logo

docs.yml

docs.yml 文件是你的 Fern 文档站点的核心。此配置文件控制文档的导航结构、视觉设计、网站功能和托管设置。只有在 docs.yml 导航中引用的文件(或通过folder 配置发现的文件)才会包含在构建中——任何未引用的文件都会被忽略。

有关完整的配置选项,请参阅 docs.yml 参考

示例 fern/docs.yml
1instances:
2 - url: plantstore.docs.buildwithfern.com
3
4title: Fern Docs Starter
5
6tabs:
7 home:
8 display-name: 文档
9 icon: home
10 API Reference:
11 display-name: API 参考
12 icon: puzzle
13
14navigation:
15 - tab: home
16 layout:
17 - section: 开始使用
18 contents:
19 - page: 欢迎
20 path: docs/pages/welcome.mdx
21 - page: 编辑你的文档
22 path: docs/pages/editing-your-docs.mdx
23 - section: 更新日志
24 contents:
25 - changelog: docs/changelog
26 - tab: API Reference
27 layout:
28 - api: Plant Store API
29
30navbar-links:
31 - type: minimal
32 text: Fork this repo
33 url: https://github.com/fern-api/docs-starter
34 - type: filled
35 text: Dashboard
36 url: https://dashboard.buildwithfern.com
37
38logo:
39 light: docs/assets/logo.svg
40 dark: docs/assets/logo-dark.svg
41
42colors:
43 accent-primary:
44 dark: "#70E155"
45 light: "#008700"
46
47favicon: docs/assets/favicon.svg
48
49css: styles.css

API 定义和 generators.yml

要生成 API 参考 文档,你需要提供你的 API 定义。OpenAPI 和 AsyncAPI 规范需要一个带有 api.specs 部分的 generators.yml 文件。你可以选择性地添加一个 groups 部分用于 SDK 生成。

同时使用 Fern 进行 API 参考文档和 SDK?你将使用 docs.yml 进行文档设置,使用 generators.yml 配置 API 参考中的 SDK 代码片段

将你的 OpenAPI 规范文件放在 fern/ 目录中(或子文件夹中)。Fern 支持 YAML 或 JSON 格式。

generators.yml 中引用它:

generators.yml
1api:
2 specs:
3 - openapi: openapi.yaml

你可以选择性地 添加覆盖文件 进行额外的自定义。要查看实际应用,请查看 Fluidstack 的 Fern 配置

将你的 AsyncAPI 规范文件与 OpenAPI 规范一起放在 fern/ 目录中。在 generators.yml 中引用它:

generators.yml
1api:
2 specs:
3 - openapi: openapi.yaml
4 - asyncapi: asyncapi.yaml

你可以选择性地 添加覆盖文件 进行额外的自定义。

将多个 API 组织到独立的文件夹中:

apis
admin-api
openapi.json
generators.yml
overrides.yaml# 可选
user-api
openapi.yaml
generators.yml
overrides.yaml# 可选

apis 文件夹必须使用这个确切的名称。在 docs.yml 中使用与子文件夹名称匹配的 api-name 引用每个 API。要查看实际应用,请查看 Vapi 的 Fern 配置

fern.config.json

fern.config.json 文件存储你的组织名称和 Fern CLI 版本。固定版本可以提供确定性构建。

fern.config.json
1{
2 "organization": "plantstore",
3 "version": "5.23.3"
4}

当使用本地安装的 CLI 时,将 version 设置为 "*"。有关详细信息,请参阅 本地安装 Fern CLI