提交文章到 Kubernetes 博客
Kubernetes 有两个官方博客,CNCF 也有自己的博客,您可以在其中介绍 Kubernetes。对于主要的 Kubernetes 博客,我们 (Kubernetes 项目) 喜欢发表具有不同观点和特殊侧重、且与 Kubernetes 相关的文章。
除少数特殊情况外,我们仅发表尚未在其他地方提交或发表的内容。
为 Kubernetes 博客撰写文章
作为作者,您有三种不同的发表途径。
推荐途径
Kubernetes 项目推荐的方法是:联系博客团队来推荐您的文章。您可以通过 Kubernetes Slack (#sig-docs-blog) 进行。对于只想发表到贡献者博客的文章,您也可以直接向 SIG ContribEx comms 推荐。
除非您的投稿有问题,否则博客团队 / SIG ContribEx 会为您安排
- 一位博客编辑
- 您的写作伙伴(另一位博客作者)
当团队为您安排另一位作者时,其目的是让您通过审阅对方的文章草稿来互相支持。您无需是主题专家;大多数阅读文章的人也不是专家。我们 Kubernetes 博客团队将另一位作者称为写作伙伴。
编辑会帮助您完成从草稿到发表的整个过程。他们要么可以直接批准您的文章发表,要么可以安排批准。
阅读 撰写博客文章 以了解更多关于流程的信息。
从拉取请求 (PR) 开始
第二种为我们的博客撰写文章的途径是直接在 GitHub 中开始一个拉取请求。博客团队实际上不推荐这样做;GitHub 对于协作代码非常有用,但对于散文文本来说并非理想选择。
完全可以只通过一个空提交打开一个占位的拉取请求,然后在其他地方进行工作,然后再回到您的占位 PR。
与推荐途径类似,我们将尝试为您安排一位写作伙伴和一位博客编辑。他们会帮助您准备好文章以供发表。
版本发布后博客文章流程
第三种途径是针对与 Kubernetes 版本发布相关的变更的博客文章。每次发布新版本时,发布沟通团队 (Release Comms) 会接管博客发表计划。为发布版本添加功能或计划进行项目需要公告的其他变更的人员,可以与发布沟通团队协调,以规划、起草、编辑并最终发表他们的文章。
文章排期
对于 Kubernetes 博客,博客团队通常会将博客文章安排在工作日(以美国和其他国家/地区使用的公历为准)发表。当需要在特定日期发表(该日期恰逢周末)时,博客团队会尽量予以安排。
撰写博客文章一节解释了如何做
- 最初,不要指定文章的日期
- 但是,请将文章设置为草稿(在 front matter 中放入
draft: true
)
当 Prow bot 合并您提交的 PR 时,它将是一个草稿,不会设置为发表。然后,一位 Kubernetes 贡献者(可以是您、您的写作伙伴或来自博客团队的人)会打开一个小的后续 PR,将其标记为可以发表。合并第二个 PR 会发布之前处于草稿状态的文章,使其可以自动发表。
在文章预定发表的当天,自动化会触发网站构建,您的文章将变为可见。
撰写文章
推荐您在推荐后使用 HackMD(一个网页版 Markdown 编辑器)或 Google Doc,以便分享文章文本的可编辑版本。您的写作伙伴可以阅读您的草稿,然后直接提出建议或提供其他反馈。如果您的草稿与博客指南不符,他们也应该让您知道。
同时,您通常会是**他们**的写作伙伴,可以遵循我们的指南来支持他们的工作。
初步管理步骤
如果您尚未签署 CLA,应先签署 CLA。最好尽早开始这项工作;如果您是作为工作的一部分撰写文章,您可能需要咨询工作场所的法律团队或您的经理,以确保您被允许签署。
初步起草
博客团队推荐您使用 HackMD(一个网页版 Markdown 编辑器)或 Google Doc,以便准备和分享文章文本的初始可实时编辑版本。
注意
如果您选择使用 Google Docs,可以将文档设置为 Markdown 模式。您的写作伙伴可以为您的草稿文本提供评论和/或反馈,并将(或应该)检查它是否符合指南。同时,您将是他们的写作伙伴,可以遵循指南,该指南解释了您将如何支持他们的工作。
不过,在这个阶段,不必过于担心 Markdown 格式是否完全正确。
如果您有图片,可以粘贴位图副本以获取早期反馈。博客团队可以在流程后期帮助您准备插图以供最终发表。
用于发表的 Markdown
查看 GitHub 中网站仓库中现有博客文章的 Markdown 格式。
如果您还不熟悉,请阅读贡献基础知识。本节假设您没有本地克隆的 Fork,并且您正在使用 GitHub 网页 UI 进行工作。如果您还没有这样做,则需要创建一个远程 Fork 网站仓库。
在 GitHub 仓库中,单击**创建新文件**按钮。从 HackMD 或 Google Docs 复制现有内容,然后粘贴到编辑器中。本节后面会详细说明该文件中应包含的内容。文件命名应与建议的博客文章标题匹配,但不要在文件名中包含日期。博客审阅者将与您一起确定最终文件名和文章发表日期。保存文件时,GitHub 会引导您完成拉取请求流程。
保存文件时,GitHub 会引导您完成拉取请求流程。
您的写作伙伴可以审阅您的投稿,并与您一起处理反馈和最终细节。博客编辑将批准您的拉取请求合并,作为尚未排期的草稿。
Front matter
您撰写的 Markdown 文件应使用 YAML 格式的 Hugo front matter。
示例如下
---
layout: blog
title: "Your Title Here"
draft: true # will be changed to date: YYYY-MM-DD before publication
slug: lowercase-text-for-link-goes-here-no-spaces # optional
author: >
Author-1 (Affiliation),
Author-2 (Affiliation),
Author-3 (Affiliation)
---
- 最初,不要指定文章的日期
- 但是,请将文章设置为草稿(在文章的 front matter 中放入
draft: true
)
文章内容
确保使用二级 Markdown 标题(##
,而不是 #
)作为文章中的顶级标题。您在 front matter 中设置的 title
会成为该页面的一级标题。
您应该遵循风格指南,但有以下例外情况
- 我们允许作者以自己的写作风格撰写文章,只要大多数读者能理解其观点即可。
- 在多位作者共同撰写的博客文章中,或者文章引言清晰表明作者代表特定团体撰写时,可以使用“我们”。正如您从本节中注意到的那样,虽然我们在文档中避免使用“我们”,但可以做出合理的例外。
- 我们避免为提示(例如
{{< caution >}}
)使用 Kubernetes 短代码(shortcode)。这是因为提示是面向文档读者的,而博客文章不是文档。 - 关于未来的陈述是可以的,但我们在代表 Kubernetes 发表官方公告时会谨慎使用。
- 博客文章中使用的代码示例不需要使用
{{< code_sample >}}
短代码,并且通常不使用更好(更容易维护)。
图示和插图
对于插图、图表或流程图,在可行的情况下可以使用figure 短代码。您应该设置 alt
属性以提高可访问性。
对于插图和技术图示,请尽量使用矢量图。博客团队推荐 SVG 格式而非栅格(位图/像素)图示格式,也推荐 SVG 而非 Mermaid(您仍然可以在注释中捕获 Mermaid 源代码)。之所以偏好 SVG 而非 Mermaid,是因为当维护者升级 Mermaid 或更改图示渲染时,他们可能无法轻松联系原博客文章作者以确认更改是否可行。
图示指南是针对 Kubernetes 文档而非博客文章的。与其保持一致仍然很好,但
- 不需要将图示标注为图 1、图 2 等。
对可缩放(矢量)图片的要求使得不熟悉的人提交文章的过程更加困难;Kubernetes SIG Docs 仍在寻找降低这一门槛的方法。如果您对如何降低门槛有想法,请自愿提供帮助。
对于其他图片(如照片),博客团队强烈建议使用 alt
属性。如果辅助功能软件完全不应提及该图片,则可以使用空的 alt
属性,但这是一种罕见的情况。
Commit 消息
在您将拉取请求标记为准备好审阅时,每个 commit 消息都应该是正在进行的工作的简短摘要。第一个 commit 消息应能作为博客文章的总体描述。
良好 commit 消息的示例
- 添加关于 Kubernetes foo 功能的博客文章
- blog: foobar 公告
不良 commit 消息的示例
- 关于 foo 公告的占位 commit
- 添加博客文章
- asdf
- 初始 commit
- 草稿文章
合并 (Squashing)
一旦您认为文章已准备好合并,您应该合并您的拉取请求中的 commit;如果您不确定如何操作,可以向博客团队寻求帮助。