Sphinx + reStructuredText 中的内联代码链接

问题描述 投票:0回答:2

在 Markdown 中,可以像这样创建内联代码链接

[`dict.update`](https://docs.python.org/3/library/stdtypes.html#dict.update)

渲染效果类似于

dict.update
。如何在 reStructuredText / Sphinx 中获得类似的行为?我尝试(1)使用转换器,但它永远不会产生类似的结果(2)嵌套外部链接
`link <link>`_
和内联代码块
:code:`dict.update`
,但这也不起作用。

python python-sphinx restructuredtext cross-reference
2个回答
6
投票

执行此操作的正确方法是使用

sphinx.ext.intersphinx
扩展。

在您的

conf.py
添加

extensions = [
    'sphinx.ext.intersphinx',  # the last entry does not use a comma.
    # 'sphinx.ext.autodoc',  # just for example so there is more than 1 line.
]


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

# If you having an `objects.inv` for local builds
# intersphinx_mapping = {"python": ("https://docs.python.org/3", 'objects.inv'),}

然后在您的

.rst
文件或
.py
文件中的文档字符串中编写一个简单的交叉引用。请注意,
dict.update
是一种方法,因此在交叉引用时应使用正确的角色 (
:py:meth:
)。下面的例子

A simple text to :meth:`dict.update`

将给出以下 HTML 输出(交叉引用的工具提示和链接也包含在屏幕截图中)


0
投票

@bad_coder答案在引用其他文档中的代码角色时效果非常好(如

:meth:
:class:
等)

如果有人想创建指向任意超链接的内联代码链接,我使用 sphinx Comborole 扩展解决了我的情况。

特别是与extlinks

扩展
一起使用它。

© www.soinside.com 2019 - 2024. All rights reserved.