Swift-DocC 现已开源

在 WWDC21 上,Apple 发布了 Swift-DocC,这是一款用于 Swift 框架和包的全新文档编译器。Swift-DocC 提供了一种轻松的方式,让您可以在编写代码的同时编写出色的文档,并为 Swift 代码库生成全面的文档网站。它支持以代码注释形式编写的 API 文档、以 Markdown 编写的长篇概念文章,甚至包含集成图像的逐步教程。

Swift-DocC 已包含在 Xcode 13 工具中,人们已经开始为他们的代码添加更多文档。在 WWDC21 上发布时,一些工程师提到 Swift-DocC 将作为开源发布。而现在,这一天已经到来,并支持多个平台。

Swift-DocC 的开发目标如下

概览

Swift-DocC 包含工具和库,可帮助开发者在包括 macOS 和 Linux 在内的多个平台上编写和生成文档,目标是支持所有具有 Swift 工具链的平台。docc 命令行工具已集成到 Xcode 13 中,其架构方式可以与其他构建系统(如 SwiftPM)集成。开源项目由多个组件组成,其中一些组件本身可能就很有趣,可以用于构建其他开发者工具。这些组件包括

该工具理解 Swift 社区中已流行的 Swift 文档注释语法,这些语法在 JazzySwiftDoc 等杰出工具以及 Xcode 等 IDE 中都有体现。它还添加了一些新的语法特性。例如,双反引号 ``SymbolName`` 语法可以在符号之间创建链接。一个示例

源文件文档注释

/// A model representing a sloth.
///
/// You can create a sloth using the ``init(name:color:power:)`` initializer, or
/// create a randomly generated sloth using a ``SlothGenerator``:
///
/// ```swift
/// let slothGenerator = MySlothGenerator(seed: randomSeed())
/// let habitat = Habitat(isHumid: false, isWarm: true)
/// do {
///     let sloth = try slothGenerator.generateSloth(in: habitat)
/// } catch {
///     fatalError(String(describing: error))
/// }
/// ```
public struct Sloth {  }

渲染后的网站

The rendered version of the Sloth page

下一步是什么?

与 Swift 工具集成

构建文档应该像构建代码一样容易。为此,接下来的步骤之一是将 Swift-DocC 包含在核心 Swift 工具中,以便所有 Swift 开发者都可以从项目一开始就轻松地为他们的代码编写文档。

与核心 Swift 工具的其他组件一样,该项目将遵循 Swift 演化流程,首要任务之一是设计与 Swift Package Manager 的集成,使用可扩展的插件。很快,Swift 开发 trunk 快照(对于 Swift 5.5 之后的版本)将包含 Swift-DocC 工具。

要了解更多关于 Swift-DocC 未来发展的信息,请查看论坛上的 Swift-DocC 项目发布公告帖子

采纳

为了开始使用,Swift-DocC 项目本身生成的文档托管在 swift.org/documentation。更长远的目标包括为更多软件包添加文档,以及迁移标准库和其他文档在 上的文档。这将使社区更容易参与到 Swift 的文档编写和教学中。

参与进来

我们非常欢迎您的经验、反馈和贡献!

有问题?

请随时在 相关主题帖Swift 论坛上发布关于这篇文章的问题。