项目结构

以 Markdown 格式查看

本页面提供 Fern Docs 项目文件和文件夹结构的概览。

目录结构

您的文档配置文件存放在 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: Docs
9 icon: home
10 API Reference:
11 display-name: API Reference
12 icon: puzzle
13
14navigation:
15 - tab: home
16 layout:
17 - section: Get started
18 contents:
19 - page: Welcome
20 path: docs/pages/welcome.mdx
21 - page: Edit your docs
22 path: docs/pages/editing-your-docs.mdx
23 - section: Changelog
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 Definition:当您有 definition/ 目录时会自动检测。只有在生成 SDK 时才需要添加 generators.yml
同时使用 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

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

definition 文件夹包含用于生成 API 参考部分的 Fern Definition YAML 文件。Fern 会自动检测此目录,因此 API 参考文档不需要 generators.yml

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

definition
pets.yaml
owners.yaml
stores.yaml
overrides.yaml# 可选
api.yaml

查看示例

将多个 API 组织到单独的文件夹中。您可以混合使用 OpenAPI 和 Fern Definition 格式:

apis
admin-api
openapi.json
generators.yml# OpenAPI 必需
overrides.yaml# 可选
user-api
definition# Fern Definition 自动检测
api.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.7.5"
4}

在使用本地安装的 CLI 时,将 version 设置为 "*"。详情请参见本地安装 Fern CLI