跳转到内容

写作规范

本规范分为两大部分:排版格式(如何写)和内容策略(写什么)。前者确保视觉一致,后者确保知识质量。

本规范参考了 OI Wiki 格式手册中文技术文档写作风格指南以及中文文案排版指北


中英文混排时正确使用空格是中文技术文档可读性的基础。

推荐:使用 BWA 进行比对时,需要先构建索引。

不推荐:使用BWA进行比对时,需要先构建索引。

1.2 中文与数字之间需要增加空格

Section titled “1.2 中文与数字之间需要增加空格”

推荐:Illumina 短读长通常为 150 bp。

不推荐:Illumina 短读长通常为150 bp。

1.3 数字与单位之间需要增加空格

Section titled “1.3 数字与单位之间需要增加空格”

推荐:人类基因组大小约为 3.2 Gb。

不推荐:人类基因组大小约为 3.2 Gb。

例外:度数、百分号等与数字之间不加空格,如 90%45°

1.4 全角标点与其他字符之间不加空格

Section titled “1.4 全角标点与其他字符之间不加空格”

推荐:BWA 使用 BWT 算法,速度很快。

不推荐:BWA 使用 BWT 算法 ,速度很快 。

推荐:运行 samtools sort 命令后,输出为排序后的 BAM 文件。

不推荐:运行samtools sort命令后,输出为排序后的BAM文件。

正文使用全角中文标点(,。;:?!""”()),不要使用半角标点。

推荐:动态规划的核心思想是:将大问题分解为子问题,逐步求解。

不推荐:动态规划的核心思想是:将大问题分解为子问题,逐步求解.

如果一段文字完全是英文(如引用原文、公式说明),使用半角标点并在后面加空格。

  • 中文语境使用直角引号「」和『』,或使用中文双引号""和单引号”。
  • 不要使用英文引号 "..." 表示中文引用。
  • 列表项是完整句子时,使用句号结尾。
  • 列表项是短语或片段时,统一不加句号,或统一加分号并在末项加句号。
  • 同一层级的列表项应保持标点风格一致。

关键术语首次出现时使用”中文(English, 缩写)“格式:

隐马尔可夫模型(Hidden Markov Model, HMM)是一种常见的概率图模型。

后续出现可以直接使用中文名或缩写。

以下名词不需要翻译,直接使用英文:

  • 软件与工具名:BWA、GATK、samtools、BLAST
  • 文件格式:FASTQ、BAM、VCF、BED、GFF
  • 数据库:NCBI、Ensembl、UniProt、UCSC
  • 经典算法专名:Needleman-Wunsch、Smith-Waterman、Viterbi
  • 广泛使用的缩写:DNA、RNA、NGS、WGS、SNP、Indel

同一个术语在一篇文章中只使用一种翻译。如果有多种常见译法,在首次出现时说明,之后统一使用主译法。

推荐:覆盖度(coverage,也称测序深度)描述了……后文统一使用”覆盖度”。

