文档样式指南

    关于为 Kubernetes 文档贡献新内容的更多信息,可以参考 。

    样式指南的变更是 SIG Docs 团队集体决定。 如要提议更改或新增条目,请先将其添加到下一次 SIG Docs 例会的 议程表 上,并按时参加会议讨论。

    Kubernetes 文档已经被翻译为多个语种 (参见 )。

    为文档提供一种新的语言翻译的途径可以在 本地化 Kubernetes 文档中找到。

    英语文档使用美国英语的拼写和语法。

    文档格式标准

    当你与指定的 API 对象进行交互时,使用 , 也被称为帕斯卡拼写法. 通常在讨论 API 对象时,使用 句子式大写.

    不要将 API 对象的名称切分成多个单词。例如,使用 PodTemplateList,不要 使用 Pod Template List。

    引用 API 对象时不必强调 “object(对象)”,除非省略“object(object)” 会使得文字读起来很别扭。

    在占位符中使用尖括号

    在占位符中使用尖括号,并让读者知道其中代表的事物。例如:

    1. 显示 Pod 信息:

      如果名字空间被忽略,默认为 ,你可以忽略 ‘-n’ 参数。

    用粗体字表现用户界面元素

    可以不可以
    点击 Fork.点击 “Fork”.
    选择 Other.选择 “Other”.

    定义或引入新术语时使用斜体

    可以不可以
    每个 集群 是一组节点 …每个“集群”是一组节点 …
    这些组件构成了 控制面.这些组件构成了 控制面.

    使用代码样式表现文件名、目录和路径

    可以不可以
    打开 envars.yaml 文件打开 envars.yaml 文件
    进入到 /docs/tutorials 目录进入到 /docs/tutorials 目录
    打开 /_data/concepts.yaml 文件打开 /_data/concepts.yaml 文件

    在引号内使用国际标准标点

    可以不可以
    事件记录中都包含对应的“stage”。事件记录中都包含对应的“stage。”
    此副本称作一个“fork”。此副本称作一个“fork。”

    行间代码格式

    为行间代码、命令与 API 对象使用代码样式

    对于 HTML 文档中的行间代码,使用 <code> 标记。 在 Markdown 文档中,使用反引号(` )。

    可以不可以
    kubectl run 命令会创建一个 Pod“kubectl run” 命令会创建一个 pod。
    每个节点上的 kubelet 都会获得一个 Lease每个节点上的 kubelet 都会获得一个 lease…
    一个 PersistentVolume 代表持久存储一个 Persistent Volume 代表持久存储…
    在声明式管理中,使用 kubectl apply在声明式管理中,使用 “kubectl apply”。
    用三个反引号来(```)标示代码示例用其他语法来标示代码示例。
    使用单个反引号来标示行间代码。例如:var example = true使用两个星号(**)或者一个下划线(_)来标示行间代码。例如:var example = true
    在多行代码块之前和之后使用三个反引号标示隔离的代码块。使用多行代码块来创建示意图、流程图或者其他表示。
    使用符合上下文的有意义的变量名。使用诸如 ‘foo’、’bar’ 和 ‘baz’ 这类无意义且无语境的变量名。
    删除代码中行尾空白。在代码中包含行尾空白,因为屏幕抓取工具通常也会抓取空白字符。

    说明: 网站支持为代码示例使用语法加亮,不过指定语法加亮是可选的。 代码段的语法加亮要遵从

    为对象字段名和名字空间使用代码风格

    可以不可以
    在配置文件中设置 replicas 字段的值。在配置文件中设置 “replicas” 字段的值。
    exec 字段的值是一个 ExecAction 对象。“exec” 字段的值是一个 ExecAction 对象。
    kube-system 名字空间中以 DaemonSet 形式运行此进程。在 kube-system 名字空间中以 DaemonSet 形式运行此进程。

    用代码样式书写 Kubernetes 命令工具和组件名

    可以不可以
    kubelet 维持节点稳定性。kubelet 负责维护节点稳定性。
    kubectl 处理 API 服务器的定位和身份认证。kubectl 处理 API 服务器的定位和身份认证。
    使用该证书运行进程 kube-apiserver —client-ca-file=FILENAME.使用证书运行进程 kube-apiserver —client-ca-file=FILENAME.

    用工具或组件名称开始一句话

    尽量使用通用描述而不是组件名称

    可以不可以
    Kubernetes API 服务器提供 OpenAPI 规范。apiserver 提供 OpenAPI 规范
    聚合 APIs 是下级 API 服务器。聚合 APIs 是下级 APIServers。

    使用普通样式表达字符串和整数字段值

    对于字符串或整数,使用正常样式,不要带引号。

    可以不可以
    imagePullPolicy 设置为 Always。imagePullPolicy 设置为 “Always”。
    image 设置为 nginx:1.16.image 设置为 nginx:1.16
    replicas 字段值设置为 2.将 字段值设置为 2.
    可以不可以
    kubectl get pods$ kubectl get pods

    将命令和输出分开

    例如:

    验证 Pod 已经在你所选的节点上运行:

    1. kubectl get pods --output=wide

    输出类似于:

    1. NAME READY STATUS RESTARTS AGE IP NODE
    2. nginx 1/1 Running 0 13s 10.200.0.4 worker0

    为 Kubernetes 示例给出版本

    代码示例或者配置示例如果包含版本信息,应该与对应的文字描述一致。

    如果所给的信息是特定于具体版本的,需要在 任务模版 或 的 prerequisites 小节定义 Kubernetes 版本。 页面保存之后,prerequisites 小节会显示为 开始之前

    如果要为任务或教程页面指定 Kubernetes 版本,可以在文件的前言部分包含 min-kubernetes-server-version 信息。

    如果示例 YAML 是一个独立文件,找到并审查包含该文件的主题页面。 确认使用该独立 YAML 文件的主题都定义了合适的版本信息。 如果独立的 YAML 文件没有在任何主题中引用,可以考虑删除该文件, 而不是继续更新它。

    例如,如果你在编写一个教程,与 Kubernetes 1.8 版本相关。那么你的 Markdown 文件的文件头应该开始起来像这样:

    1. ---
    2. title: <教程标题>
    3. min-kubernetes-server-version: v1.8
    4. ---

    在代码和配置示例中,不要包含其他版本的注释信息。 尤其要小心不要在示例中包含不正确的注释信息,例如:

    Kubernetes.io 术语列表

    以下特定于 Kubernetes 的术语和词汇在使用时要保持一致性。

    术语用法
    KubernetesKubernetes 的首字母要保持大写。
    DockerDocker 的首字母要保持大写。
    SIG DocsSIG Docs 是正确拼写形式,不要用 SIG-DOCS 或其他变体。
    On-premisesOn-premises 或 On-prem 而不是 On-premise 或其他变体。

    短代码(Shortcodes)

    Hugo 短代码(Shortcodes) 有助于创建比较漂亮的展示效果。我们的文档支持三个不同的这类短代码。 注意 {{< note >}}小心 {{< caution >}}警告 {{< warning >}}

    1. 将要突出显示的文字用短代码的开始和结束形式包围。

      1. {{< note >}}
      2. 不需要前缀;短代码会自动添加前缀(注意:、小心:等)
      3. {{< /note >}}

    输出的样子是:

    说明: 你所选择的标记决定了文字的前缀。

    注释(Note)

    使用短代码 {{< note >}} 来突出显示某种提示或者有助于读者的信息。

    例如:

    1. {{< note >}}
    2. 在这类短代码中仍然 _可以_ 使用 Markdown 语法。
    3. {{< /note >}}

    输出为:

    你可以在列表中使用 {{< note >}}

    1. 1. 在列表中使用 note 短代码
    2. {{< note >}}
    3. 参见[常见短代码问题](#common-shortcode-issues)。
    4. {{< /note >}}
    5. 1. 列表中第三个条目
    6. 1. 列表中第四个条目

    其输出为:

    1. 在列表中使用 note 短代码

    2. 带嵌套 note 的第二个条目

      说明: 警告、小心和注意短代码可以嵌套在列表中,但是要缩进四个空格。 参见。

    3. 列表中第三个条目

    4. 列表中第四个条目

    小心(Caution)

    使用 {{< caution >}} 短代码来引起读者对某段信息的重视,以避免遇到问题。

    例如:

    其输出为:

    注意: 此短代码样式仅对标记之上的一行起作用。

    警告(Warning)

    使用 {{< warning >}} 来表明危险或者必须要重视的一则信息。

    例如:

    1. {{< warning >}}
    2. 注意事项
    3. {{< /warning >}}

    其输出为:

    Katacoda 嵌套现场环境

    此按钮允许用户使用 Katacoda 终端 在其浏览器中运行 Minikube。该环境降低了用户对 Minikube 的入门难度, 只需要一次鼠标点击即可完成,而不需要完全经历 Minikube 和 kubectl 的安装过程。

    嵌套现场环境配置为运行 minikube start,允许用户在文档所在的窗口完成教程。

    注意: 会话限制为 15 分钟。

    例如:

    1. {{< kat-button >}}

    其输出为:

    编号列表

    短代码会打乱编号列表的编号,除非你在信息和标志之前都缩进四个空格。

    1. 1. 预热到 350˚F
    2. 1. 准备好面糊,倒入烘烤盘
    3. {{< note >}}给盘子抹上油可以达到最佳效果。{{< /note >}}
    4. 1. 烘烤 20 25 分钟,或者直到满意为止。

    其输出结果为:

    1. 预热到 350˚F
    2. 准备好面糊,倒入烘烤盘

      说明: 给盘子抹上油可以达到最佳效果。

    3. 烘烤 20 到 25 分钟,或者直到满意为止。

    Include 语句

    如果短代码出现在 include 语境中,会导致网站无法构建。 你必须将他们插入到上级文档中,分别将开始标记和结束标记插入到 include 语句之前和之后。 例如:

    Markdown 元素

    换行

    使用单一换行符来隔离块级内容,例如标题、列表、图片、代码块以及其他元素。 这里的例外是二级标题,必须有两个换行符。 二级标题紧随一级标题(或标题),中间没有段落或文字。

    两行的留白有助于在代码编辑器中查看整个内容的结构组织。

    标题

    访问文档的读者可能会使用屏幕抓取程序或者其他辅助技术。 是一种线性输出设备, 它们每次输出页面上的一个条目。 如果页面上内容过多,你可以使用标题来为页面组织结构。 页面的良好结构对所有读者都有帮助,使得他们更容易浏览或者过滤感兴趣的内容。

    可以不可以
    更新页面或博客在前言部分中的标题使用一级标题。因为 Hugo 会自动将页面前言部分的标题转化为一级标题。
    使用编号的标题以便内容组织有一个更有意义的结构。使用四级到六级标题,除非非常有必要这样。如果你要编写的内容有非常多细节,可以尝试拆分成多个不同页面。
    在非博客内容页面中使用井号(#使用下划线 —-=== 来标记一级标题。
    使用正常大小写来标示标题。例如:Extend kubectl with plugins使用首字母大写来标示标题。例如:Extend Kubectl With Plugins

    段落

    可以不可以
    尝试不要让段落超出 6 句话。用空格来缩进第一段。例如,⋅⋅⋅段落前面的三个空格会将其缩进。
    使用三个连字符(—-)来创建水平线。使用水平线来分隔段落内容。例如,在故事中切换场景或者在上下文中切换主题。使用水平线来装饰页面。
    可以不可以
    插入超级链接时给出它们所链接到的目标内容的上下文。例如:你的机器上某些端口处于开放状态。参见检查所需端口了解更详细信息。使用有二义性的术语,如“点击这里”。例如:你的机器上某些端口处于打开状态。参见了解详细信息。
    编写 Markdown 风格的链接:链接文本。例如:,输出是Hugo 短代码.编写 HTML 风格的超级链接:<a href=”/media/examples/link-element-example.css” target=”_blank”>访问我们的教程!</a>,或者创建会打开新 Tab 页或新窗口的链接。例如:{target=”_blank”}

    列表

    将一组相互关联的内容组织到一个列表中,以便表达这些条目彼此之间有先后顺序或者某种相互关联关系。 当屏幕抓取器遇到列表时,无论该列表是否有序,它会告知用户存在一组枚举的条目。 用户可以使用箭头键来上下移动,浏览列表中条目。 网站导航链接也可以标记成列表条目,因为说到底他们也是一组相互关联的链接而已。

    • 如果列表中一个或者多个条目是完整的句子,则在每个条目末尾添加句号。 出于一致性考虑,一般要么所有条目要么没有条目是完整句子。

    • 在编号列表中,使用数字一(1.

    • 对非排序列表,使用加号(+)、星号()、或者减号(-

    • 在每个列表之后留一个空行

    • 对于嵌套的列表,相对缩进四个空格(例如,⋅⋅⋅⋅)。

    • 列表条目可能包含多个段落。每个后续段落都要缩进或者四个空格或者一个制表符。

    表格

    数据表格的语义用途是呈现表格化的数据。 用户可以快速浏览表格,但屏幕抓取器需要逐行地处理数据。 表格标题可以用来给数据表提供一个描述性的标题。 辅助技术使用 HTML 表格标题元素来在页面结构中辨识表格内容。

    内容最佳实践

    本节包含一些建议的最佳实践,用来开发清晰、明确一致的文档内容。

    使用现在时态

    例外:如果需要使用过去时或将来时来表达正确含义时,是可以使用的。

    使用主动语态

    可以不可以
    你可以使用浏览器来浏览 API。API 可以被使用浏览器来浏览。
    YAML 文件给出副本个数。副本个数是在 YAML 文件中给出的。

    例外:如果主动语态会导致句子很难构造时,可以使用被动语态。

    使用简单直接的语言

    使用简单直接的语言。避免不必要的短语,例如说“请”。

    可以不可以
    要创建 ReplicaSet,…如果你想要创建 ReplicaSet,…
    参看配置文件。请自行查看配置文件。
    查看 Pods。使用下面的命令,我们将会看到 Pods。

    将读者称为“你”

    可以不可以
    你可以通过 … 创建一个 Deployment。通过…我们将创建一个 Deployment。
    在前面的输出中,你可以看到…在前面的输出中,我们可以看到…

    避免拉丁短语

    尽可能使用英语而不是拉丁语缩写。

    可以不可以
    例如,…e.g., …
    也就是说,…i.e., …

    例外:使用 etc. 表示等等。

    避免使用“我们”

    在句子中使用“我们”会让人感到困惑,因为读者可能不知道这里的 “我们”指的是谁。

    可以不可以
    版本 1.4 包含了 …在 1.4 版本中,我们添加了 …
    Kubernetes 为 … 提供了一项新功能。我们提供了一项新功能…
    本页面教你如何使用 Pods。在本页中,我们将会学到如何使用 Pods。

    避免使用俚语或行话

    对某些读者而言,英语是其外语。 避免使用一些俚语或行话有助于他们更方便的理解内容。

    可以不可以
    Internally, …Under the hood, …
    Create a new cluster.Turn up a new cluster.

    避免关于将来的陈述

    要避免对将来作出承诺或暗示。如果你需要讨论的是 Alpha 功能特性,可以将相关文字 放在一个单独的标题下,标示为 alpha 版本信息。

    避免使用很快就会过时的表达

    避免使用一些很快就会过时的陈述,例如“目前”、“新的”。 今天而言是新的功能,过了几个月之后就不再是新的了。

    可以不可以
    在版本 1.4 中,…在当前版本中,…
    联邦功能特性提供 …新的联邦功能特性提供 …

    接下来