DocCMiddleware 使您能够通过 Vapor 快速有效地托管 DocC 文档。
只需几个简单的步骤即可使用 Vapor 托管您的 DocC 文档。
首先,您需要生成一个 .doccarchive
。 您可以直接从 Xcode 13+ 执行此操作,也可以利用 swift-docc-plugin。
有关概述,请参阅 向外部开发人员分发文档。
您的
.doccarchive
在技术上可以位于 Vapor 工作区中的任何位置(它不必位于Public/
目录中),但中间件查找的默认位置是工作区根目录中的Docs/
。
接下来,在配置应用程序时、注册路由之前启用中间件。 在一个全新的 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"))
最后,运行您的网站并导航到文档。
如果您没有使用 --hosting-base-path
,则默认情况下可以在 localhost:8080
上看到它。
如果您使用了 --hosting-base-path
,那么您传入的值就是导航到的路由。(例如,--hosting-base-path MyModule
对应于 localhost:8080/MyModule
。)
默认情况下,路由将重定向到
<hosting-base-path>/documentation/MyModule
。 这是构建到.doccarchive
工作方式中的,目前无法配置。
.doccarchive
文件。.doccarchive
。观看它的实际效果!
欢迎进行讨论、提出问题和发起 pull 请求!
本项目已根据 MIT 许可证发布。 有关详细信息,请参见 LICENSE。