sphinx - 如何包含 Python 函数作为源代码
sphinx - How to include a Python function as source code
Sphinx 非常擅长 link 特定 Python 对象。
例如写
:func:`foo.bar`
会link直接到foo.py
中的bar
函数。我想要同样的功能,但我不想创建可点击的 link,而是希望它成为 bar()
的代码。
.. code-block:: language
指令要求您手动编写要添加的代码。但是我想 link 使用 intersphinx 对外部 Sphinx 项目中已经存在的代码进行编码,而不是自己编写代码。 :mod:
、:func:
和其他人只创建 links,实际上并不包含源代码。
还有 .. literalinclude:: filename
但就我而言,我无法使用它,因为该函数来自 Sphinx 项目之外(它正在 linked 使用 intersphinx 并且不是实际项目)。即使 .. literalinclude:: filename
可以以某种方式跨项目工作,我认为我仍然需要使用 :lines:
来过滤每个功能,这将是一个巨大的跟踪。
如何通过名称空间路径引用函数 / class 并使用它来将其源代码直接添加到 sphinx 第一个文件中? (不是作为可点击的 link,而是文字代码)。
没有人回复所以我自己做了:https://github.com/ColinKennedy/sphinx-code-include
此功能开箱即用。您正在寻找的是 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()
函数的代码。
Sphinx 非常擅长 link 特定 Python 对象。
例如写
:func:`foo.bar`
会link直接到foo.py
中的bar
函数。我想要同样的功能,但我不想创建可点击的 link,而是希望它成为 bar()
的代码。
.. code-block:: language
指令要求您手动编写要添加的代码。但是我想 link 使用 intersphinx 对外部 Sphinx 项目中已经存在的代码进行编码,而不是自己编写代码。 :mod:
、:func:
和其他人只创建 links,实际上并不包含源代码。
还有 .. literalinclude:: filename
但就我而言,我无法使用它,因为该函数来自 Sphinx 项目之外(它正在 linked 使用 intersphinx 并且不是实际项目)。即使 .. literalinclude:: filename
可以以某种方式跨项目工作,我认为我仍然需要使用 :lines:
来过滤每个功能,这将是一个巨大的跟踪。
如何通过名称空间路径引用函数 / class 并使用它来将其源代码直接添加到 sphinx 第一个文件中? (不是作为可点击的 link,而是文字代码)。
没有人回复所以我自己做了:https://github.com/ColinKennedy/sphinx-code-include
此功能开箱即用。您正在寻找的是 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()
函数的代码。