多源文档
多源文档
让多个团队从各自的仓库发布到同一个文档站点。
多源文档
让多个团队从各自的仓库发布到同一个文档站点。
此功能仅适用于企业计划。如需开始使用,请联系 support@buildwithfern.com。
多源文档将单个文档站点发布到自定义域,分成多个子路径。每个子路径都来自自己的仓库,因此团队可以独立发布更新,而共享的全局主题保持整个站点品牌的一致性。
每个仓库在其 docs.yml 中声明一个在共享域下的唯一基础路径。从该仓库运行 fern generate --docs 仅更新其子路径——其他所有子路径保持不变。
有三个配置使其工作:
multi-source: true 在每个仓库的 docs.yml 中的实例上设置,其中 url 和 custom-domain 以相同的基础路径结尾。docs.yml 中引用。例如,NVIDIA 的文档分布在多个独立仓库中,每个仓库都发布到 docs.nvidia.com 上自己的子路径:
每个子路径都是独立发布的,但最终用户看到的是一个统一的站点。
根 docs.nvidia.com 本身是 Fern 设置之外的单独站点——多源仅涵盖子路径。Fern 发布的着陆页是可选的(示例),任何子路径组合都可以,包括仅两个。
控制仓库是一个专用的 Fern 项目,保存你的全局主题——每个源仓库继承的共享 logo、颜色、字体、布局和站点级设置。在其 docs.yml 中定义这些设置,然后导出并上传主题:
查看全局主题获取完整设置指南和主题控制的字段列表。
每个子路径都有自己的仓库(通常由不同团队拥有),与步骤 1 中的控制仓库分开。在每个仓库的 docs.yml 中:
global-theme: my-org-theme。multi-source: true 和在共享域上唯一基础路径的实例。该基础路径必须出现在 url 和 custom-domain 的末尾。例如,这里是同一共享域上的两个仓库——一个在 /product-a,一个在 /product-b:
打开 Fern Dashboard 并选择你的顶级域(例如 docs.example.com)——这些设置适用于整个域,而不是每个子路径。在 Settings 标签页中,导航到 Multi-repo settings 卡片。
配置以下内容:
/home 子路径,将默认路径设置为 /home,这样 docs.example.com 就会重定向到 docs.example.com/home。如果根目录不是 Fern 管理的,比如 NVIDIA 的 docs.nvidia.com(Fern 设置之外的单独营销站点),则跳过此设置。/subpath 下的搜索仅返回来自 /subpath 及其下层的结果。当每个子路径涵盖不同产品且用户期望范围限定的结果时使用。
在 multi-source.docs.buildwithfern.com 浏览实时站点,在 fern-api/docs-examples/multi-source 查看源码。
这是 NVIDIA 设置的替代形式:在根目录有一个 Fern 管理的主页,下面有团队子路径。该示例在一个共享域上使用六个独立的 fern/ 项目——在 / 的主页、带有两个嵌套子项的 /seeds 团队中心,以及独立的 /greenhouses 和 /nursery 团队:
单位是每个子路径一个 fern/ 文件夹,而不是每个子路径一个仓库。每个仓库一个子路径的布局(通常每个团队一个)是最常见的形式,但单个仓库中的多个 fern/ 文件夹也可以工作。
所有六个项目都共享 global-theme: plantstore-theme 并设置 multi-source: true——它们仅在基础路径上有所不同。子路径本身可以包含嵌套的子路径:/seeds/sunflower 和 /seeds/tomato 是位于 /seeds 下的独立发布项目。
该示例使用 Fern 的预览域(*.docs.buildwithfern.com),所以没有设置 custom-domain。生产部署通常会为每个实例添加 custom-domain: docs.example.com/...。
主页 home.mdx 可以使用卡片将用户引导到每个团队的文档:
当为 true 时,CLI 使用基础路径感知发布,使多个仓库可以在一个自定义域下共存。启用此功能时,url 和 custom-domain 必须共享相同的基础路径。