reStructuredText语法完全指南

引言

在编程和文档编写领域,reStructuredText(简称reST)是一种轻量级的标记语言,广泛应用于Python社群和其他技术社群。与Markdown相比,reST提供了更多的灵活性和功能,特别是在生成高质量的文档和网站时。本文将深入探讨reStructuredText的各种语法和特性,包括基础语法、高级特性、实用案例,以及额外的学习资源。

基础语法

标题和子标题

在reST中,标题和子标题是通过使用不同的装饰字符来创建的。这些字符可以是等号(=)、减号(-)或其他字符。

markdown 复制代码
==================
一级标题(Section)
==================

------------------
二级标题(Subsection)
------------------

段落和文本格式

在reST中,段落是通过空行来分隔的。如果你想在段落内部进行换行,可以使用两个或更多的空格。

复制代码
这是一个段落。

这是另一个段落,  
这里是同一个段落的第二行。

强调和内联标记

  • 加粗:使用两个星号或下划线将文本包围起来。

    markdown 复制代码
    **加粗文本** 或 __加粗文本__
  • 斜体:使用一个星号或下划线将文本包围起来。

    markdown 复制代码
    *斜体文本* 或 _斜体文本_

列表

reST支持多种类型的列表,包括有序列表和无序列表。

  • 无序列表:使用星号、加号或减号作为列表项的标记。

    markdown 复制代码
    * 项目1
    * 项目2
  • 有序列表:使用数字和句点作为列表项的标记。

    markdown 复制代码
    1. 第一个项目
    2. 第二个项目

引用和注释

  • 引用 :使用.. note::.. warning::等指令来创建引用。

    arduino 复制代码
    .. note:: 这是一个注意事项。
  • 注释 :使用..和一个空格开始,后面跟着注释内容。

    复制代码
    .. 这是一个注释

代码块和语法高亮

reST支持多种编程语言的代码块和语法高亮。

css 复制代码
.. code-block:: python

    def hello_world():
        print("Hello, world!")

这里,python指定了代码块使用的编程语言,以便进行语法高亮。

高级特性

超链接和交叉引用

reST提供了多种创建超链接和交叉引用的方法。

  • 外部链接

    arduino 复制代码
    `链接文本 <http://example.com>`_
  • 内部链接(交叉引用)

    perl 复制代码
    :ref:`my-reference-label`

图片和图表

  • 插入图片

    arduino 复制代码
    .. image:: /path/to/image.jpg
       :alt: 图片描述
  • 创建图表

    rust 复制代码
    .. graphviz::
    
       digraph foo {
         "bar" -> "baz";
       }

表格

reST支持多种类型的表格,包括简单表格和网格表格。

  • 简单表格

    diff 复制代码
    =====  =====  ======
    输入   操作    输出
    =====  =====  ======
    1      倍乘    2
    2      倍乘    4
    =====  =====  ======
  • 网格表格

    css 复制代码
    +------------+------------+-----------+
    | Header 1   | Header 2   | Header 3  |
    +============+============+===========+
    | cell 1     | cell 2     | cell 3    |
    +------------+------------+-----------+

自定义角色和指令

reST允许你创建自定义的角色(inline markup)和指令(block-level markup)。

  • 自定义角色

    ruby 复制代码
    :myrole:`text`
  • 自定义指令

    ruby 复制代码
    .. mydirective:: argument
       :option: value
    
       Directive content.

实用案例

文档生成与Sphinx

Sphinx是一个强大的文档生成工具,它使用reST作为标记语言。通过Sphinx,你可以轻松地生成多种格式的文档,包括HTML、PDF、ePub等。

  • 自动API文档生成

    ruby 复制代码
    .. automodule:: my_module
       :members:
  • 包含外部文件

    arduino 复制代码
    .. include:: external_file.rst

学习资源

  1. 官方文档
  2. Sphinx文档生成器
  3. reST与Markdown比较
  4. reST教程
相关推荐
想打游戏的程序猿20 小时前
核心概念层——深入理解 Agent 是什么
后端·ai编程
woniu_maggie21 小时前
SAP Web Service日志监控:如何用SRT_UTIL快速定位接口问题
后端
一线大码21 小时前
Java 使用国密算法实现数据加密传输
java·spring boot·后端
Rust语言中文社区21 小时前
【Rust日报】用 Rust 重写的 Turso 是一个更好的 SQLite 吗?
开发语言·数据库·后端·rust·sqlite
在屏幕前出油1 天前
06. FastAPI——中间件
后端·python·中间件·pycharm·fastapi
wuqingshun3141591 天前
说一下spring的bean的作用域
java·后端·spring
钟智强1 天前
从2.7GB到481MB:我的Docker Compose优化实战,以及为什么不能全信AI
后端·docker
华科易迅1 天前
Spring JDBC
java·后端·spring
小村儿1 天前
一起吃透 Claude Code,告别 AI 编程迷茫
前端·后端·ai编程
程序员大飞哥1 天前
云控SLA的数学:250ms端到端延迟预算怎么分配给传输层
后端