Pdoc:轻量级生成 API 文档

pdoc 是一个轻量级的库,专注于为 Python 项目生成 API 文档。
它通过扫描指定的模块和包,自动提取文档字符串,快速转化为易于浏览的 HTML 文档。这项技术尤其适用于需要快速生成文档的现代 Python 项目。
与市面上其他文档生成库例如 Sphinx 相比,pdoc 的特色在于其轻量级和易用性。
开发者无需过多配置,便可以得到整洁的 API 文档,将时间更多地投入到代码的编写上。
但如果项目需要更丰富的用户手册或教程编写功能,那么可能需要考虑其它如 Sphinx 的工具。
项目地址:https://github.com/mitmproxy/pdoc

安装

pdoc 支持 Python 3.6 以上版本,安装非常简便,只需一个 pip 命令:

pip install pdoc

基本用法

使用 pdoc,你只需要执行一个简单的命令即可生成你的项目文档:

pdoc your_python_module

或者,针对一个具体的文件,可以这样:

pdoc ./my_project.py

pdoc 还有内置的 web 服务器支持实时重新加载。如果你想查看 pdoc 自己的文档,可以运行:

pdoc pdoc

想查看支持的命令行选项,运行:

pdoc --help

或者,你可以访问官方文档[1]来获取更多信息。

Markdown 支持

pdoc 极大地简化了文档编写流程,它将文档视为普通的 Markdown 文件,让你更专注于内容的创作。

现代 Python 语言特性

pdoc 对现代 Python 3 的类型注解和其它特性提供了一流的支持。

自动化和便捷性

pdoc 能自动链接你文档字符串中的标识符到对应文档。它也会理解 numpydoc 和 Google 风格的字符串。

完美的继承

pdoc 会通过继承来解析类型注解和 docstrings。

高级功能

pdoc 的高级功能包括:

  • 自定义 HTML 模板支持
  • 自动尝试解析类型注释字符串字面量作为前向引用
  • 使用继承来解析类成员的类型注释和文档字符串。

对于有着更复杂文档需求的开发者,pdoc 提供了生成独立 HTML 文档的能力,而无需其他依赖。

在线预览

有时你可能需要直接预览生成的文档。pdoc 提供了在线预览的功能,只需一个命令:

pdoc -o ./html pdoc

生成的网站示例可以在这里查看官方文档。

示例

"""
A small `pdoc` example.
"""

class Dog:
    """"""
    name: str
    """The name of our dog."""
    friends: list["Dog"]
    """The friends of our dog."""

    def __init__(self, name: str):
        """Make a Dog without any friends (yet)."""
        self.name = name
        self.friends = []

    def bark(self, loud: bool = True):
        """*woof*"""

    @property
    def age(self) -> int:
        """*3 years old*"""        
pdoc ./snake.py

Pdoc:轻量级生成%20API%20文档-0

自定义网站 logo

pdoc ./snake.py --logo "https://placedog.net/300?random"

参考资料
[1]
官方文档: https://pdoc.dev/docs/pdoc.html
[2]
numpydoc: https://www.osgeo.cn/numpy/docs/howto_document.html
[3]
docstrings: https://www.runoob.com/w3cnote/python-docstrings.html


posted @ 2024-05-09 14:40  luckzack  阅读(115)  评论(0编辑  收藏  举报