本指南介绍如何开始为 Gutenberg 项目贡献文档。
讨论
Make WordPress Docs 博客是获取最新 WordPress 文档相关信息的主要场所,包括公告、产品目标、会议纪要、会议议程等。
实时文档讨论在 Make WordPress Slack(需注册)的 #docs 频道中进行。文档团队的每周会议定于周二 UTC 时间 14:00 举行。
Gutenberg 项目使用 GitHub 管理代码并跟踪问题。主仓库位于:https://github.com/WordPress/gutenberg。要查找可处理的文档相关问题,请浏览带有 documentation 标签的问题。
文档类型
Gutenberg 项目主要有两套文档:
- 用户文档是关于作为作者发布文章时如何使用编辑器的信息。若要为用户文档做出贡献,请关注 docs 博客或在 #docs Slack 频道中询问以了解当前优先事项。
- 块编辑器手册包含与 Gutenberg 项目相关的所有内容,包括:开发、扩展以及——您正在阅读的这部分——针对 Gutenberg 的贡献工作。
本文档其余部分涵盖对块编辑器手册的贡献工作。
块编辑器手册流程
块编辑器手册由两部分组成:一部分是 Gutenberg 项目仓库中 /docs/ 目录下的 Markdown 文件混合体,另一部分是来自各个包的生成文档。
自动化作业每 15 分钟将文档发布到块编辑器手册站点。
有关如何使用 git 通过拉取请求部署更改,请参阅Git 工作流程文档。此外,请观看视频演示及配套关于向 Gutenberg 贡献文档的幻灯片。
手册结构
手册根据文档的功能类型分为四个部分。The Documentation System很好地解释了每种类型的需求和功能,简而言之,它们是:
- 入门教程 – 完整的课程,逐步引导学习者完成一个目标,例如创建块教程。
- 操作指南 – 专门用于完成一个小特定任务的简短课程,例如如何在块工具栏中添加按钮。
- 参考指南 – API 文档,纯粹的功能描述,
- 解释说明 – 侧重于学习的较长文档,而非针对特定任务。
模板
提供一个操作指南模板,以便为指南提供通用结构。如果开始编写新的操作指南,请复制模板中的 Markdown 以起步。
该模板基于 The Good Docs Project 的示例。如需更多帮助创建高质量文档的示例,请查看他们的模板仓库。
更新文档
要更新现有页面:
- 检出 Gutenberg 仓库。
- 创建一个工作分支,例如
docs/update-contrib-guide。 - 对现有文档进行必要的修改。
- 提交您的更改。
- 使用 [Type] Developer Documentation 标签创建拉取请求。
创建新文档
添加新文档需要一个可用的 JavaScript 开发环境来构建文档,请参阅在块编辑器中使用 JavaScript指南:
- 在 docs 文件夹中创建一个 Markdown 文件,使用小写字母,无空格,如有需要可使用短横线分隔符,并以
.md结尾。 - 使用 Markdown 语法添加内容。所有文档都需要且仅需要一个
h1标签。 - 将文档条目添加到 toc.json 层级结构中。参见现有条目的格式。
- 运行
npm run docs:build以更新manifest.json。 - 与其他更新的文件一起提交
manifest.json。
如果您忘记运行 npm run docs:build,由于 manifest.json 文件是必须提交的未提交本地更改,您的 PR 将在静态分析检查中失败。
记录包
包文档由文档工具自动生成,方法是提取位于包根目录下的 README.md 文件的内容。然而,有时最好将 README 的内容拆分为更小、更易读的部分。
这可以通过在包中创建一个 docs 目录并添加一个 toc.json 文件来实现,该文件包含指向同样位于 docs 目录中的其他 Markdown 文件的引用。toc.json 文件应包含一个数组,列出作为主 README 文件子页面的页面。其格式遵循自动生成的 manifest.json 文件。
为了使这些页面嵌套在主包名称下,请务必正确设置 parent 属性。参见下方示例,它为 @wordpress/create-block 章节添加了子页面。
[
{
"title": "@wordpress/create-block External Template",
"slug": "packages-create-block-external-template",
"markdown_source": "../packages/create-block/docs/external-template.md",
"parent": "packages-create-block"
}
]
使用链接
在某些时候,您可能希望链接到其他内部文档页面。值得强调的是,所有文档都可以在不同的上下文中浏览:
- 块编辑器手册
- GitHub 网站
- npm 网站
为了在所有上下文中都能正常工作的链接,您必须使用不带 `https://github.com/WordPress/gutenberg` 前缀的绝对路径链接。您可以使用以下模式引用文件:
/docs/*.md/packages/*/README.md/packages/components/src/**/README.md
这样,它们将在上述三个上下文中得到正确处理。
请使用 Gutenberg 仓库中的完整目录和文件名,而不是发布后的路径;块编辑器手册会创建短 URL——您可以在教程部分看到这一点。同样,readme.md 部分在手冊中被省略了,但在链接中应包含在内。
例如,本页面的链接是:/docs/contributors/documentation/README.md
代码示例
Markdown 中的代码示例应包裹在三个反引号 ``` 中,并且还应包含语言标识符。请参阅此关于围栏式代码块的 GitHub 文档。
Gutenberg 文档的一个独特功能是 codetabs 切换开关,它允许同时显示两个版本的代码。这用于展示 JSX 和 Plain 两种代码样本。
这是一个 codetabs 部分的示例:
\{\% codetabs \%\}
\{\% JSX \%\}
```js
// JSX code here
```
\{\% Plain \%\}
```js
// Plain code here
```
\{\% end \%\}
代码示例的首选格式是 JSX。这应该是默认视图。源代码中放置的第一个示例将显示为默认值。
注意:并非每个指南都必须包含纯 JavaScript 代码示例。建议在初学者教程或简短示例中包含纯代码,但 Gutenberg 包以及更广泛的 React 和 JavaScript 生态系统中的大多数代码都采用需要构建过程的 JSX 形式。
标注通知
Block Editor 手册支持与其他 WordPress 手册相同的提示样式。然而,由于 Block Editor 手册文档发布在不同位置(npm、GitHub),短代码实现并不理想。
在 markdown 中推荐的实现方式是使用原始 HTML 和 callout callout-LEVEL 类。例如:
<div class="callout callout-info">This is an **info** callout.</div>
可用的类包括:info、tip、alert、warning
<div class="callout callout-tip">
This is a **tip** callout.
</div>
<div class="callout callout-info">
This is an **info** callout.
</div>
<div class="callout callout-alert">
This is an **alert** callout.
</div>
<div class="callout callout-warning">
This is a **warning** callout.
</div>
注意:在 callout 提示框中,链接也需要使用 HTML <a href=""></a> 标记。
通常的链接转换不适用于 callout 中的链接。
例如,要访问 Getting started > Create Block 页面,GitHub 上的 URL 是
https://github.com/WordPress/gutenberg/blob/trunk/docs/getting-started/devenv/get-started-with-create-block.md/
并且必须在 Block Editor Handbook 中硬编码端点为<a href="https://developer.wordpress.org/block-editor/getting-started/create-block/">https://developer.wordpress.org/block-editor/getting-started/create-block/</a>
以便在手冊中正确链接。
行换行
不要对散文进行硬换行。将每个段落、列表项和表格行保持在单行上,并让编辑器在屏幕上软换行。文档没有行长限制;项目的 markdownlint 配置中禁用了 MD013 规则。
硬换行的文本渲染效果相同,但会使后续编辑难以审查:更改一个单词会重排整个段落,导致差异覆盖每一行,而不仅仅是实际发生变化的那一行。
硬换行在源文件中也是一个无障碍问题。屏幕阅读器逐行读取纯文本文件,盲文显示器一次显示一行,因此跨四行的句子会被当作四个片段接收,而且大多数屏幕阅读器无法按句子导航源文本以将其拼合回来。将句子保留在一行意味着阅读一行就能获得完整的想法。Google 开发者文档风格指南也给出了同样的规则:“不要在句子和段落内强制换行(硬回车)。”
在 Markdown 需要换行的地方保留换行符,例如列表项和表格行之间,并且永远不要重新排列围栏代码块。
编辑器配置
你应该配置编辑器使用 Prettier 自动格式化 markdown 文档。有关完整详情,请参阅入门文档。
以下是使用 Visual Studio Code 和 Prettier 扩展的配置示例:
"[[markdown]]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
},
根据你查看此文档的位置,括号可能显示为双括号。正确的格式只是单个括号。图片
Block Editor 手册中显示的图片必须托管在 developer.wordpress.org 媒体库中,而不是从 GitHub 链接。
直接从 GitHub 链接的图片(例如,以 `https://raw.githubusercontent.com` 开头的 URL)受到速率限制的影响,一旦文档同步到 Block Editor 手册,加载可能会失败。将它们托管在媒体库中可以避免这种情况。
要添加图片:
- 将图片上传到 developer.wordpress.org 上的媒体库。这需要额外的权限——如果你没有访问权限,请在 Make WordPress Slack 的
#docs频道中寻求帮助。 - 复制上传图片的 URL。它看起来应该像这样 `https://developer.wordpress.org/files/2026/06/your-image.png`。
- 在 markdown 中使用该 URL 引用图片,并提供描述性的 alt 文本。
例如:

媒体库不接受 SVG 上传。如果 SVG 在手冊中被展示,请将栅格版本(如 PNG)上传到媒体库并进行引用。仅当 SVG 旨在被下载时(例如,作为矢量文件提供的徽标),才将其保留在仓库中并直接链接——下载链接不会在每次页面渲染时被获取,因此不受速率限制影响。视频嵌入
Block Editor 手册中的视频需要作为未列出视频托管在 WordPress YouTube 频道上。此过程需要额外权限。请在 #marketing Slack 频道中联系以寻求帮助。
视频上传到 YouTube 后,检索视频嵌入链接。它看起来应该像这样:
https://www.youtube.com/embed/nrut8SfXA44?si=YxvmHmAoYx-BDCog
然后,将你希望视频嵌入文档的位置放置以下代码。相应地更新嵌入链接和视频标题。
<iframe width="960" height="540" src="[Video embed link]" title="[Video title]" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="true"></iframe>
视频应具有 16:9 的宽高比,并以尽可能高的分辨率拍摄。