跳到导航

项目结构

以 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 样式

fern 和 changelog 文件夹是保留名称——如果重命名,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
instances:
- url: plantstore.docs.buildwithfern.com
title: Fern Docs Starter
tabs:
home:
display-name: 文档
icon: home
API Reference:
display-name: API 参考
icon: puzzle
navigation:
- tab: home
layout:
- section: 开始使用
contents:
- page: 欢迎
path: docs/pages/welcome.mdx
- page: 编辑你的文档
path: docs/pages/editing-your-docs.mdx
- section: 更新日志
contents:
- changelog: docs/changelog
- tab: API Reference
layout:
- api: Plant Store API
navbar-links:
- type: minimal
text: Fork this repo
url: https://github.com/fern-api/docs-starter
- type: filled
text: Dashboard
url: https://dashboard.buildwithfern.com
logo:
light: docs/assets/logo.svg
dark: docs/assets/logo-dark.svg
colors:
accent-primary:
dark: "#70E155"
light: "#008700"
favicon: docs/assets/favicon.svg
css: 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
api:
specs:
- openapi: openapi.yaml

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

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

generators.yml
api:
specs:
- openapi: openapi.yaml
- 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
{
"organization": "plantstore",
"version": "5.23.3"
}

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