Swift Biome 已被 Swift Unidoc 取代!
biome0.3.2
swift-biome 是一个版本化的、多包 Swift 文档编译器。
Biome 旨在成为 Web 服务或静态站点生成器的后端组件。Biome 处理 symbolgraph 解析、依赖关系解析、交叉链接、版本控制、组织、呈现、HTML 渲染和 URI 路由。
Biome 为 swiftinit.org 生态系统文档 提供支持!
Biome 构建于与 DocC 相同的许多组件之上。其主要输入源是由 lib/SymbolGraphGen 生成的 symbolgraph 格式。它还读取 Package.resolved 和 Package.catalog,后者由 swift-package-catalog 插件生成。
自 v0.3.1 版本起,Biome 将原始 symbolgraph 提前编译成 ss 文件格式,这是一种性能更高、更紧凑且对压缩算法更友好的 symbolgraph 表示形式。
Biome 包含一个工具 swift-symbolgraphc,可用于将原始 symbolgraph 转换为 ss 文件。
swift-biome-resources 子模块包含标准库最新版本的预编译 ss 文件,以及其默认前端的各种资源和 webpacks。
ecosystem 仓库不被此仓库跟踪,但它包含精选生态系统包的历史 symbolgraph、Package.resolved 文件和 Package.catalog 文件。
swift-biome 包包含一个基于 swift-nio 的可执行目标,名为 preview,可用于在本地构建和浏览文档。此服务器没有安全功能,不适合在生产环境中使用。
具有更复杂用例的 swift-biome 使用者应期望实现他们自己的 Web 服务器,通过 WebSemantics 与 Biome 交互。
前端使用 Sass 和 Typescript 编写。
构建 Biome 需要 DEVELOPMENT-SNAPSHOT-2022-08-09-a 工具链。工具链要求是精确的,因为 swift-syntax 和 swift-markdown 链接到 swift 运行时的方式。
目前,Biome 只能在 Linux 上构建。Ubuntu 和 Amazon Linux 2 是官方支持的。阻止 Biome 在 macOS 上构建的唯一技术限制是 PackageLoader 目标使用的一些文件系统 API,我们希望尽快将 Biome 移植到 macOS。
提供红黑森林实现,供 Biome 的内存数据库使用。(Biome 使用红黑森林,而不是 B 树集合,因为它单独版本化符号。)
实现 URI 解析器和基本 URI 操作。
实现语义版本。
解码 swift 编译器发出的原始 symbolgraph 片段,执行模块本地后处理,并将它们编码为 symbolgraph 文件。还为各种源代码构造提供类型定义。
实现文档编译器、渲染器和内存数据库。
解码 Package.resolved 文件格式。
解码 Package.catalog 文件格式,并处理从文件系统加载和发现 symbolgraph、DocC 归档和 SPM 代码片段。还可以调用 SymbolGraphs 以动态编译原始 symbolgraph 片段。
调用 PackageCatalogs 和 Biome,并提供便捷的 API,用于将 symbolgraph 从前者添加到后者。
Preview (preview)
一个基本的、不安全的基于 swift-nio 的服务器,适用于在本地浏览 Biome 文档。
SymbolGraphConvert (swift-symbolgraphc)
一个用于调用 SymbolGraphs 的命令行界面。支持多线程。
swift-grammarswift-jsonswift-highlightswift-resourceswift-domapple/swift-markdownapple/swift-syntaxswiftinit.org 的部署还依赖于 @Joannis 的 mongokitten,尽管 swift-biome 本身并不依赖于它。