跳过正文
Background Image
  1. Posts/

Markdown 不香了吗?为什么越来越多 Python 项目用 RST?

·1039 字·3 分钟· ·
沈显鹏
作者
沈显鹏
目录

在日常工作中,无论是写 README、写博客,还是写项目文档,我们总要选择一种标记语言来排版内容。

目前主流的有两种:MarkdownreStructuredText(简称 RST)

那它们之间到底有什么区别?又该在什么场景下选哪个呢?

最近我将 gitstats 项目的文档从 Markdown 转换为 RST,并发布到 ReadTheDocs 上,这篇文章就来聊聊我的一些实践体会。

Markdown 是什么?
#

Markdown 是一种轻量级标记语言,最早由 John Gruber 和 Aaron Swartz 在 2004 年设计,目标是让文档尽可能「可读、可写、可转换为结构良好的 HTML」。

优点:

  • 语法简单、容易上手
  • 社区支持广泛(GitHub、GitLab、Hexo、Jekyll 等等都支持)
  • 渲染速度快,格式一致性好

常见用途:

  • README.md
  • 博客文章
  • 简单的项目文档

RST 是什么?
#

RST 是 Python 社区使用较多的一种标记语言,由 Docutils 项目维护。相比 Markdown,语法更丰富,也更严格一些。

优点:

  • 原生支持脚注、交叉引用、自动索引、代码文档化等高级功能
  • 是 Sphinx 的首选格式,适合大型项目的文档编写
  • 对结构化文档更友好

常见用途:

  • Python 项目的文档(如官方文档)
  • 使用 Sphinx 生成的技术手册
  • 多语言文档(结合 gettext)

语法对比小结
#

功能MarkdownRST
标题# 开头=====----- 下划线
粗体 / 斜体**text** / *text***text** / *text*
超链接[text](url)`text <url>`_
表格简单表格(扩展支持)需要严格缩进,写法复杂
脚注 / 引用不支持 / 限制较多原生支持
交叉引用不支持原生支持

Markdown 更轻松,RST 更专业。

什么时候用 Markdown?
#

  • 项目较小,只需写简单说明文档
  • 团队成员不熟悉 RST,想快速写文档
  • 写博客、日常笔记更推荐 Markdown
  • 使用平台(如 GitHub Pages、Hexo)默认支持 Markdown

一句话:轻量文档首选 Markdown

什么时候用 RST?
#

  • 使用 Sphinx 生成 API 文档或技术手册
  • 项目结构复杂,需要自动索引、交叉引用、模块文档等高级功能
  • 需要与 Python 工具链(如 autodoc, napoleon 等)集成
  • 要发布到 ReadTheDocs(虽然现在也支持 Markdown,但 RST 体验更好)

一句话:Python 项目或结构化技术文档推荐 RST

我个人的建议
#

如果你是:

  • 开发工程师,日常文档写 Markdown 足够
  • Python 开发者,建议学一下 RST,特别是用 Sphinx 写文档时
  • 开源项目维护者,项目规模不大,README 用 Markdown 就好;但文档站点可以考虑用 RST + Sphinx 构建

总结一句话
#

Markdown 更像是写字的便利贴,RST 更像是写书的排版系统。

选哪个,其实就看你的目标是写“随笔”还是写“手册”。

如果你对 Markdown、RST 或文档构建工具有自己的心得,欢迎留言交流。

下期我打算分享下 Sphinx 配置和 ReadTheDocs 自动发布的经验~


转载本站文章请注明作者和出处,请勿用于任何商业用途。欢迎关注公众号「DevOps攻城狮」

相关文章

为什么越来越多的企业用户开始放弃 VMware?
·2381 字·5 分钟
Broadcom 收购 VMware 后,许多企业用户开始寻找替代方案。Nutanix 作为一个超融合基础设施(HCI)解决方案,提供了更低的成本和更简洁的管理界面,是一个不错的选择。
一觉醒来,我的 PR 已经被 Merge 到 CPython 主分支了!
·685 字·2 分钟
在 CPython 的 Issue 区找到一个合适的 PR,修改代码、测试、提交 Pull Request,第二天醒来发现已经被 Merge 到主分支了!这是一个很好的学习过程,也是对开源社区的贡献。
为什么我选择参与 EuroPython 2025 评审?
·1153 字·3 分钟
最近工作之余没怎么贡献代码,主要把时间都用在了评审 EuroPython 2025 (欧洲 Python 2025 大会)的提案上了。
🚀 gitstats 升级来袭:支持 JSON 输出、多平台兼容、代码重构!
·557 字·2 分钟
gitstats 经过两个月的持续改进,现已支持 JSON 输出、代码重构、argparse 替换 getopt,并全面兼容 Windows 和 macOS。欢迎使用和 Star 支持!
如何使用 Jenkins Docker Cloud
·603 字·2 分钟
本文介绍如何使用 Jenkins Docker Cloud 来构建和部署应用,包括配置 Docker 主机以及创建自定义 Docker 镜像。
CPython 停止更新 Copyright 了,为什么?
·1928 字·4 分钟
CPython 停止更新 Copyright 的原因和过程。了解 Python 项目法律团队的建议,以及如何处理开源项目中的版权声明。