我知道 reStructuredText 有这个指令:
.. code:: bash
gedit pohl.m
它呈现一个代码块。有没有办法让这样的内联代码段的语法突出显示:
Do edit the file, type ``gedit pohl.m`` into a terminal.
反引号将其标记为代码,但我想用像块这样的 pygments 突出显示它。这可能吗?
我知道 reStructuredText 有这个指令:
.. code:: bash
gedit pohl.m
它呈现一个代码块。有没有办法让这样的内联代码段的语法突出显示:
Do edit the file, type ``gedit pohl.m`` into a terminal.
反引号将其标记为代码,但我想用像块这样的 pygments 突出显示它。这可能吗?
对此进行了更多研究后,我偶然发现了文档reStructuredText Interpreted Text Roles。从这个文件:
解释的文本在文本周围使用反引号 (`)。一个明确的角色标记可以可选地出现在文本之前或之后,用冒号分隔。例如:
This is `interpreted text` using the default role. This is :title:`interpreted text` using an explicit role.
好像有一个code
角色,所以你可以简单地输入
:code:`a = b + c`
呈现内联代码块。要获得语法突出显示,您可以定义自定义角色。例如
.. role:: bash(code)
:language: bash
然后您可以像这样使用它:
Here is some awesome bash code :bash:`a = b + c`.
请注意,角色定义必须放在对角色的引用之前。
请注意,我链接到的文档没有提及它所引用的 docutils 版本。代码角色在 docutils 0.8.1 中不可用(这是我必须测试的唯一版本)。
对我来说,我必须docutils.conf
在 Sphinx 的配置目录(conf.py
所在的位置)中创建一个文件。它有以下内容:
[restructuredtext parser]
syntax_highlight = short
有关上述内容的更多信息,请参阅此答案
为了全局设置角色conf.py
,我在文件中创建了一个rst_prolog
变量。其中的字符串将包含在每个读取的源文件的开头。
rst_prolog = """
.. role:: python(code)
:language: python
:class: highlight
"""
在这个highlight
类中正确的 Python 突出显示是必要的。
有关上述内容的更多信息,请参阅此答案