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教程
相关推荐
Victor35616 小时前
https://editor.csdn.net/md/?articleId=139321571&spm=1011.2415.3001.9698
后端
Victor35616 小时前
Hibernate(89)如何在压力测试中使用Hibernate?
后端
灰子学技术17 小时前
go response.Body.close()导致连接异常处理
开发语言·后端·golang
Gogo81618 小时前
BigInt 与 Number 的爱恨情仇,为何大佬都劝你“能用 Number 就别用 BigInt”?
后端
fuquxiaoguang18 小时前
深入浅出:使用MDC构建SpringBoot全链路请求追踪系统
java·spring boot·后端·调用链分析
毕设源码_廖学姐19 小时前
计算机毕业设计springboot招聘系统网站 基于SpringBoot的在线人才对接平台 SpringBoot驱动的智能求职与招聘服务网
spring boot·后端·课程设计
野犬寒鸦21 小时前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
逍遥德21 小时前
如何学编程之01.理论篇.如何通过阅读代码来提高自己的编程能力?
前端·后端·程序人生·重构·软件构建·代码规范
MX_93591 天前
Spring的bean工厂后处理器和Bean后处理器
java·后端·spring
程序员泠零澪回家种桔子1 天前
Spring AI框架全方位详解
java·人工智能·后端·spring·ai·架构