Skip to content

Commit 4b120fe

Browse files
Add Chinese translations for new docs pages
(#5385) Co-authored-by: fern-api[bot] <115122769+fern-api[bot]@users.noreply.github.com>
1 parent 1d1c669 commit 4b120fe

4 files changed

Lines changed: 297 additions & 21 deletions

File tree

fern/translations/zh/fern/products/docs/docs.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ navigation:
127127
- page: 预览更改
128128
- page: 发布您的文档
129129
- page: 设置您的域名
130+
- page: 多源文档
130131
- section: 自定义
131132
contents:
132133
- page: 公告横幅
@@ -185,6 +186,8 @@ navigation:
185186
- page: 设置 SEO 元数据
186187
- page: 配置 slug
187188
- page: 重定向
189+
- page: 自定义 robots.txt
190+
slug: robots-txt
188191
- section: 身份验证
189192
contents:
190193
- page: 概览
@@ -243,7 +246,6 @@ navigation:
243246
- page: Cursor
244247
- page: GitLab
245248
- page: Vale
246-
- page: 查看 Markdown
247249
- page: 下载 OpenAPI 规范
248250
slug: openapi-spec
249251
- page: 下载 AsyncAPI 规范

fern/translations/zh/products/docs/pages/developer-tools/view-markdown.mdx

Lines changed: 0 additions & 20 deletions
This file was deleted.
Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
---
2+
title: 多源文档
3+
subtitle: 让多个团队从各自的仓库发布到同一个文档站点。
4+
description: 了解如何设置多源文档,让独立团队使用 Fern 在共享域名下发布,并保持品牌一致。
5+
sidebar-title: 多源文档
6+
---
7+
8+
<Markdown src="/snippets/enterprise-plan.mdx" />
9+
10+
多源文档将单个文档站点发布到一个自定义域名,并拆分为多个子路径。每个子路径来自各自的仓库,因此团队可以独立发布更新,同时由共享的[全局主题](/learn/docs/customization/global-themes)保持站点品牌一致。
11+
12+
## 工作原理
13+
14+
每个仓库在其 `docs.yml` 中声明共享域名下的唯一基础路径。从该仓库运行 `fern generate --docs` 仅更新它对应的子路径——其他子路径保持不变。
15+
16+
要使其正常工作,需要三处配置:
17+
18+
1. 在每个仓库 `docs.yml` 的实例上设置 **`multi-source: true`**,并使 `url``custom-domain` 以同一基础路径结尾。
19+
2. **[全局主题](/learn/docs/customization/global-themes)** 存放在专用的控制仓库中,并按名称从每个源仓库的 `docs.yml` 中引用。
20+
3. [Fern Dashboard](https://dashboard.buildwithfern.com) 中的**多仓库设置**控制该域名的默认路径以及搜索 / Ask AI 范围。
21+
22+
例如,NVIDIA 的文档拆分到多个独立仓库中,每个仓库都发布到 `docs.nvidia.com` 上各自的子路径:
23+
24+
- [docs.nvidia.com/nvcf](https://docs.nvidia.com/nvcf)
25+
- [docs.nvidia.com/brev](https://docs.nvidia.com/brev)
26+
- [docs.nvidia.com/aiperf](https://docs.nvidia.com/aiperf)
27+
- [docs.nvidia.com/nemo/curator](https://docs.nvidia.com/nemo/curator)
28+
29+
每个子路径独立发布,但终端用户看到的是一个统一的站点。
30+
31+
<Tip>
32+
根域名 `docs.nvidia.com` 本身是 Fern 配置之外的独立站点——多源仅覆盖子路径。Fern 发布的着陆页是可选的([示例](#example-a-live-multi-source-site)),任意数量的子路径组合都可以,包括只有两个。
33+
</Tip>
34+
35+
## 设置多源文档
36+
37+
<Steps>
38+
39+
<Step title="为全局主题创建一个控制仓库">
40+
41+
控制仓库是一个专门的 Fern 项目,用于存放您的全局主题——共享的 logo、颜色、字体、布局以及每个源仓库都会继承的站点级设置。在它的 `docs.yml` 中定义这些设置,然后导出并上传主题:
42+
43+
```bash
44+
fern docs theme export
45+
fern docs theme upload --name my-org-theme
46+
```
47+
48+
完整的设置指南以及主题控制的字段列表,请参阅[全局主题](/learn/docs/customization/global-themes)
49+
50+
</Step>
51+
52+
<Step title="配置每个仓库">
53+
54+
每个子路径都有自己的仓库(通常由不同团队拥有),与第一步中的控制仓库相互独立。在每个仓库的 `docs.yml` 中:
55+
56+
- 通过名称引用全局主题:`global-theme: my-org-theme`
57+
- 声明一个带 `multi-source: true` 的实例,并在共享域名上指定唯一的基础路径。该基础路径必须出现在 `url``custom-domain` 的末尾。
58+
59+
例如,下面是同一共享域名上的两个仓库——一个在 `/product-a`,一个在 `/product-b`
60+
61+
<Tabs>
62+
<Tab title="Product A 仓库">
63+
```yaml docs.yml
64+
global-theme: my-org-theme
65+
66+
instances:
67+
- url: example.docs.buildwithfern.com/product-a
68+
custom-domain: docs.example.com/product-a
69+
multi-source: true
70+
```
71+
</Tab>
72+
<Tab title="Product B 仓库">
73+
```yaml docs.yml
74+
global-theme: my-org-theme
75+
76+
instances:
77+
- url: example.docs.buildwithfern.com/product-b
78+
custom-domain: docs.example.com/product-b
79+
multi-source: true
80+
```
81+
</Tab>
82+
</Tabs>
83+
84+
</Step>
85+
86+
<Step title="从每个仓库发布">
87+
88+
每个仓库独立发布:
89+
90+
```bash
91+
fern generate --docs
92+
```
93+
94+
只更新该仓库拥有的子路径。其他子路径不受影响。
95+
96+
</Step>
97+
98+
<Step title="在 Dashboard 中配置域名设置">
99+
100+
打开 [Fern Dashboard](https://dashboard.buildwithfern.com) 并选择您的顶级域名(例如 `docs.example.com`)——这些设置作用于整个域名,而不是单个子路径。在 **Settings** 标签页中,找到 **Multi-repo settings** 卡片。
101+
102+
配置以下内容:
103+
104+
- **Default path**(默认路径,*可选*)——设置用户访问域名根路径时被引导到哪里。当一个 Fern 管理的页面应作为根路径时设置此项。例如,如果您的主页位于 `/home` 子路径,则将默认路径设置为 `/home`,以便 `docs.example.com` 重定向到 `docs.example.com/home`。如果根路径不由 Fern 管理(如 NVIDIA 的 `docs.nvidia.com`,那是 Fern 配置之外的一个独立营销站点),请跳过此项。
105+
- **Search / Ask AI behavior**——控制 [Ask Fern](/learn/docs/ai-features/ask-fern/overview) 和搜索在子路径之间的工作方式。提供两种模式:
106+
- **Hierarchical**(分层)——在 `/subpath` 下的搜索仅返回 `/subpath` 及其下的结果。当每个子路径覆盖不同的产品、用户期望范围受限的结果时使用。
107+
- **Unified**(统一)——在任意子路径下的搜索都会返回所有子路径的结果。当各子路径属于同一产品的不同部分、用户希望获得跨范围的结果时使用。
108+
109+
<Frame>
110+
![Fern Dashboard 中的多源设置](./images/multi-repo.png)
111+
</Frame>
112+
113+
</Step>
114+
115+
</Steps>
116+
117+
## 示例:一个真实的多源站点
118+
119+
<Tip>
120+
浏览实时站点 [multi-source.docs.buildwithfern.com](https://multi-source.docs.buildwithfern.com),源代码位于 [fern-api/docs-examples/multi-source](https://github.com/fern-api/docs-examples/tree/main/multi-source)
121+
</Tip>
122+
123+
这是与 NVIDIA 设置不同的另一种形态:根路径是一个 Fern 管理的主页,下面是各团队的子路径。该示例在一个共享域名上使用六个独立的 `fern/` 项目——`/` 上的主页、带两个嵌套子项的 `/seeds` 团队中心,以及独立的 `/greenhouses``/nursery` 团队:
124+
125+
<Files>
126+
<Folder name="multi-source.docs.buildwithfern.com" defaultOpen>
127+
<File name="/" comment="主页" />
128+
<Folder name="/seeds" defaultOpen comment="Seeds 团队中心">
129+
<File name="/seeds/sunflower" comment="Sunflower 子团队" />
130+
<File name="/seeds/tomato" comment="Tomato 子团队" />
131+
</Folder>
132+
<File name="/greenhouses" comment="Greenhouses 团队" />
133+
<File name="/nursery" comment="Nursery 团队" />
134+
</Folder>
135+
</Files>
136+
137+
<Note>
138+
单位是每个子路径一个 `fern/` 文件夹,而不是每个子路径一个仓库。每个子路径一个仓库(通常每个团队一个)的布局是最常见的形式,但在单个仓库中放置多个 `fern/` 文件夹也可以。
139+
</Note>
140+
141+
这六个项目都共享 `global-theme: plantstore-theme` 并设置了 `multi-source: true`——它们仅在基础路径上有所不同。子路径本身可以包含嵌套子路径:`/seeds/sunflower``/seeds/tomato` 是位于 `/seeds` 之下的独立发布的项目。
142+
143+
该示例使用 Fern 的预览域名(`*.docs.buildwithfern.com`),因此未设置 `custom-domain`。生产部署通常会为每个实例添加 `custom-domain: docs.example.com/...`
144+
145+
<Tabs>
146+
<Tab title="主页">
147+
```yaml homepage/fern/docs.yml
148+
global-theme: plantstore-theme
149+
150+
instances:
151+
- url: multi-source.docs.buildwithfern.com
152+
multi-source: true
153+
154+
navigation:
155+
- page: Home
156+
path: ./pages/home.mdx
157+
```
158+
159+
主页 `home.mdx` 可以使用卡片将用户引导到每个团队的文档:
160+
161+
```jsx home.mdx
162+
<CardGroup>
163+
<Card title="Seeds" icon="fa-regular fa-seedling" href="/seeds">
164+
一个带嵌套子项的中心,子项位于 `/seeds/sunflower` 和 `/seeds/tomato`。
165+
</Card>
166+
<Card title="Greenhouses" icon="fa-regular fa-warehouse" href="/greenhouses">
167+
气候控制和监测。
168+
</Card>
169+
<Card title="Nursery" icon="fa-regular fa-leaf" href="/nursery">
170+
植物养护与繁殖。
171+
</Card>
172+
</CardGroup>
173+
```
174+
</Tab>
175+
<Tab title="Seeds(中心)">
176+
```yaml seeds/fern/docs.yml
177+
global-theme: plantstore-theme
178+
179+
instances:
180+
- url: multi-source.docs.buildwithfern.com/seeds
181+
multi-source: true
182+
183+
navigation:
184+
- section: Getting started
185+
contents:
186+
- page: Overview
187+
path: ./pages/overview.mdx
188+
```
189+
</Tab>
190+
<Tab title="Sunflower(嵌套)">
191+
```yaml seeds-sunflower/fern/docs.yml
192+
global-theme: plantstore-theme
193+
194+
instances:
195+
- url: multi-source.docs.buildwithfern.com/seeds/sunflower
196+
multi-source: true
197+
198+
navigation:
199+
- section: Getting started
200+
contents:
201+
- page: Overview
202+
path: ./pages/overview.mdx
203+
```
204+
</Tab>
205+
<Tab title="Greenhouses">
206+
```yaml greenhouses/fern/docs.yml
207+
global-theme: plantstore-theme
208+
209+
instances:
210+
- url: multi-source.docs.buildwithfern.com/greenhouses
211+
multi-source: true
212+
213+
navigation:
214+
- section: Getting started
215+
contents:
216+
- page: Overview
217+
path: ./pages/overview.mdx
218+
```
219+
</Tab>
220+
</Tabs>
221+
222+
## 属性
223+
224+
<ParamField path="instances.multi-source" type="boolean" required={false} default={false}>
225+
设为 `true` 时,CLI 使用基础路径感知的发布方式,让多个仓库可以共存于同一个自定义域名下。启用此项时,`url` 和 `custom-domain` 必须共享相同的基础路径。
226+
</ParamField>
227+
228+
<ParamField path="global-theme" type="string" required={false}>
229+
要应用的[全局主题](/learn/docs/customization/global-themes)的名称。CLI 在发布时从 Fern 的注册表中获取该主题,并将其品牌字段合并到本地 `docs.yml` 中。完整字段列表请参阅[主题控制的内容](/learn/docs/customization/global-themes#what-the-theme-controls)。
230+
</ParamField>
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
title: 自定义 robots.txt
3+
description: 在文档站点根目录提供自定义 robots.txt,以控制搜索引擎和 AI 爬虫如何访问您的内容。
4+
sidebar-title: 自定义 robots.txt
5+
---
6+
7+
默认情况下,Fern 在文档站点根目录提供自动生成的 `robots.txt`,允许所有爬虫并指向您的 `sitemap.xml`。使用 [`docs.yml` 中的 `agents.robots-txt`](/learn/docs/configuration/site-level-settings#agentsrobots-txt)以提供您自己的文件——这有助于选择允许或禁止特定的 AI 爬虫、限制敏感部分的访问,或通过 [Cloudflare 内容信号策略](https://blog.cloudflare.com/content-signals-policy/)表明偏好。
8+
9+
`robots.txt` 仅是建议性的:遵守协议的爬虫会尊重您的 `Disallow``Allow` 指令,但忽略该协议的机器人仍可访问这些路径。对于必须保持私密的内容,请[使用身份验证](/learn/docs/authentication/overview)
10+
11+
<Note>
12+
`robots.txt` 决定哪些爬虫可以访问您的站点以及您广播什么 AI 训练信号。它的搭档 [`llms.txt``llms-full.txt`](/learn/docs/ai-features/llms-txt) 决定 AI agent 在爬取后接收到的内容。
13+
</Note>
14+
15+
## 配置
16+
17+
<Steps>
18+
<Step title="在 `docs.yml` 中将 `agents.robots-txt` 指向您的文件">
19+
20+
```yaml docs.yml
21+
agents:
22+
robots-txt: ./robots.txt
23+
```
24+
25+
路径相对于 `docs.yml`。
26+
27+
</Step>
28+
29+
<Step title="编写您的自定义 `robots.txt`">
30+
31+
```txt robots.txt
32+
# 允许搜索引擎
33+
User-Agent: Googlebot
34+
Allow: /
35+
36+
# 限制某个 AI 爬虫访问私有路径
37+
User-Agent: GPTBot
38+
Disallow: /private
39+
40+
# 通过 Cloudflare 内容信号声明 AI 使用偏好
41+
Content-Signal: ai-train=yes, search=yes, ai-input=yes
42+
43+
# 将爬虫指向您的 sitemap——Fern 默认的 robots.txt 包含此项,
44+
# 因此当您用自定义文件替换默认值时,请记得加回此行
45+
Sitemap: https://docs.example.com/sitemap.xml
46+
```
47+
<Tip>
48+
请将命名机器人(如 `GPTBot`、`Googlebot`)放在任何通配符组之前——Fern 在提供文件时会追加自己的 `User-Agent: *` 块。
49+
</Tip>
50+
51+
</Step>
52+
53+
<Step title="Fern 提供您的文件">
54+
55+
您的文件按原样在 `/robots.txt` 提供。Fern 在末尾追加一个受管理的块,禁止内部 API 路由:
56+
57+
```txt
58+
# Fern 管理的路由——自动禁止
59+
User-Agent: *
60+
Disallow: /api/fern-docs/
61+
```
62+
63+
</Step>
64+
</Steps>

0 commit comments

Comments
 (0)