Python: pydoc模块能输出带相对路径的HTML文档吗?
我正在使用pydoc模块来输出一些我用C API定义的类型的文档。这些我想要记录的类型,直到解释器嵌入到我的C程序中才会存在,所以我不能使用pydoc命令。
我让我的C代码调用一个函数,做的事情大致是这样的:
d = pydoc.HTMLDoc()
content = d.docmodule(sys.modules["mymodule"])
这样做是有效的,但生成的HTML页面中链接的目标是硬编码的'file:/'格式。有没有办法使用相对路径来处理链接呢?
(如果有更好的方法来记录在C API中定义的类型,那就更好了)
2 个回答
0
不可以,根据源代码,这个链接是来自一个文件路径,无法被覆盖。
try:
path = inspect.getabsfile(object)
url = urllib.parse.quote(path)
filelink = self.filelink(url, path)
except TypeError:
filelink = '(built-in)'
https://github.com/python/cpython/blob/55d24edaadba4ee90f464d88b44075649788f128/Lib/pydoc.py#L751
1
我觉得 Sphinx 在这方面做得更好。下面是如何为 C 语言领域编写文档的方法:
http://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html#the-c-domain