DocCMiddleware

CI Status Latest Release Swift Compatibility Platform Compatibility License

DocCMiddleware 使您能够通过 Vapor 快速有效地托管 DocC 文档。

⚠️此仓库仍在开发中,存在许多需要解决的问题和需要编写的测试。 欢迎您提出问题和贡献代码!

使用方法

只需几个简单的步骤即可使用 Vapor 托管您的 DocC 文档。

1. 生成文档

首先,您需要生成一个 .doccarchive。 您可以直接从 Xcode 13+ 执行此操作,也可以利用 swift-docc-plugin

有关概述,请参阅 向外部开发人员分发文档

您的 .doccarchive 在技术上可以位于 Vapor 工作区中的任何位置(它不必位于 Public/ 目录中),但中间件查找的默认位置是工作区根目录中的 Docs/

2. 启用中间件

接下来,在配置应用程序时、注册路由之前启用中间件。 在一个全新的 Vapor 项目中,这将在您的 configure.swift 文件中完成。

要启用位于网站根目录的单个 .doccarchive,您只需要传入存档的名称。

app.middleware.use(DocCMiddleware(app: app, archive: "DocCMiddleware"))

您还可以传入一个托管基本路径,该路径必须与您在使用 --hosting-base-path 选项生成文档时使用的值相匹配。

app.middleware.use(DocCMiddleware(app: app, archive: .init(name: "DocCMiddleware", hostingBasePath: "DocCMiddleware")))

如果您在生成文档时没有传递 --hosting-base-path 选项,这将不起作用!

如果您希望托管多个 .doccarchive 文件,您很幸运 -- 该中间件的设计目的就是为了做到这一点。

app.middleware.use(DocCMiddleware(app: app, archives: ["Module1", "Module2", "Module3"]))

由于无法同时在根目录下找到多个 .doccarchive 文件,因此上述语法假定每个模块都使用自己的名称作为托管基本路径。

如果您希望将文档保存在不同的目录中,例如 Public/docs,也没问题。

app.middleware.use(DocCMiddleware(documentationDirectory: app.directory.publicDirectory.appending("docs"), archive: "DocCMiddleware"))

3. 查看您的文档

最后,运行您的网站并导航到文档。

如果您没有使用 --hosting-base-path,则默认情况下可以在 localhost:8080 上看到它。

如果您使用--hosting-base-path,那么您传入的值就是导航到的路由。(例如,--hosting-base-path MyModule 对应于 localhost:8080/MyModule。)

默认情况下,路由将重定向到 <hosting-base-path>/documentation/MyModule。 这是构建到 .doccarchive 工作方式中的,目前无法配置。

待办事项

示例

观看它的实际效果!

贡献

欢迎进行讨论、提出问题和发起 pull 请求!

许可

本项目已根据 MIT 许可证发布。 有关详细信息,请参见 LICENSE