css – Sphinx内联代码突出显示

我使用Sphinx制作一个包含代码示例的网站.
我成功使用.. code-block指令来获取语法高亮.
但我无法使用此代码获得内联语法高亮:
.. role:: bash(code)
   :language: bash

Test inline: :bash:`export FOO="bar"`.

.. code-block:: bash

    export FOO="bar"

产生此输出,即内联代码未突出显示,而块代码是:

对我来说问题是生成的内联代码HTML包含长类名,而不包含代码块.
这是输出HTML(为了便于阅读而缩进):

<p>Test inline:
    <tt class="code bash docutils literal">
        <span class="name builtin">
            <span class="pre">export</span>
        </span>
        <span class="name variable">
            <span class="pre">FOO</span>
        </span>
        <span class="operator">
            <span class="pre">=</span>
        </span>
        <span class="literal string double">
            <span class="pre">&quot;bar&quot;</span>
        </span>
    </tt>.
</p>


<p>Test code-block:</p>
<div class="highlight-bash">
    <div class="highlight">
        <pre>
            <span class="nb">export </span>
            <span class="nv">FOO</span>
            <span class="o">=</span>
            <span class="s2">&quot;bar&quot;</span>
        </pre>
    </div>
</div>

任何帮助将非常感谢.

解决方法

找到一个更好的(仅限斯芬克斯)解决方案:在sphinx / builders / html.py中找到一条线
from docutils.core import Publisher

并将其更改为:

from docutils.core import Publisher
def process_programmatic_settings(self,settings_spec,settings_overrides,config_section):
    if self.settings is None:
        defaults = (settings_overrides or {}).copy()
        # Propagate exceptions by default when used programmatically:
        defaults.setdefault('traceback',True)
        defaults.setdefault('Syntax_highlight','short') # ADDED THIS LINE
        self.get_settings(settings_spec=settings_spec,config_section=config_section,**defaults)
Publisher.process_programmatic_settings = process_programmatic_settings

这个解决方案比以前的解决方案更好:因为它不会使css规则的数量增加一倍,也不会修改docutils.

仍然,理想的解决方案只会改变conf.py.所以有很大的改进空间.

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效