【ReST】2. ReST 行内文本语法详解及与 Markdown 的区别
ReST 行内文本常用语法
1 行内文本的一般语法
基本文本格式
**强调** (加粗效果)
*斜体* (斜体效果)
``monospace`` (等宽字体,会变色,用于代码或特殊文本)
2 内联标记 (Inline Markup)
语法对比表格
语法 | 效果 | 说明 | Markdown 对比 |
---|---|---|---|
*emphasis* | emphasis | 强调,斜体 | *斜体* 或 _斜体_ |
**strong** | strong | 加粗 | **粗体** 或 __粗体__ |
`interpreted-text` | interpreted-text | 解释文本,使用两个反引号 | Markdown 无直接对应 |
inline literal | inline literal | 等宽字体,包含空格时使用 | `代码` |
ref_ + .. _ref: 链接 | ref | 纯文本外部链接 | [链接文本](url) |
`phrase ref`_ | 带空格 外链 | 带空格标点的外部链接 | [链接文本](url) |
anonymous__ | anonymous | 匿名链接 | Markdown 无直接对应 |
_ inline_link`` | inline_link | 交叉引用链接 | [链接](#锚点) |
|substitution ref| | 替换引用(图片、链接等) |  | |
footnote [1]_ | footnote [1] | 脚注和参考文献 | [^1] |
citation [CIT2002]_ | citation [CIT2002] | 文献引用 | Markdown 需要扩展 |
http://docutils.sf.net/ | http://docutils.sf.net/ | 自动识别独立链接 | 自动识别相同 |
详细说明及区别
1. 基本格式标记
ReST:
*斜体* **粗体** ``等宽字体``
Markdown:
*斜体* **粗体** `等宽字体`
区别: ReST 使用统一的星号语法,Markdown 还支持下滑线变体。
2. 链接语法差异
ReST 链接 (更复杂但功能强大):
外部链接: `链接文本 <http://example.com>`_
内部引用: 详见 :ref:`章节名称`
Markdown 链接 (更简洁):
[链接文本](http://example.com)
[内部链接](#章节标题)
3. 脚注系统
ReST 脚注:
这是一个脚注[1]_ 和引用[CIT2002]_。.. [1] 脚注内容
.. [CIT2002] 引用文献详情
Markdown 脚注:
这是一个脚注[^1]。
[^1]: 脚注内容
3.2.3 反斜杠转义 (Escaping with Backslashes)
转义规则
- 使用反斜杠转义任意 ReST 语法符号
- 包括转义反斜杠本身
转义示例
转义斜体标记: \*这不是斜体*
转义反斜杠: \\
Python 中的字符串处理
由于反斜杠在 Python 字符串中有特殊含义,推荐使用原始字符串:
推荐方式 (使用原始字符串):
content = r"""*这不是斜体* "文本" """
# 显示: *这不是斜体* "文本"
传统转义方式:
content = """\*这不是斜体* "\\文本" """
# 显示: *这不是斜体* "\文本"
与 Markdown 转义对比
ReST 转义:
\*转义星号* \\转义反斜杠
Markdown 转义:
\*转义星号* \\转义反斜杠
区别: 转义语法基本相同,但 ReST 在 Python 环境中更需要注意字符串处理。
主要区别总结
1. 语法复杂性
- ReST: 语法更丰富,功能更强大,但学习曲线较陡
- Markdown: 语法简单直观,易于上手
2. 链接处理
- ReST: 支持复杂的交叉引用和替换文本
- Markdown: 链接语法更简洁统一
3. 扩展功能
- ReST: 内置脚注、引用、替换等高级功能
- Markdown: 需要扩展支持高级功能
4. 开发环境集成
- ReST: 与 Python 生态深度集成,适合技术文档
- Markdown: 通用性更强,支持平台广泛
使用建议
- 选择 ReST: 需要复杂交叉引用、技术文档、与 Sphinx 集成
- 选择 Markdown: 简单文档、博客、快速笔记、通用场景