Highlight
Xcode 13 集成 DocC 文档编译器,支持从 Swift 代码注释自动生成 API 参考文档,支持文章(Articles)和教程(Tutorials),可导出为文档包分享,并计划开源。
核心内容
你维护了一个 Swift 框架,但文档一直是个痛点。用 Jazzy 生成的文档样式和 Apple 官方不一致,第三方依赖的文档分散在各处。团队成员和外部用户经常问你 “这个 API 怎么用”。
Xcode 13 的 DocC 解决了这个问题。它原生集成在 Xcode 中,使用和 Apple 开发者文档完全相同的渲染引擎。
详细内容
三种文档类型
(01:29)
DocC 支持三种文档类型:
- Reference:API 参考文档,从代码注释自动生成
- Articles:概念性文章,解释框架的整体设计和使用方式
- Tutorials:逐步教程,手把手教用户构建一个项目
构建文档
(04:36)
Xcode 13 提供三种构建文档的方式:
- Build Documentation 菜单:手动构建并查看
- Build Settings:每次编译时自动构建文档
- xcodebuild:命令行构建,适合 CI
# 命令行构建文档
xcodebuild docbuild -scheme MyFramework
(06:08)
关键点:
Product > Build Documentation手动构建BUILD_DOCUMENTATION_COMPILATION = YES自动构建xcodebuild docbuild命令行构建- 依赖的框架文档也会一起构建
编写文档注释
(09:34)
DocC 从代码中的 /// 注释提取 API 文档。
/// Food that a sloth can consume.
///
/// Sloths love fresh leaves, especially from the Cecropia tree.
/// Here's how to create food:
///
/// ```swift
/// let leaf = Food(name: "Cecropia Leaf")
/// ```
struct Food {
/// The name of the food.
let name: String
/// The energy level this food provides.
///
/// - Parameter quantity: The amount of food consumed.
/// - Returns: The total energy gained.
func energy(from quantity: Int) -> Int {
return quantity * 10
}
}
(10:05)
关键点:
///标记文档注释(两个斜杠是普通注释)- 第一行是摘要,显示在列表和搜索结果中
- 空行后是详细描述
- Markdown 代码块会被渲染为语法高亮
符号链接
(17:58)
DocC 支持在文档中链接到其他符号:
/// When they eat food, a sloth's ``energyLevel`` increases.
///
/// The amount of increase depends on the food's ``Food/energy``.
/// For more details, see ``Habitat/comfortLevel``.
func eat(_ food: Food, quantity: Int) -> Int {
return food.energy(from: quantity)
}
(17:58)
关键点:
- 双反引号
`SymbolName`创建符号链接 - 同类型的符号直接写名字
- 不同类型的符号用
TypeName/memberName格式 - Xcode 提供代码补全帮助选择正确的符号
Quick Help
(12:44)
Option-click 代码中的符号,可以查看 Quick Help:
- 显示符号的摘要和描述
- 包含参数和返回值说明
- 符号链接可点击跳转
- 底部有 “Open in Developer Documentation” 链接
(13:22)
关键点:
- Option-click 触发 Quick Help
- 在源码编辑器和调用处都可用
- 链接跳转到完整文档页面
- 实时反映最新的文档注释
导出和分享文档
(20:03)
构建完成后,可以导出文档包(.doccarchive):
- 在 Documentation Navigator 中右键点击框架
- 选择 Export
- 保存为 .doccarchive 文件
其他人双击 .doccarchive 即可在 Xcode 中查看文档,不需要下载或构建源代码。
(20:36)
关键点:
- .doccarchive 包含编译后的文档
- 可以像打开 app 一样双击打开
- 适合分享给团队成员或用户
- 也可以部署为静态网站
核心启发
-
从第一天开始写
///文档注释。写在代码旁边,更新代码时顺手更新,成本几乎为零。入口 API:///注释。 -
为公开 API 提供使用示例。DocC 会自动把代码块中的类型名转为可点击链接。入口 API:Markdown 代码块。
-
用符号链接连接相关 API。帮助用户理解 API 之间的关系。入口 API:
`SymbolName`。 -
导出文档包分享给团队。不需要每个人都构建源代码就能查看文档。入口 API:Documentation Navigator → Export。
-
把 DocC 集成到 CI 流程。用
xcodebuild docbuild自动构建和验证文档。入口 API:xcodebuild docbuild -scheme MyFramework。
关联 Session
- Elevate your DocC documentation in Xcode — DocC 文档组织和扩展
- Build interactive tutorials in DocC — DocC 交互式教程
- Host and automate your DocC documentation — DocC 文档托管和自动化
评论
GitHub Issues · utterances