1 个不稳定版本
0.1.0 | 2024年7月23日 |
---|
#154 在 开发工具
135 每月下载量
34KB
627 行
文档生成器
此项目是一个基于 Rust 的 C# 代码库文档生成器。它扫描 C# 源文件,提取相关结构(类、结构体、枚举和接口),并根据提供的模板生成文档。
特性
- 解析 C# 源文件以提取结构。
- 支持 XML 文档注释。
- 使用模板以可自定义的格式生成文档。
- 支持不同的访问修饰符和结构类型。
- 可以集成到 CI/CD 管道中,以实现自动化文档生成。
路线图
- 交互式 CLI:增强 CLI,为不直接使用命令行参数的用户提供交互式提示。
- 模板自定义:允许用户在模板中定义自己的占位符和规则,以支持更灵活的文档样式。
- 增量解析:实现一个功能,只重新解析自上次运行以来已更改的文件,以提高大型项目的性能。
- 多种输出格式:支持生成各种格式的文档,如 HTML、PDF 和 Markdown,以适应不同的使用场景。
- 代码示例:从 C# 文件中提取并包含代码示例,在生成的文档中提供上下文和用法示例。
- 语法高亮:在生成的文档中集成代码片段的语法高亮,以改善可读性。
- 版本控制:支持版本化文档,允许用户为代码库的不同版本生成和维护文档。
- 配置文件:允许用户在配置文件(例如 JSON、TOML)中定义设置和首选项,以便更方便地进行自定义。
- CI/CD 集成:提供与 CI/CD 管道(例如 GitHub Actions、Travis CI)的简单集成,以在代码更改时自动生成文档。
- 文档覆盖率报告:生成报告,显示文档的覆盖率(例如已文档化的类、方法和属性的百分比)。
- 错误处理和报告:改进错误处理并提供详细的错误报告,以帮助用户解决输入文件或模板的问题。
入门
先决条件
- Rust编程语言
- Cargo(Rust包管理器)
用法
-
准备一个模板文件(例如,
template.md
)# Documentation for [System Name] ## Overview [Brief overview of the system] ## Key Interfaces - **`[interface_name]`**: [summary] ## Main Classes - [access_modifier] **`[class_name]`**: [one_sentence_summary] ## Structs - **`[struct_name]`**: [one_sentence_summary] ## Enums - **`[enum_name]`**: [one_sentence_summary] ## Usage [Usage examples]
-
运行文档生成器
cargo run --release -- --package_dir path/to/csharp/code --template_file path/to/template.md --output_dir path/to/output --output_file documentation.md
命令行选项
--package_dir
:包含C#源文件的目录。--template_file
:模板文件的路径。--output_dir
:保存生成的文档的目录。--output_file
:生成的文档文件的名称。
项目结构
.
├── src
│ ├── cli.rs
│ ├── parser.rs
│ ├── documentation.rs
│ └── main.rs
├── Cargo.toml
└── README.md
贡献
欢迎贡献!请打开一个问题或提交一个拉取请求。
许可证
本项目受MIT许可证许可 - 请参阅LICENSE文件以获取详细信息。
鸣谢
- walkdir - 递归目录遍历库
- serde - 序列化和反序列化库
- regex - 正则表达式库
- strum - 枚举处理库
- strum_macros - 枚举处理宏
- structopt - 命令行参数解析库
- structopt-derive -
structopt
的派生宏
联系方式
- 电子邮件:[email protected]
- GitHub问题:GitHub问题页面
依赖项
~4–13MB
~130K SLoC