我有一个Sphinx扩展名,该扩展名生成应包含链接的代码块。用于生成带有链接的代码块的代码有效,但是生成的HTML和PDF(通过LaTeX)不包含链接。如何使链接通过?
我知道存在链接,因为在我的真实代码中,它们是作为pending_xref
生成的,并且我在resolve_xref
中添加了一条跟踪,表明链接已得到解决。>
我认为(但我还没有肯定),Pygments正在剥离包括链接的所有格式(即使关闭了突出显示功能,在我的真实文档中我也希望突出显示)。 如何使Pygments保留链接?
这是显示问题的文档(index.rst
)
.. toctree::
:maxdepth: 2
Target
======
I want to achieve:
.. parsed-literal::
*A link*: `Target`_
But I'm getting:
.. foo::
我的扩展代码(my_extension.py
):
from docutils import nodes
from docutils.parsers.rst import Directive
def make_reference():
ref = nodes.reference('', '', internal=True, refid='target')
ref.append(nodes.Text('Target'))
return [nodes.emphasis(text='A link: '), ref]
class Foo(Directive):
def run(self):
literal = nodes.literal_block()
literal += make_reference()
but = nodes.paragraph(text='In a normal font, it works:')
plain = nodes.paragraph()
plain += make_reference()
return [literal, but, plain]
def setup(app):
app.add_directive('foo', Foo)
配置(只是默认的sphinx-quickstart
东西,加上我的扩展名):
import os
import sys
sys.path.insert(0, os.path.abspath('.'))
project = 'MWE'
author = 'Gilles'
version = ''
release = ''
extensions = ['my_extension']
templates_path = ['_templates']
source_suffix = '.rst'
master_doc = 'index'
language = None
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
pygments_style = None
构建命令:sphinx-build -M html . _build