n8n 文档风格指南
写作风格
n8n 使用 Microsoft 写作风格指南。本文重点介绍对 n8n 文档最重要的部分,并补充我们的自定义风格约定。
明确读者
面向使用、运维或基于 n8n 开发的读者写作,而非面向 n8n 内部工程师。
写清读者需要操作和看到的内容:控件、设置、字段、错误消息、限制,以及影响其构建结果的行为。
只有读者需要借助实现细节采取行动、选择方案或排查问题时,才加入这些细节。例如,执行数据的存储方式适合写在自托管页面中,不适合写在节点参考页中。其他情况下应省略。
工单、PR 和设计文档是事实来源,不是页面模板。保留读者需要的信息,省去其余内容。
通俗语言
- 清楚说明所记录流程的每一步。
- 使用现在时。
- 尽量简洁。以下两款免费的浏览器应用可以提供帮助:
留意以下常见表达,优先使用更简单的说法:
| 避免使用 | 改为使用 |
|---|---|
| utilize、leverage | use |
| in order to | to |
| functionality、capabilities | features、what it does |
| It’s important to note that X | X |
| n8n provides a powerful, seamless way to... | n8n lets you... |
几条实用原则:
- **删除赘词。**省去 It’s important to note that、Simply 等开场白。
- **避免营销用语。**省去 powerful、robust、seamless,直接说明功能的作用。
- **删除含糊的修饰词。**省去 very、quite、several,或给出具体数值。
- **句子保持简短。**每句少于 30 个英文单词,只表达一个意思。由分号或第二个 and 连接起来的句子应拆分。
- **以动作开头,不用 There is。**使用 To schedule a workflow, add a Schedule Trigger,而非 There is a node that can schedule workflows。
语态与人称
像直接与读者交谈一样写作。
- **使用主动语态。**使用 n8n sends the request,而非 the request is sent by n8n。
- **用 you 称呼读者。**使用 You can add a node,而非 Users can add a node。
- **避免第一人称。**使用 n8n 代替 I、we 或 our。例如 n8n recommends,而非 we recommend。
- **使用英文缩略形式。**使用 Don’t 和 you’ll,而非 do not 和 you will。
包容性语言
为所有人写作。
- **对未知性别的人使用 they。**使用 Every user can configure their settings,而非 his settings。
- **选择性别中立的用词。**使用 Chair 而非 chairman,使用 Main 而非 master。
术语与命名
对同一概念始终使用相同术语,优先采用官方产品术语,而非看似合适的近义词。例如使用 publish a workflow,而非 activate a workflow。正文使用句首式大小写;直接引用界面标签或节点名称时,加粗并保持产品中的确切大小写。产品名称写作小写 n8n,即使位于句首也不例外。
完整的推荐与禁用术语请参阅术语与命名。
文字格式
- 标题:句首式大小写(更多信息)。
- 界面元素:加粗(更多信息)。
- 用户输入:使用代码格式。占位符采用以连字符连接的单词,并用尖括号包裹;默认小写,也可为匹配环境变量等约定使用大写。例如
<your-root-directory>或<YOUR-API-KEY>。 - 文件名、目录名和路径:使用代码格式。
- 品牌名称必须准确,例如 GitHub,而非 Github。
数字、日期与时间
英文中零至九使用单词,10 及以上使用数字。
以下情况除外:
- **小数:**始终使用数字,即使小于 10,例如 3.5,而非 three point five。
- **百分比:**使用数字,例如 5%,而非 five percent。
- **版本及其他技术字符串:**使用数字,例如 n8n 2.1、step 3。
- **计量单位:**使用数字,例如 5px、3MB。
日期与时间
- 月份使用英文全称,不使用序数词。例如 July 31, 2016,而非 31/07/2016 或 July 31st。
- 使用 AM/PM,并在前面留空格,例如 9 AM,而非 9am。
范围
- 正文中使用 from X to Y 或 X through Y,例如 from 5 to 10 nodes。
- 表格或标签中的数字范围使用短破折号(–),而非连字符,例如 5–10。
- 时间范围使用 to,例如 9 AM to 5 PM,而非 9 AM–5 PM。
标点与空格
- 英文句子之间只留一个空格,不要两个。
- **标点放在英文引号内。**使用 “Select Save,” 而非 “Select Save”。
- **使用牛津逗号。**例如 triggers, nodes, and credentials。
- **避免长破折号(—)。**改用逗号或另起一句。例如 Add a node, then save,而非 Add a node — then save。
- **避免省略号(…)。**使用 Configure the settings, then continue,而非 Configure the settings...。
页面长度与粒度
将内容拆分为主题集中的页面,每页涵盖一个概念、任务或参考类别,避免整页过于庞大,也避免内容零散。内容独立完整、用标题组织的页面最适合读者和 AI 工具;原因见面向智能体的友好文档。
长度
- **合理范围:**约 1,500 至 20,000 个字符,或 250 至 3,000 个英文单词,方便读者浏览,也便于 AI 工具检索。
- **少于约 1,500 个字符时合并:**内容太短不利于检索,应将简略页面合并到父页面或同级页面。
- **超过约 25,000 个字符时拆分:**页面混合多种内容类型(概念、操作指南、参考),或某节不断扩张(例如逐个客户端列举示例)时,也应拆分。
- **绝不超过约 50,000 个字符。**智能体会截断超出此上限的内容。
如何拆分
- 按类型或任务边界拆分,例如概念、操作指南、参考、示例,不要仅按长度任意切分。这样符合读者的浏览方式,并使每个片段聚焦一个主题。
- 将相关事实放在同一页面,例如某类别的全部环境变量、某节点的全部参数。AI 搜索会将相邻内容放在一起,邻近排列有助于保留上下文。
让每节内容独立完整
确保读者即使只看到一节、没有相邻内容提供上下文,也能理解该节。原因见面向智能体的友好文档:
- **使用描述明确、句首式大小写的标题。**AI 搜索通常按标题检索,并可能不带页面其他内容,因此要完整说明主题。例如 Configure the Schedule Trigger,而非 Configuration。
- **每节都应能够独立理解。**重新说明关键背景,而非指回其他地方。避免 as mentioned above、as described in the previous section、see below 等表达;智能体乱序检索或读者从搜索直接进入时,这些指代会失去作用。
- **重述要点,不重复整段。**仅重复该节所需的一两项事实。如果两节都需要相同的长篇解释,说明它们可能应合并到同一标题下。重述应简短,使页面保持精炼,参阅通俗语言。
以一句话回答开篇
在 H1 之后、已有简介、提示框或复用片段之前,加入一句通俗文字,具体回答页面主题问题。原因见面向智能体的友好文档。
- 说明页面或节点能让读者做什么,写出实际产品、节点或技术名称,而非笼统地说“可以做一些事情”。
- 使用一句话;只有确实需要简短限定说明时才用两句。
- 如果现有简介已以类似句子开头,则无需添加。
例如:“Code 节点允许你在工作流中运行自己的 JavaScript 或 Python,以转换数据,或加入内置节点未涵盖的逻辑。”
链接到相关页面、前提条件和后续步骤
将各页面与同主题的其他页面连接起来,参阅面向智能体的友好文档。
以下指南不适用于 docs/integrations/(节点)页面,这些页面使用另一种结构。
- 始终链接到前提条件和下一步。
- **章节入口页链接到子页面。**有两个及以上子页面时,在 In this section(本节内容)标题下用项目列表列出链接和简短说明。只有一个子页面时,省略列表,在正文首次提及时直接链接。
- **子页面在末尾 Related resources(相关资源)中链接回父页面和同级页面。**父页面和每个直接同级页面各放一个链接,不附说明。父链接使用
./(当前页面与父页面的README.md位于同一文件夹时),或使用../(当前页本身是位于父页面下一层的章节入口页时),参阅父页面。其他确实相关的页面可以酌情添加。 - **超过 10 个同级页面时,省略同级列表。**只链接父页面,因为父页面的 In this section 已有完整列表。
- **自身也是父页面的页面,两种链接都要提供。**使用 In this section 列出子页面,并在 Related resources 页脚链接到自己的父页面和同级页面;只向上一级及同级链接,不链接到祖父级。
- **扁平参考集合可以省略同级链接。**如果每页都采用相同的单项信息模板,例如每种表达式数据类型一页,则 Related resources 只链接父页面。
- 同一主题尽量形成至少五个相互链接页面的 集群。
- 正文只在首次有实际意义地提及时添加链接,链接文字应描述目标,例如配置 Schedule Trigger,而非“单击这里”。复用已有的主题提及,不要只为添加链接而新增句子。链接不能替代该节需要的上下文;必要时应重述关键事实,参阅让每节内容独立完整。
功能可用范围
功能的可用范围可能受到三种限制:
- **方案或平台:**在哪些 n8n Cloud 方案或自托管版本上可用。
- **版本:**在哪个 n8n 版本中引入、弃用或移除。
- **预览状态:**是否仍在趋于稳定、可能变化,或尚未向所有人开放。
方案、平台和版本限制使用同一套文档规则。预览状态则采用不同方式,始终单独记录。
方案、平台与版本限制
可以按三种范围记录:
- **页面或章节:**在页面标题或相关小节标题下,放置标题为 Feature availability(功能可用范围)的
info提示框。参阅功能可用范围提示框。 - **行内或顺带提及:**对于小型选项、字段、角色或行为,或正文中提到但没有独立标题的整个功能或节点,在旁边加入简短说明,将限制融入句子。参阅行内与顺带提及。
- **表格行:**某一行适用限制时,将其放入说明单元格;如果多行限制不同,则增加专用列。参阅表格行。
功能可用范围提示框
示例:
同时限制方案与版本:
{% hint style="info" %}
**Feature availability**
Environments are available on:
- **n8n Cloud:** Pro, Enterprise
- **Self-hosted:** Enterprise
Available from n8n 2.30.0.
{% endhint %}
**仅限制版本:**主体可以是功能,也可以是节点。
{% hint style="info" %}
**Feature availability**
Canvas Groups are available from n8n 2.28.0.
{% endhint %}
**弃用或移除:**使用 warning,而非 info。移除时调整措辞,例如“N8N_RUNNERS_ENABLED 从 n8n 3.0 起移除”。此处的主体是一项设置:
{% hint style="warning" %}
**Feature availability**
`N8N_RUNNERS_ENABLED` is deprecated from n8n 2.0.
{% endhint %}
如果整页介绍的功能已经弃用或移除,还应添加主要 deprecated 标签,参阅 Frontmatter 下的标签。不要添加 status: 字段,因为 deprecated 不是该字段经确认可用的值:
---
tags:
- tag: deprecated
primary: true
---
该标签需要在空间的 .gitbook/tags.yaml 中定义,显示文字为 Deprecated,颜色为红色。
规则:
- ** 提示框样式:**弃用或移除使用
warning,因为读者需要采取行动;其他情况使用info。组合提示使用warning。 - 正文中写明主体,不能只在标题中说明。提示框标题没有指出什么内容可用,也不要依赖外部标题。保持 available from n8n X.Y.Z 连贯。仅限制版本时,可以说明替代对象,例如 The Chat Trigger node is available from n8n 1.24.0, replacing the Manual Chat Trigger node。
- **平台列表:**以“
available on:”开头。始终写明两个平台;两者均支持时各列一项。仅支持其一时,在该项下方补充不可用说明,例如 It isn’t available on n8n Cloud 或 ...self-hosted。如果另一平台需满足条件才可用,例如需要申请,则用条件说明替代不可用说明,例如 On n8n Cloud Enterprise, contact n8n to enable it。 - **层级:**按低到高顺序列出,用逗号分隔,不使用 and。Cloud:Starter、Pro、Enterprise。自托管:Community、Registered Community、Business、Enterprise。名称和大小写必须准确,Registered Community 不缩写。
- 写作 n8n Cloud,不要单独使用 Cloud。
- **整个平台:**使用
All plans/All editions,不要逐一列举层级。All plans 包含免费试用,试用功能与 Pro 对应;不要单列试用,仅在试用页面中介绍。 - 列表下方的顺序:(1)不可用或附带条件说明;(2)版本说明;(3)其他功能特有的限制说明。
- **没有方案限制时:**仅限制版本、弃用或移除时,只保留标题和说明句,不使用列表。
- **不要链接到方案版本对比或发行说明。**在句子中直接说明事实,需要时由读者自行搜索。
行内与顺带提及
较大功能中的小控件、选项、字段或角色,或正文中没有独立标题的整个功能或节点,使用行内说明。适用于整页或整节的限制应使用提示框,不使用行内说明。
- 写明具体对象,不使用 this feature 或 this option,确保脱离上下文也能理解。
- 每个对象用一句话;同时涉及方案或平台和版本时可用两句,先写方案或平台。
- 如果两个平台都相关,就都要提及,不要用省略暗示不可用。
- 直接说明版本、弃用或移除,例如 available from n8n X、deprecated from n8n X。省略提示框所用的 Available from 引导语。
- 如果超过两句,或需要列出两个平台,则改为适用范围明确的提示框。
对于控件、选项、字段或角色:
The **Scopes** option is available on n8n Cloud Pro, Enterprise, and self-hosted Enterprise.
The **Legacy format** field is deprecated from n8n 2.30.0.
对于没有独立标题的整个功能或节点,将限制融入句子:
The Data table node (available from n8n 2.17.0) stores data between executions.
The environments feature (n8n Cloud Enterprise, self-hosted Enterprise) lets you promote workflows between instances.
表格行
多行中的某一行适用限制时,沿用行内说明的用词和顺序,将限制放在说明单元格中:
| 变量 | 类型 | 默认值 | 说明 |
|---|---|---|---|
N8N_RUNNERS_ENABLED(已弃用) | Boolean | false | 是否启用任务运行器。自 n8n 2.0 起弃用,无需再设置此变量。 |
如果多行限制不同,也可以增加专用列:
| 变量 | 可用范围 | 说明 |
|---|---|---|
N8N_LDAP_ENABLED | 自托管 Business、Enterprise | 是否启用 LDAP 登录。 |
N8N_SMTP_HOST | 所有版本 | 发送邮件所用 SMTP 服务器的主机名。 |
版本表述
两种版本类型
n8n 有两套独立版本号,不要让读者猜测具体指哪一种。
- **实例版本:**n8n 的发行版本,使用三段 semver,例如 2.30.0。用于功能、环境变量、API、CLI 命令和钩子。
- **节点版本:**某个节点的版本,通常为两段,例如 4.7。仅用于节点特有的信息。
正文中出现版本数字时应说明归属,例如 n8n 2.30.0 或 node version 4.7,而非 version 2。
版本号写法
遵循数字规范,并对 n8n 实例版本采用以下规则:
- **产品名加数字:**n8n 2.30.0。
- **不加
v前缀:**不要写作 n8n v2.30.0。 - **n8n 后不加 version:**不要写作 n8n version 2.30.0。
- **正文中的版本不使用行内代码格式:**写作 n8n 2.30.0,而非 n8n
2.30.0。只有版本实际出现在代码、命令或文件路径中时才使用代码格式,例如n8n@2.30.0、Docker 标签或package.json的值。
预览状态
Preview 功能已经可用,但尚未完整或稳定,可能发生变化。作为成熟度标签时,Preview 首字母大写,例如 is in Preview、a Preview feature、In Preview from n8n 2.20.0;使用 Preview,不使用 beta。链接预览、界面预览操作等其他含义仍使用小写。Frontmatter 和标签值作为字面标识符而非正文,保持小写,例如 status: preview、tag: preview。
**页面或章节:**提示框标题使用 **Preview status**,而非 **Feature availability**。稳定性和可用范围是不同问题,应各有提示框,不要沿用可用范围提示框的标签另加一个。节点或功能名写在下方句子中,不放在标题里,因为读者会脱离周围标 题单独浏览提示框:
{% hint style="info" %}
**Preview status**
The Data table node is in Preview and may change in future releases. Avoid relying on it in production workflows.
{% endhint %}
如果整页介绍 Preview 功能,还应设置 status: preview,并添加主要 preview 标签,参阅 Frontmatter 下的标签:
---
status: preview
tags:
- tag: preview
primary: true
---
实际示例请参阅构建和管理智能体。
**行内或顺带提及:**适用于小型控件,或正文中没有独立标题的整个功能或节点:
The **Streaming response** option is in Preview and may change in future releases.
The Data table node is in Preview and may change in future releases.
- **有帮助时关联版本:**例如 In Preview from n8n 2.20.0。
- **与功能可用范围分开。**两者同时适用时,分别排列两个提示框或两个句子,不要混为一体。
- **行内说明需要超过一句话时:**改为页面级或章节级提示框。