2023-06: OpenDAL 的文档即代码实践
原文中文,约2800字,阅读约需7分钟。
📝
内容提要
OpenDAL 将用户文档和 API 文档合并到代码中,解决了维护麻烦、互相引用困难、无法版本化等问题,并介绍了实践文档即代码的一些实用小技巧。如果项目的用户文档和 API 文档的读者群完全重叠,可以尝试这种方案,解决文档分裂的体验问题。
🎯
关键要点
-
OpenDAL 将用户文档和 API 文档合并到代码中,解决了维护麻烦、互相引用困难、无法版本化等问题。
-
OpenDAL 是一个使用 Rust 开发的数据访问库,用户文档和 API 文档通过不同路径提供服务。
-
维护文档需要分别使用 cargo doc 和 mdbook,增加了构建的复杂性。
-
API 文档和用户文档分开构建,互相引用困难,导致引用失效。
-
mdbook 不支持版本化,用户无法查看旧版本文档。
-
将文档放入代码中,使用 rustdoc 统一构建,简化了构建过程。
-
文档中可以方便引用项目元素,rustdoc 提供 broken intradoc 检查。
-
所有推送到 Crates.io 的包自动构建文档并发布到 Docs.rs,支持版本化。
-
适合将文档视为代码的项目需确保用户文档和 API 文档的读者群重叠。
-
在项目中增加 docs feature 开关来控制文档编译,避免影响编译速度。
-
可以通过 #[doc = include_str!("xxx.md")] 导入本地 Markdown 文件。
-
rustdoc 不支持插入图片,但可以使用 embed_doc_image 实现。
-
修改 docs.rs metadata 确保文档正常编译。
-
推荐尝试文档即代码的实践,简化构建、引用方便、支持版本化。