# 如何撰写技术文档 (/zh/guides/style-and-tone)

<!-- agent-signals: reading_time_min: 4 · est_tokens: 2431 · updated: 2026-07-30 -->

好的技术文档只有一个目标：帮助用户完成任务并回到工作中。风格和语气的选择要么支持这个目标，要么成为障碍。清晰一致的写作能建立用户信任。不一致或含糊的写作会制造摩擦，削弱用户对产品的信心。

本指南涵盖了有效技术写作背后的核心原则，并提供如何应用这些原则的实用指导。

<div id="write-in-second-person">
  ## 使用第二人称 [#使用第二人称]
</div>

直接以"你"来称呼用户。第二人称使说明更容易理解，并将重点放在用户正在做什么，而不是产品做了什么。

```mdx
<!-- 第二人称（推荐） -->
你可以在设置文件中配置超时时间。

<!-- 第三人称（避免） -->
用户可以在设置文件中配置超时时间。
```

第二人称还有助于发现被动语态：当你写"你"时，你不得不说明是谁在做什么。

<div id="use-active-voice">
  ## 使用主动语态 [#使用主动语态]
</div>

主动语态使句子更短、更清晰。在被动语态中，主语接受动作。在主动语态中，主语执行动作。

```mdx
<!-- 主动 -->
当 token 过期时，API 会返回错误。

<!-- 被动 -->
当 token 过期时，会返回一个错误。
```

被动语态并非总是错误的。当执行者未知或不重要时，被动语态是合适的。但将被动语态作为默认习惯会使文档更难阅读。

一个快速测试：如果你能在动词后面加上"被僵尸"，那这个句子就是被动的。"一个错误被返回了\[被僵尸]"是被动语态。"API 返回了\[~~被僵尸~~]一个错误"是主动语态。

<div id="keep-sentences-and-paragraphs-short">
  ## 保持句子和段落简短 [#保持句子和段落简短]
</div>

文档被浏览的次数远多于被阅读的次数。冗长的句子和密集的段落会在用户试图找到特定答案时拖慢他们的速度。

准则：

* 尽量将句子控制在 25 个词以内
* 每个句子只表达一个观点
* 每段两到四个句子
* 将步骤列表用编号序列分开，而不是连续的长段落

如果一个句子需要多个逗号或分号才能连贯，那它很可能可以拆分成两个句子。

<div id="use-headings-that-match-user-intent">
  ## 使用与用户意图匹配的标题 [#使用与用户意图匹配的标题]
</div>

标题为人类和搜索引擎组织页面。编写标题时应回答用户可能提出的问题，而不是从产品角度标注主题。

```mdx
<!-- 面向意图（更好） -->
## 如何配置身份验证

<!-- 主题标签（较弱） -->
## 身份验证配置
```

所有标题使用句首大写（"入门指南"，而不是每个词都大写）。不要跳过标题层级——从 H2 到 H3，而不是从 H2 到 H4。

在 Mintlify 文档中，页面的 H1 会从 `title:` frontmatter 属性自动生成。不要在正文中手动添加 H1。

<div id="use-consistent-terminology">
  ## 使用一致的术语 [#使用一致的术语]
</div>

为每个概念选择一个术语并在所有地方使用。在"API key"、"API token"和"access token"之间来回切换来描述同一事物，会迫使用户停下来猜测你是否在说同一件事。

首次引入一个术语时，在当前位置直接定义它，而不是链接到其他页面。

```mdx
<!-- 在上下文中定义 -->
每个请求都需要一个 API key——一个用于标识你账户的唯一 token。

<!-- 不要假设用户已有相关知识 -->
每个请求都需要一个 API key。
```

如果你的产品对事物有特定名称（对象、操作、UI 元素），请完全按照它们在产品中出现的方式使用这些名称。保持大小写一致。

<div id="calibrate-tone-to-your-audience-and-content-type">
  ## 根据受众和内容类型调整语气 [#根据受众和内容类型调整语气]
</div>

