Sphinx非常适合链接到特定的Python对象。
例如,写
:func:`foo.bar`
将直接链接到bar
中的foo.py
函数。我希望具有相同的功能,但与其希望创建一个bar()
的代码,而不是创建可点击的链接。
.. code-block:: language
指令要求您手动编写要添加的代码。但是我想使用intersphinx链接到外部Sphinx项目中已经存在的代码,而不是自己编写代码。 :mod:
,:func:
等仅创建链接,而实际上未包含源代码。
也有.. literalinclude:: filename
,但就我而言,我不能使用它,因为该功能来自Sphinx项目之外(它是使用intersphinx链接的,并不属于实际项目)。即使.. literalinclude:: filename
可以以某种方式跨项目工作,我认为我仍然需要使用:lines:
来过滤每个功能,这将是跟踪的巨大痛苦。
如何通过名称空间路径引用函数/类,并使用该函数将其源代码直接添加到sphinx rst文件中? (不是可点击的链接,而是文字代码。)
答案 0 :(得分:1)
没人回答,所以我做了我自己的:https://github.com/ColinKennedy/sphinx-code-include
答案 1 :(得分:0)
此功能开箱即可使用。您正在寻找的是literalinclude
指令及其:pyobject:
参数。
---[mymodule.py]------------
def hello(who):
print(f'Hello {who} !')
---[mydocumentation.rst]----
Bla bla bla lorem ipsum
.. literalinclude: ../../path/to/mymodule.py
:pyobject: hello
这只会在文档中包含hello()
函数的代码。