资源描述
Codoxify 是一款专为 Clojure 开发者设计的轻量级文档生成工具,可将 Codox 生成的 JSON 文档元数据自动转换为 Docsify 兼容的 Markdown 格式,实现静态站点式 API 文档的快速部署。适用于需要持续集成、版本化、响应式浏览 Clojure 库文档的团队与开源项目,显著降低文档维护成本,提升技术文档可读性与 SEO 友好性。
详细内容
## 工具定位与核心价值
Codoxify 是一个衔接 Clojure 文档生态与现代静态网站技术栈的桥梁工具。它不替代 Codox(Clojure 官方文档生成器),而是将其输出的结构化 JSON 数据(如命名空间、函数签名、docstring、源码位置等)智能转换为 Docsify 所需的扁平化 Markdown 文件树。核心价值在于:**零模板定制即可获得可搜索、带侧边栏导航、支持版本切换、响应式渲染的交互式 Clojure API 文档站**,大幅简化传统文档发布流程。
## 主要功能列表
- ✅ **JSON-to-Markdown 转换**:解析 Codox 输出的 `codox.json`,提取命名空间、函数/宏/多方法定义、参数说明、返回值、示例代码及 docstring。
- ✅ **Docsify 目录结构生成**:自动生成 `README.md`(首页)、`_sidebar.md`(导航菜单)、`_navbar.md`(顶部导航)及按命名空间组织的 `.md` 页面文件。
- ✅ **链接与锚点自动关联**:函数间交叉引用(如 `clojure.core/map` → `/namespaces/clojure.core#map`)和内部跳转锚点(如 `## map`)均自动构建。
- ✅ **基础主题适配与元信息注入**:为每个页面注入 `title`、`sidebarDepth` 等 Docsify 前置元数据,兼容默认主题与常见插件(如 `docsify-plugin-search`)。
- ✅ **增量更新支持**:仅重写变更的文件,适配 CI/CD 流程(如 GitHub Actions 中配合 `clj -T:build codox` 后调用 `codoxify`)。
## 典型使用场景
- 开源 Clojure 库作者希望提供媲美 ClojureDocs 的在线 API 文档,但不愿手写 Markdown 或维护复杂构建脚本;
- 团队内部 Clojure 工具链需要统一、可版本控制、可托管于 GitHub Pages / Netlify 的文档门户;
- 教学项目或技术博客中嵌入可执行示例的 Clojure 文档(结合 Docsify 的 `execute-code` 插件);
- 企业内 Clojure 微服务模块需自动化同步接口契约文档至内部知识库。
## 上手步骤与操作要点
1. **前提条件**:已配置 Codox(在 `deps.edn` 或 `project.clj` 中添加依赖),并能通过 `clj -T:build codox` 生成 `target/codox/codox.json`;
2. **安装 Codoxify**:作为 CLI 工具,推荐通过 Babashka 脚本运行(项目根目录下执行):
```bash
bb -P https://github.com/wavejumper/codoxify.git codoxify --input target/codox/codox.json --output docs/
```
3. **配置 Docsify**:在 `docs/` 下新建 `index.html`,引入 Docsify 官方 CDN,并设置 `loadNavbar: true`、`loadSidebar: true`;
4. **启动预览**:使用任意静态服务器(如 `npx http-server docs/`)访问 `http://localhost:8080` 即可查看生成文档;
5. **进阶建议**:
- 在 `deps.edn` 中定义 alias(如 `:docs`)封装 codox + codoxify 流程;
- 结合 `docsify-plugin-copy-code` 提升代码块可用性;
- 使用 `--namespace-filter` 参数限制生成范围(如仅 `myapp.core`)。