语气应该与用户试图做的事情相匹配。面向新用户的入门指南适合更温暖、更鼓励的语气。面向经验丰富的开发者的 API 参考更适合密集和精确，而非温暖。

一些适用于所有内容类型的原则：

* **直接但不生硬。**"点击保存"比"请在准备好继续时点击保存按钮"更好。
* **避免填充短语。**"值得注意的是"、"为了"、"请注意"和"只需"增加了词汇量却没有增加含义。
* **不要发表评论。**"这是一个强大的功能"是一种观点。记录它的功能，而不是它有多令人印象深刻。
* **使用用户的词汇。** 如果你的用户称之为"webhook"，不要在文档中称之为"event callback"。使用他们已经在搜索的词。

<div id="avoid-common-mistakes">
  ## 避免常见错误 [#避免常见错误]
</div>

<div id="jargon-and-internal-terminology">
  ### 行话和内部术语 [#行话和内部术语]
</div>

团队会发展出用户从未接触过的简称。检查新内容中是否有对首次接触产品的人来说陌生的术语。

<div id="inconsistent-capitalization">
  ### 大小写不一致 [#大小写不一致]
</div>

决定产品功能名称是否大写（"Dashboard"、"API Explorer"）并始终如一地应用。大小写不一致表明缺乏对细节的关注。

<div id="colloquialisms">
  ### 口语化表达 [#口语化表达]
</div>

非正式短语和习语更难翻译，对非母语人士来说也更难理解。面向国际受众的文档应使用简单直接的语言。

<div id="spelling-and-grammar-errors">
  ### 拼写和语法错误 [#拼写和语法错误]
</div>

即使只有少量错误也会降低可信度。它们表明没有人仔细审查过内容，这会让用户怀疑技术内容是否同样不可靠。

<div id="enforce-standards-with-tooling">
  ## 使用工具执行标准 [#使用工具执行标准]
</div>

写作原则只有在成为可重复工作流的一部分时才能持续。以下是一些自动化执行的方法：

