Sphinx将代码格式添加到:ref:

时间:2017-08-17 17:52:40

标签: python python-sphinx restructuredtext

我想将代码格式添加到这样的引用中:

:ref:`__slots__ <python:slots>`

我的intersphinx_mapping定义python,如下所示:

intersphinx_mapping = {
    'python': ('https://docs.python.org/3', None),
}

因此链接指向https://docs.python.org/3/reference/datamodel.html#slotsslots的{​​{1}}部分定义了std:label

我的目标是以https://docs.python.org/3/objects.inv或类似的方式格式化呈现的链接,而不是:py:attr:呈现的默认文本样式。

以下选项均无效:

  • :ref:

    一样输出
      

    ... ... ``:ref:`__slots__ <python:slots>``` ... ...

  • :ref:`__slots__ <python:slots>`

    一样输出
      

    ... __slots__ ...

  • ... ``:ref:`__slots__ <python:slots>` `` ...

    一样输出
      

    ...:ref:`` `__slots__``&lt; python:slots&gt;`...

    在这种情况下,... :ref:```__slots__`` <python:slots>` ...有两个单独的内部链接。

  • #id1

    一样输出
      

    ...:ref:``` __ slots__``&lt; python:slots&gt;`...

... :ref:` ``__slots__`` <python:slots>` ...``...``:code:`...`重叠在:literal:`...`内部或外部也无济于事。事实上,似乎根本不允许嵌套角色。

我希望有一个内联角色,可以使用代码样式和链接呈现某些内容,例如

  

... __slots__ ...

如何使用:ref:使用的代码样式格式显示基本:ref:(或等效内容)?

我在Anaconda环境中使用Sphinx 1.6.3和Python 3.6.2。

反问题在这里:Sphinx remove code formatting from custom code reference

一个与切线相关的问题:Nested / Compounded roles: apply multiple roles to overlapping text

1 个答案:

答案 0 :(得分:1)

:any:角色可以满足您的需求:

:any:`__slots__ <python:slots>`

这是一个方便的角色&#34;查找当前域中的交叉引用目标以及与:ref:一起使用的目标。

对于不同类型的对象,Python域有几个specific cross-reference roles