不推荐:前半段用”覆盖度”,后半段又改称”测序深度”,读者无法确认是否是同一概念。

  • 只使用二级(##)、三级(###)和四级(####)标题。一级标题由 frontmatter 的 title 自动生成。
  • 标题不要使用标点符号结尾。
  • 标题中不要写 LaTeX 公式。
  • # 后面加一个空格再写标题文字。
  • 标题前后各保留一个空行。

推荐

## 动态规划矩阵
### 递推公式

不推荐

##动态规划矩阵。
###递推公式
  • 列表前后各保留一个空行。
  • 有序列表的序号后面加一个空格:1. 内容
  • 无序列表使用 - 而非 *
  • 列表嵌套时缩进 2 或 4 个空格,保持全文一致。
  • 代码块使用三个反引号,并标注语言类型。
  • 行内代码用单个反引号包裹,前后加空格。
  • 代码块前后各保留一个空行。

推荐

```bash
samtools sort input.bam -o sorted.bam
```

不推荐

```
samtools sort input.bam -o sorted.bam
```
  • 行间公式使用独立的 $$ 块,前后各保留一个空行。
  • 行内公式使用 $...$,不要用行间格式写行内公式。
  • 公式后必须紧跟自然语言解释,不要只给符号不给含义。

推荐

递推关系为:
$$
F(i,j) = \max\{F(i-1,j-1) + s(x_i, y_j),\; F(i-1,j) + g,\; F(i,j-1) + g\}
$$
其中 $s(x_i, y_j)$ 是替换得分,$g$ 是 gap 罚分。
  • 使用 <figure> + <figcaption> 标签,提供清晰的描述。
  • 始终包含有意义的 alt 文本。
  • 图片文件放在 public/img/illustrations/(示意图)或 public/img/figures/(成品图)。
  • 文件名使用小写英文和连字符,如 sequencing-by-synthesis.svg
  • 表格适合用于比较不同策略、算法、格式等结构化信息。
  • 表头简洁明确,每列有明确的比较维度。
  • 如果一个对比会在多篇页面重复出现,优先使用可复用组件。
  • 站内链接使用相对路径。
  • 链接文字应该是有描述性的名词,不要使用”点击这里”。
  • 外链优先指向论文主页、官方文档或可信数据库。

推荐:详见编辑距离页面。

不推荐:点击这里查看编辑距离。

  • 文件名使用小写英文,以连字符 - 分隔单词,如 needleman-wunsch.mdx
  • 普通知识页优先使用 .md 格式。
  • 需要导入组件(如 SummaryBoxPrerequisitesBox)时使用 .mdx
  • 每个文件必须包含 frontmatter,至少有 titledescription
---
title: "Needleman-Wunsch 算法"
description: Needleman-Wunsch 算法的动态规划递推公式、回溯与完整实例。
---

每篇文章都应从”要解决什么问题”开始,而非从”某个工具怎么用”开始。让读者先理解动机,再进入方法。

不要只给定义,要解释概念之间的联系。读者需要知道的是:这个方法和上游数据、下游流程如何连接。

无论哪种类型的页面,都应包含以下要素:

要素说明
问题定义这篇文章在解决什么问题
动机为什么这个问题值得讲
核心内容模型、算法、概念或流程的核心解释
实例或图示至少一个 worked example、流程图或对比表
局限与前提方法成立的条件、常见误区
交叉链接前置知识、后续阅读、相关页面

写新页面前,先判断它主要属于哪一层:

层级内容示例
对象层生物学基础对象与数据表示reads、参考基因组、注释、文件格式
模型层抽象计算模型字符串、动态规划、图、概率模型
算法层核心算法方法比对、组装、索引、基因预测
流程层实际分析工作流DNA-seq、RNA-seq、宏基因组
资源层数据资源与工具映射数据库、版本选择、工具原理

如果一篇页面跨多层,主页面聚焦一层,其他层通过”相关页面”桥接。

根据内容性质,页面分为四种类型。以下是各类型的核心章节(必选)和可选章节

适合基础对象、数据库资源、数据格式、术语说明。

  • 核心章节:是什么 → 为什么重要 → 核心概念 → 相关页面
  • 可选章节:应用场景、常见误区、参考资料

适合编辑距离、比对、索引结构、HMM 等核心方法。

  • 核心章节:是什么 → 要解决什么问题 → 数学模型 → worked example → 相关页面
  • 可选章节:输入与输出、复杂度与适用前提、与真实工具的连接、常见误区、参考资料

适合 RNA-seq、variant calling、宏基因组等分析流程。

  • 核心章节:任务目标 → 步骤总览 → 每步说明 → 相关页面
  • 可选章节:输入输出、前置知识、常见错误、worked example、后续阅读

适合一个大板块的入口导航。

  • 核心章节:本板块概述 → 子主题导航 → 与其他板块的连接
  • 可选章节:学习前置、推荐阅读顺序

普通页面优先使用 .md。满足以下条件时使用 .mdx

  • 需要 SummaryBox(页面摘要)
  • 需要 PrerequisitesBox(前置知识)
  • 需要 ComparisonTable(结构化对比)
  • 需要 PitfallsBox(常见误区)
  • 需要 RelatedLinks(相关页面卡片)

新增 MDX 页面时,优先复用 src/components/docs/ 中已有组件。不要为单个页面发明一次性的样式方案。

  • 命令必须能直接运行,或明确标注需要替换的部分(如 <your-file.fastq>)。
  • 示例输入输出尽量简短,突出要点。
  • 对算法页:伪代码和矩阵示意通常比完整实现更重要。
  • 对流程页:命令只是辅助,重点是解释为什么要做这一步。
  • 代码块必须标注语言类型。
  • 引用教材和论文时写明完整信息:作者、年份、书名/论文名、出版社/期刊。
  • 外链优先指向论文原文、官方文档或可信数据库(NCBI、Ensembl 等)。
  • 每个核心页面末尾应有”相关页面”章节,建立站内知识网络。
  • 板块入口页应主动链接所有子页面,而不只是依赖 sidebar。

场景推荐写法不推荐写法
中英文之间使用 BWA 进行比对使用BWA进行比对
中文与数字之间通常为 150 bp通常为150 bp
术语首次出现覆盖度(Coverage)覆盖度(Coverage)
标题格式## 动态规划矩阵##动态规划矩阵。
代码块```bash```
站内链接详见[编辑距离](../alignment/edit-distance)点击[这里](...)查看
标点符号分解为子问题,逐步求解。分解为子问题,逐步求解.
文件名needleman-wunsch.mdxNeedlemanWunsch.mdx

发布前快速过一遍:

  • frontmatter 包含 titledescription
  • 文章从”为什么”开始,而非从”怎么做”开始
  • 关键术语首次出现附英文
  • 中英文之间有空格
  • 代码块标注了语言
  • 图片有 alt 文本
  • 包含”相关页面”章节
  • npm run check 通过