* **[Vale](https://vale.sh)：** 一个针对散文的 linter，可以根据可配置的风格规则进行检查。你可以编写规则来强制使用你自己的术语、标记被动语态或捕获常见错误。
* **[CI 检查](/zh/deploy/ci)：** 在每个 pull request 上运行 Vale 或其他 linter，以便在内容合并之前发现风格问题。
* **现有风格指南：** 与其从头编写规则，不如从已有的指南开始。[Google Developer Documentation Style Guide](https://developers.google.com/style)、[Microsoft Style Guide](https://learn.microsoft.com/en-us/style-guide/welcome/) 和 [Splunk Style Guide](https://docs.splunk.com/Documentation/StyleGuide/current/StyleGuide/Howtouse) 都是免费且广泛使用的。

<Tip>
  使用 [automation](/zh/automations) 按计划运行风格审核，或在每次向文档仓库推送更改时运行。
</Tip>

<div id="frequently-asked-questions">
  ## 常见问题 [#常见问题]
</div>

<AccordionGroup>
  <Accordion title="技术文档应该有多正式？">
    根据受众和产品背景调整正式程度。面向工程师的开发者工具可以直接简洁——跳过客套直接进入代码。面向技术水平较低的用户或企业产品的文档通常受益于更温暖的语气，能预见用户的困惑。无论哪种情况，都要避免僵硬的企业语言。"利用"并不比"使用"更精确。像一个知识渊博的同事解释事情那样写作，而不是像法律文件那样描述。
  </Accordion>

  <Accordion title="什么时候可以使用被动语态？">
    当执行者未知、不相关，或当强调结果比强调谁造成的更重要时。"请求在处理前会被验证"如果你是在描述请求发生了什么而不是谁验证了它，这是没问题的。当被动语态掩盖了用户需要执行的操作的责任人时，它就成了问题。
  </Accordion>

  <Accordion title="我应该为初学者还是专家写作？">
    确定每个页面的主要受众并为他们写作。入门指南应假设最少的先验知识。API 参考应假设读者知道 API 是如何工作的。错误在于试图在同一页面上服务两者——在参考页面上添加初学者上下文会拖慢专家的速度，而在教程中假设专家知识会让初学者迷失。如果你确实有两个不同的受众，请考虑为每个受众创建不同的内容类型。请参阅[内容类型](/zh/guides/content-types)获取指导。
  </Accordion>

  <Accordion title="如何在大型文档站点中保持术语一致？">
    维护一个术语列表——一个简单的首选术语和应避免术语的表格。与所有文档贡献者共享，并在审查时检查。Vale 可以通过自定义词汇文件自动执行。维护列表的投入很快就能通过减少审查周期和减少用户对混乱术语的投诉来获得回报。
  </Accordion>

  <Accordion title="文档页面的合适长度是多少？">
    足够长以完整覆盖主题，足够短以保持聚焦。如果一个页面涵盖两个不同的任务，考虑将其拆分。如果它涵盖一个任务但内容单薄，可能缺少重要细节。参考内容可以长而密集——用户会浏览它。概念内容应该更短——用户会阅读它。请参阅[内容类型](/zh/guides/content-types)了解更多关于如何根据内容目的调整页面长度的信息。
  </Accordion>
</AccordionGroup>

<div id="related-pages">
  ## 相关页面 [#相关页面]
</div>

<CardGroup cols="2">
  <Card title="内容类型" icon="<svg xmlns=&#x22;http://www.w3.org/2000/svg&#x22; viewBox=&#x22;0 0 24 24&#x22; fill=&#x22;none&#x22;><path d=&#x22;M12 7V5.33333C12 4.55608 12 4.16746 12.1405 3.86607C12.2896 3.54646 12.5465 3.28958 12.8661 3.14054C13.1675 3 13.5561 3 14.3333 3C14.7406 3 14.9443 3 15.1321 3.04949C15.3321 3.10217 15.519 3.19563 15.6811 3.324C15.8334 3.44459 15.9556 3.6075 16.2 3.93333L17 5H18.5C19.4346 5 19.9019 5 20.25 5.20096C20.478 5.33261 20.6674 5.52197 20.799 5.75C21 6.09808 21 6.56538 21 7.5C21 8.43462 21 8.90192 20.799 9.25C20.6674 9.47803 20.478 9.66739 20.25 9.79904C19.9019 10 19.4346 10 18.5 10H15C13.5858 10 12.8787 10 12.4393 9.56066C12 9.12132 12 8.41421 12 7Z&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/><path d=&#x22;M12 18V16.3333C12 15.5561 12 15.1675 12.1405 14.8661C12.2896 14.5465 12.5465 14.2896 12.8661 14.1405C13.1675 14 13.5561 14 14.3333 14C14.7406 14 14.9443 14 15.1321 14.0495C15.3321 14.1022 15.519 14.1956 15.6811 14.324C15.8334 14.4446 15.9556 14.6075 16.2 14.9333L17 16H18.5C19.4346 16 19.9019 16 20.25 16.201C20.478 16.3326 20.6674 16.522 20.799 16.75C21 17.0981 21 17.5654 21 18.5C21 19.4346 21 19.9019 20.799 20.25C20.6674 20.478 20.478 20.6674 20.25 20.799C19.9019 21 19.4346 21 18.5 21H15C13.5858 21 12.8787 21 12.4393 20.5607C12 20.1213 12 19.4142 12 18Z&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/><path d=&#x22;M8 7H7C6.07003 7 5.60504 7 5.22354 6.89778C4.18827 6.62038 3.37962 5.81173 3.10222 4.77646C3 4.39496 3 3.92997 3 3&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/><path d=&#x22;M3 3V13C3 14.8692 3 15.8038 3.40192 16.5C3.66523 16.9561 4.04394 17.3348 4.5 17.5981C5.19615 18 6.13077 18 8 18&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/></svg>" href="/zh/guides/content-types">
    为你的文档目标选择合适的内容类型。
  </Card>

  <Card title="无障碍访问" icon="<svg xmlns=&#x22;http://www.w3.org/2000/svg&#x22; viewBox=&#x22;0 0 24 24&#x22; fill=&#x22;none&#x22;><path d=&#x22;M17 8.5C17 5.73858 14.7614 3.5 12 3.5C9.23858 3.5 7 5.73858 7 8.5C7 11.2614 9.23858 13.5 12 13.5C14.7614 13.5 17 11.2614 17 8.5Z&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/><path d=&#x22;M19 20.5C19 16.634 15.866 13.5 12 13.5C8.13401 13.5 5 16.634 5 20.5&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/></svg>" href="/zh/guides/accessibility">
    让你的文档对更多用户无障碍可用。
  </Card>

  <Card title="文本格式" icon="<svg xmlns=&#x22;http://www.w3.org/2000/svg&#x22; viewBox=&#x22;0 0 24 24&#x22; fill=&#x22;none&#x22;><path d=&#x22;M21.5 10V17M21.5 13.5C21.5 15.433 19.933 17 18 17C16.067 17 14.5 15.433 14.5 13.5C14.5 11.567 16.067 10 18 10C19.933 10 21.5 11.567 21.5 13.5Z&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/><path d=&#x22;M5.12734 10.0987L5.82827 10.3655V10.3655L5.12734 10.0987ZM1.79908 16.7332C1.6517 17.1203 1.84605 17.5536 2.23316 17.7009C2.62027 17.8483 3.05355 17.654 3.20092 17.2668L2.5 17L1.79908 16.7332ZM10.7991 17.2668C10.9464 17.654 11.3797 17.8483 11.7668 17.7009C12.154 17.5536 12.3483 17.1203 12.2009 16.7332L11.5 17L10.7991 17.2668ZM8.87266 10.0987L8.17173 10.3655V10.3655L8.87266 10.0987ZM4 13.25C3.58579 13.25 3.25 13.5858 3.25 14C3.25 14.4142 3.58579 14.75 4 14.75V14V13.25ZM10 14.75C10.4142 14.75 10.75 14.4142 10.75 14C10.75 13.5858 10.4142 13.25 10 13.25V14V14.75ZM5.12734 10.0987L4.42642 9.83181L1.79908 16.7332L2.5 17L3.20092 17.2668L5.82827 10.3655L5.12734 10.0987ZM11.5 17L12.2009 16.7332L9.57358 9.83181L8.87266 10.0987L8.17173 10.3655L10.7991 17.2668L11.5 17ZM5.12734 10.0987L5.82827 10.3655C6.23034 9.30935 6.50423 8.59494 6.75631 8.13531C7.02854 7.63894 7.10953 7.75 7 7.75V7V6.25C6.19747 6.25 5.73535 6.87751 5.44111 7.41402C5.12672 7.98727 4.81078 8.8222 4.42642 9.83181L5.12734 10.0987ZM8.87266 10.0987L9.57358 9.83181C9.18922 8.82219 8.87328 7.98727 8.55889 7.41402C8.26465 6.87751 7.80253 6.25 7 6.25V7V7.75C6.89047 7.75 6.97146 7.63894 7.24369 8.13531C7.49577 8.59494 7.76966 9.30934 8.17173 10.3655L8.87266 10.0987ZM4 14V14.75H10V14V13.25H4V14Z&#x22; fill=&#x22;currentColor&#x22;/></svg>" href="/zh/create/text">
    了解文本格式和样式选项。
  </Card>

  <Card title="SEO 最佳实践" icon="<svg xmlns=&#x22;http://www.w3.org/2000/svg&#x22; viewBox=&#x22;0 0 24 24&#x22; fill=&#x22;none&#x22;><path d=&#x22;M17 17L21 21&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/><path d=&#x22;M19 11C19 6.58172 15.4183 3 11 3C6.58172 3 3 6.58172 3 11C3 15.4183 6.58172 19 11 19C15.4183 19 19 15.4183 19 11Z&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/></svg>" href="/zh/guides/seo">
    提高文档的可发现性。
  </Card>
</CardGroup>
