doc_generator :让文档从代码中生长出来
前言:
MarkFLow是一个SKILLS技能生成的框架,可以生成很多想要实现的SKILLS,就是所谓的技能,能帮助你简化工作,提高效率。
由于经常要写文档,尤其是开发新功能或者说明的时候,需要文档,总结起来感觉会费力,而且作为工程师,难免会从技术的角度,往往会惜墨如金,导致技术底蕴不够的用户,想根据文档来尝试会遇到一定的难度,因此想到实现一个SKILLS,自动扫码代码,来生成文档,包括功能介绍和API,非常方便。

从截图可以看到,doc_generator是MarkFlow众多SKILLS中的一个,但很实用。
MarkFlow开源地址
https://github.com/austinnie/MarkFlow
一、它是什么?
doc_generator 是 MarkFlow 框架中的一个技能——代码文档自动生成器。它能扫描 Python 代码,自动提取结构信息,生成 API 参考文档和 README。
输入:Python 代码文件 → doc_generator → 输出:Markdown 文档简单来说,你写代码,它写文档。
二、它能做什么?
2.1 解析代码结构
doc_generator 使用 Python 的 ast 模块解析代码,提取:

2.2 生成多种格式

2.3 支持技能特殊处理
doc_generator 会根据不同的技能类型生成不同的内容:

三、如何使用?
3.1 为单个技能生成 README
python scripts/generate_skill_readme.py sd_image_generator
3.2 为所有技能生成 README
python scripts/generate_skill_readme.py --all
3.3 通过 CLI 直接使用

四、工作原理
4.1 架构图

4.2 核心解析逻辑
doc_generator 使用 ast.walk() 遍历语法树:

4.3 特殊处理机制
doc_generator 内置了技能特殊处理逻辑:

五、生成效果对比
5.1 基本 README(通用)

# music_player

六、设计亮点
6.1 自动发现
doc_generator 自动从 skills/ 目录读取 meta.json,无需手动配置。
6.2 可扩展
添加新技能的特殊处理只需在 _generate_readme_md 方法中添加一个 if 判断:
if project_name == "new_skill": 添加自定义章节 添加功能表格 添加使用示例
这样就不会有代码块解析问题了。
6.3 一致性
所有技能 README 使用相同的模板和风格,但内容根据技能特点自适应。
七、使用场景

八、结语
doc_generator 体现了 MarkFlow 的核心哲学:
让技能编写像写文档一样简单,让文档像代码一样自动维护。
它不是一个简单的文档生成工具,而是 MarkFlow 技能生态中自动化的最后一公里——让每个技能都有一份完整、准确、好看的文档。

doc_generator - 让文档从代码中生长出来 ✨


夜雨聆风