1
0
wiki/group/organization/技术文档规范/文档结构.md

100 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: 文档结构
title: 文档结构
sidebar_position: 3
data: 2022年3月8日
---
## 标题
标题在技术文档中的地位非常重要,文档工程师要设计合理的标题层级和标题描述,帮助读者理清整篇文档的逻辑,使文章结构一目了然。
### 标题的层级
技术文档中使用标题最多不超过四级。**标题从一级开始递增使用,禁止跳级使用**。例如:一级标题下面不能直接使用三级标题;二级标题下面不能直接使用四级标题。
- 一级标题:即文章标题
- 二级标题:文章正文部分的标题
- 三级标题:二级标题下面一级的小标题
- 四级标题:三级标题下面一级的小标题
下图为在 Markdown 技术文档中使用标题的示例,左侧是编辑文字,右侧是预览效果:
![heading-levels](https://static.7wate.com/img/2022/03/08/ddcfa173863fd.png)
为避免出现过于复杂的章节,若无特殊需要,不建议使用四级标题。如果三级标题下有并列性的内容,建议使用列表 (list) 代替四级标题。如下图中,若内容 A、B、C 的篇幅不长,则右侧的标题样式比左侧的标题样式要好。
![headings-or-lists](https://static.7wate.com/img/2022/03/08/dc2f9abce9d17.png)
### 标题的描述
技术文档中的标题包括但不限于以下几种描述:
- 名词词组,如“…概述”、“…背景”、“…原理”
- 主题词+动词如“A 工具安装”、“A 工具部署”、“A 工具配置”
- 动词+主题词,如“配置 MySQL 数据库”
- 定语+主题词如“A 工具的安装”“A 工具的架构”
- 介词+定语+主题词,如“对机器配置的要求”
标题描述的设计并无严格的模板,只要遵循以下几个原则即可:
- 标题能够概括反映本章节的中心内容
- 标题简洁扼要、涵义明确
- 同级别的标题尽量使用相同的结构
- 标题描述**操作任务**时建议使用“动词+主题词”结构,不建议使用名词词组
### 使用标题的注意事项
技术文档中使用标题主要有以下几个注意事项:
- 下级标题禁止重复上一级标题的内容
- 不建议标题以标点符号(如句号或问号)结尾
- 不建议在标题中解释缩略语
- 标题与标题之间应该有引导介绍性的句子。例如,一级标题和二级标题之间应有引言内容,二级标题和三级标题之间应有正文内容
- 标题要避免孤立编号(即同级标题只有一个),正文不要有孤立的三级标题和四级标题
- 项目列表是最小编号单位,因此项目列表下禁止嵌套任何级别的标题
## 段落
段落是正文部分的基本构成单元之一,由多个句子组成。段落写作要求如下:
- 一个段落只能有一个主题,或一个中心句子。
- 段落的中心句子建议放在段首,对全段内容进行概述。后面陈述的句子为核心句服务。
- 一个段落的长度建议在 50200 字之间,尽量不要超过 250 字。Word 里统计字数)
- 一个段落里避免只有一个句子。如果句子很长,要避免”**一逗到底**”的情况,合理断句。
- 段落之间建议设置合适的间距,提高可读性。
- 段落的句子语气应该使用陈述和肯定语气,避免使用感叹语气。
- 技术文档的段落开头不建议缩进,顶格开始即可。
- 对于技术描述类主题,应考虑先图表,后句子的原则,不要单一地使用段落来陈述主题。
## 句子
句子以句号结尾,句号表示句子意思已完成。句子写作要求如下:
- 句子要避免使用长句。一个句子建议不超过 100 字。
- 句子要使用简单句和并列句,避免使用复合句。
- 善于断句,避免“一逗到底”的现象。
【错误示例】原因是 DM 需要保存同步的 binlog position 信息,但是 MySQL binlog position 官方定义使用 uint32 存储,所以超过 4G 部分的 binlog position 的 offset 值会溢出,就会存储的是一个错误的 binlog position在重启 task 或者 dm-worker 后,需要使用该 binlog position 重新解析 binlog/relay log进而出现上面的错误。
【分析】以上句子为多个分句构成的复合句。“一逗到底”的情况增加了理解整体句群含义的难度。这种情况下,应该在适当的地方进行断句,并添加“这”、“其”等代词,合理切分句与句之间的逻辑。
【修改建议】由于 DM 需要保存同步的 binlog position 信息,且 MySQL binlog position 官方定义使用 uint32 存储,因此超过 4G 部分的 binlog position 的 offset 值会溢出。这会导致存储的是一个错误的 binlog position。在重启 task 或者 dm-worker 后,需要使用该 binlog position 重新解析 binlog/relay log进而出现上面的错误。
## 目录
文档目录可以**通过各级标题自动生成**,帮助用户快速浏览全文结构和定位章节。
对于一本技术手册而言,必须提供总目录(包含所有章节及附录)。如果是安装手册等还需要提供图目录、表目录。
发布在网页端的技术手册,两侧一般都配置有导航栏,包括**全手册导航栏**及**页内导航栏**。这两种导航栏相当于技术手册的**总目录**及**单篇文档目录**。
如下是 PingCAP 技术文档站的目录实现:
![table-of-contents](https://static.7wate.com/img/2022/03/08/9483ae8017108.jpg)
注意:
在实际操作中,文档右侧导航栏能显示哪些[标题层级](https://zh-style-guide.readthedocs.io/zh_CN/latest/标题.html#id2),由使用的文档框架决定。例如 [Docusaurus 框架](https://docusaurus.io/docs/en/navigation),虽然正文中对标题级别没有限制,但在右侧导航栏只支持显示二级标题 (##) 和三级标题 (###),一级标题 (#) 和四级标题 (####) 不会出现在右侧导航栏中。
因此,建议各公司**根据使用的文档框架自定义文档的标题层级**,如果右侧导航栏无法显示一级标题 (#),则可以自定义文档中的一级标题为 ##,二级标题为 ###,以此类推。