无需登录 数据私有 本地保存

术语解释

以下列出了与 Markdown 转 reStructuredText 工具相关的专业术语及其详细解释,帮助您更好地理解标记语言生态和文档格式转换的技术背景。

Markdown

Markdown 是由 John Gruber 于 2004 年创建的轻量级标记语言。它的设计哲学是让人们能够使用易读易写的纯文本格式编写文档,然后转换为有效的 HTML 或其他格式。Markdown 语法极为简洁直观,使用 # 标记标题、** 标记粗体、* 标记斜体、` 标记行内代码。由于其简洁性,Markdown 迅速成为 GitHub、Stack Overflow 等技术平台的首选文档格式。Markdown 的常见变体包括 GitHub Flavored Markdown(GFM)、CommonMark 和 MultiMarkdown 等。

reStructuredText(rST)

reStructuredText 是 Python 社区广泛使用的轻量级标记语言,由 David Goodger 创建并由 Docutils 项目维护和定义。与 Markdown 追求简洁不同,rST 追求功能的完整性和可扩展性。rST 支持指令(directives)和角色(roles)系统,可以定义复杂的内容块如代码高亮、表格、admonition 提示框等。rST 是 Sphinx 文档生成器的默认源格式,被广泛用于 Python 官方文档、NumPy、Django 等知名项目的文档编写。

Sphinx

Sphinx 是一个基于 Docutils 的文档生成工具,由 Georg Brandl 于 2008 年创建,最初用于生成 Python 文档。Sphinx 以 reStructuredText 作为默认标记语言,通过扩展指令集提供了强大的文档构建功能,包括自动从代码生成 API 文档(autodoc)、交叉引用(:ref:)、术语表(glossary)、索引生成等。Sphinx 支持输出 HTML、PDF、ePub 等多种格式,是目前技术文档领域最流行的构建工具之一。

Docutils

Docutils 是一个用于处理纯文本文档的 Python 工具集,由 David Goodger 开发。它实现了 reStructuredText 的解析器和转换器,是 Sphinx 的底层依赖。Docutils 可以将 rST 格式的文档转换为 HTML、LaTeX、man page、XML 等多种输出格式。Docutils 提供了 rst2html、rst2latex 等命令行工具,是 rST 生态系统的核心基础设施。

Read the Docs

Read the Docs 是一个免费的文档托管平台,专为开源项目提供文档托管服务。它通过 Webhook 自动从代码仓库拉取文档源文件,并使用 Sphinx 将其构建为可浏览的网页。Read the Docs 默认支持 rST 格式,同时也支持 Markdown(通过 MyST 扩展)。该平台为众多知名开源项目提供文档托管服务,是技术文档发布的重要渠道。

指令(Directives)

指令是 reStructuredText 的核心扩展机制,以双冒号加名称的形式(如 .. code-block::)定义特殊的内容块。指令可以接受参数、选项和内容体,用于生成代码高亮块、警告提示框、图片嵌入、表格等复杂内容元素。Sphinx 在 Docutils 基础上扩展了大量指令,如 .. toctree::(目录树)、.. automodule::(自动API文档)等,使 rST 成为功能极其强大的技术文档标记语言。

角色(Roles)

角色是 reStructuredText 中用于行内标记的扩展语法,以冒号加名称的形式(如 :code:`变量名`)为行内文本添加特定的语义标记。角色通常与指令配合使用,用于创建交叉引用、术语链接、代码标记等。Sphinx 定义了丰富的角色,包括 :ref:(交叉引用)、:doc:(文档链接)、:func:(函数引用)等,这些角色使得 rST 文档具有强大的内部链接和自动引用能力。

标题装饰线(Heading Underlines)

reStructuredText 使用装饰字符(如 =、-、~、^、" 等)标注标题层级。标题文本下方(或上下方)需要添加与文本等长的装饰线。不同的装饰字符表示不同的标题层级,通常约定 = 表示一级标题、- 表示二级标题、~ 表示三级标题,以此类推。本工具会自动将 Markdown 的 # 标题映射为对应层级的 rST 装饰线标题。

Markdown Flavored 语法

在标准 Markdown 基础上,各种变体扩展了额外的语法功能。GitHub Flavored Markdown(GFM)是最知名的变体之一,增加了围栏式代码块、表格、任务列表、删除线等功能。CommonMark 则致力于制定 Markdown 的统一标准规范。本工具支持标准 Markdown 和 GFM 中的常见扩展语法,并将其转换为对应的 rST 表达方式。

Markdown 扩展(MyST)

MyST(Markedly Structured Text)是一个在 Markdown 中实现 rST 功能的扩展语法,允许用户在 Markdown 文件中使用 Sphinx 指令和角色。MyST 使得 Markdown 可以直接用于 Sphinx 文档项目,无需将所有内容转换为 rST。对于部分需要 Sphinx 高级功能但偏好 Markdown 语法的团队,MyST 提供了一个折中方案。本工具主要用于将标准 Markdown 转换为原生 rST 格式。

Pandoc

Pandoc 是一个由 John MacFarlane 开发的通用文档格式转换工具,被称为文档转换领域的瑞士军刀。Pandoc 支持在数十种标记语言和文档格式之间相互转换,包括 Markdown、reStructuredText、HTML、LaTeX、DOCX 等。在批量转换 Markdown 到 rST 的场景中,Pandoc 是最强大的命令行工具选择:使用 pandoc input.md -o output.rst 即可完成转换。本在线工具则更适合快速单篇转换和语法对照学习。

内联链接(Inline Links)

内联链接是一种将链接文本和链接地址直接写在一起的链接格式。在 Markdown 中写作 [链接文本](URL),在 reStructuredText 中写作反引号包裹的尖括号格式(注意 rST 使用反引号和尖括号包裹 URL,并在末尾添加下划线)。本工具会自动将 Markdown 的方括号圆括号链接格式转换为 rST 的反引号内联链接格式。

代码块(Code Block)

代码块是用于展示程序代码的格式化文本区域。Markdown 使用三个反引号围栏定义代码块,可以在反引号后指定编程语言。reStructuredText 使用 .. code-block:: 指令定义代码块,语言名称作为指令的参数。本工具会自动识别 Markdown 代码块的编程语言标识,并在 rST 的 .. code-block:: 指令中正确传递语言参数。