Python 生成rst文件和目录,镜像包和模块树
我正在尝试为我的库生成文档。由于库目录结构相当大,我希望Sphinx将Python 生成rst文件和目录,镜像包和模块树,python,python-sphinx,sphinx-apidoc,Python,Python Sphinx,Sphinx Apidoc,我正在尝试为我的库生成文档。由于库目录结构相当大,我希望Sphinx将.rst文件生成为嵌套目录,以反映包和模块结构 图书馆结构: 到目前为止,我一直在使用sphinxapidoc-e-o…在docs/source/文件夹中生成文档。 但这并不像预期的那样有效 预期成果: 作为嵌套目录生成的文档。已删除这些文件以仅保留主干 docs/source/ └── ciphers/ └── backends/ ├── cryptodome_/ └── crypto
.rst
文件生成为嵌套目录,以反映包和模块结构
图书馆结构:
到目前为止,我一直在使用sphinxapidoc-e-o…
在docs/source/
文件夹中生成文档。
但这并不像预期的那样有效
预期成果:
作为嵌套目录生成的文档。已删除这些文件以仅保留主干
docs/source/
└── ciphers/
└── backends/
├── cryptodome_/
└── cryptography_/
实际结果:
将保留整个模块名
docs/source/
├── ... # skipping boilerplate files
├── pyflocker.ciphers.backends.cryptodome_.AES.rst
├── pyflocker.ciphers.backends.cryptodome_.ChaCha20.rst
├── pyflocker.ciphers.backends.cryptodome_.ECC.rst
├── pyflocker.ciphers.backends.cryptodome_.Hash.rst
├── pyflocker.ciphers.backends.cryptodome_.RSA.rst
├── pyflocker.ciphers.backends.cryptodome_.rst
├── pyflocker.ciphers.backends.cryptography_.AES.rst
├── pyflocker.ciphers.backends.cryptography_.Camellia.rst
├── pyflocker.ciphers.backends.cryptography_.ChaCha20.rst
├── pyflocker.ciphers.backends.cryptography_.DH.rst
├── pyflocker.ciphers.backends.cryptography_.ECC.rst
├── pyflocker.ciphers.backends.cryptography_.Hash.rst
├── pyflocker.ciphers.backends.cryptography_.RSA.rst
├── pyflocker.ciphers.backends.cryptography_.rst
├── pyflocker.ciphers.backends.rst
├── pyflocker.ciphers.base.rst
├── pyflocker.ciphers.exc.rst
├── pyflocker.ciphers.interfaces.AES.rst
├── pyflocker.ciphers.interfaces.Camellia.rst
├── pyflocker.ciphers.interfaces.ChaCha20.rst
├── pyflocker.ciphers.interfaces.DH.rst
├── pyflocker.ciphers.interfaces.ECC.rst
├── pyflocker.ciphers.interfaces.Hash.rst
├── pyflocker.ciphers.interfaces.RSA.rst
├── pyflocker.ciphers.interfaces.rst
├── pyflocker.ciphers.modes.rst
├── pyflocker.ciphers.rst
├── pyflocker.locker.rst
└── pyflocker.rst
有没有办法将文档生成为目录树?您指定的内容目前不可能实现
sphinx-apidoc
不会创建与包/文件结构镜像的目录sphinx-apidoc
不会将.rst
文件分发到与包/文件结构相镜像的多个目录中sphinx apidoc
签名,您可以为模块指定一个输入路径,为.rst
文件指定一个输出路径:
sphinx-apidoc[选项]-o[排除模式…]
您必须编写自己的脚本以递归到文件系统中,并使用
镜像
对每个包/目录执行一次sphinx apidoc
这看起来可能是不直观的,但是Python的哲学是:
平的比嵌套的好
可以说,让sphinx-apidoc
生成带有虚线名称的.rst
文件更方便,因为您一眼就能看到包/模块结构的概览,而且它倾向于保存单击
如果您想在以后将一些
.rst
文件组织到目录中,可以将它们链接起来,但是在编写本文时,不可能在一次执行中使用sphinx apidoc
自动生成这样的树。可以使用。
它镜像原始包结构并生成适当的文件
请注意,它不会编辑其中的文件或链接。它只是重命名或移动它们。我在sphinx apidoc或sphinx autogen的文档中没有看到任何这样的选项。我也没有看到任何扩展在这可以用一个单一的功能使用。如果使用
sphinx-apidoc-e
为每个模块获取一个文件,请将所有文件名(其名称完全限定在帮助中)放入字典并保存。之后,为每个父级创建一个目录,并将文件放在所需的位置。现在可以使用。我将在答复中提到这一点。
docs/source/
├── ... # skipping boilerplate files
├── pyflocker.ciphers.backends.cryptodome_.AES.rst
├── pyflocker.ciphers.backends.cryptodome_.ChaCha20.rst
├── pyflocker.ciphers.backends.cryptodome_.ECC.rst
├── pyflocker.ciphers.backends.cryptodome_.Hash.rst
├── pyflocker.ciphers.backends.cryptodome_.RSA.rst
├── pyflocker.ciphers.backends.cryptodome_.rst
├── pyflocker.ciphers.backends.cryptography_.AES.rst
├── pyflocker.ciphers.backends.cryptography_.Camellia.rst
├── pyflocker.ciphers.backends.cryptography_.ChaCha20.rst
├── pyflocker.ciphers.backends.cryptography_.DH.rst
├── pyflocker.ciphers.backends.cryptography_.ECC.rst
├── pyflocker.ciphers.backends.cryptography_.Hash.rst
├── pyflocker.ciphers.backends.cryptography_.RSA.rst
├── pyflocker.ciphers.backends.cryptography_.rst
├── pyflocker.ciphers.backends.rst
├── pyflocker.ciphers.base.rst
├── pyflocker.ciphers.exc.rst
├── pyflocker.ciphers.interfaces.AES.rst
├── pyflocker.ciphers.interfaces.Camellia.rst
├── pyflocker.ciphers.interfaces.ChaCha20.rst
├── pyflocker.ciphers.interfaces.DH.rst
├── pyflocker.ciphers.interfaces.ECC.rst
├── pyflocker.ciphers.interfaces.Hash.rst
├── pyflocker.ciphers.interfaces.RSA.rst
├── pyflocker.ciphers.interfaces.rst
├── pyflocker.ciphers.modes.rst
├── pyflocker.ciphers.rst
├── pyflocker.locker.rst
└── pyflocker.rst