大多数浏览器和
Developer App 均支持流媒体播放。
-
使用 Swift-DocC 创建丰富的文档
了解如何利用 Swift-DocC 的最新功能为你的 App 或框架创建丰富而详实的文档。我们将向你展示如何使用 Xcode 15 文档预览编辑器高效迭代现有项目的文档,并探索扩展的各创作功能,例如基于网格的布局、视频支持和自定义主题。为了充分利用本次讲座,你最好对 Swift-DocC 文档的基础知识有一定的了解。
章节
- 0:00 - Introduction and overview of Swift-DocC
- 3:33 - Building and browsing documentation in Xcode
- 6:21 - Documenting Swift extensions
- 8:05 - Activating the Documentation Preview editor
- 9:44 - Adding an image to your documentation
- 12:06 - Organizing documentation pages into Topic Groups
- 13:53 - Using Swift-DocC directives to create rich documentation pages
- 25:12 - Theming the online version of your documentation
- 28:29 - Publishing and browsing documentation on the web
- 31:02 - Quick navigation
资源
相关视频
WWDC23
WWDC22
WWDC21
-
下载
♪ ♪
Ethan:大家好! 欢迎来到 “使用 Swift-DocC 创建丰富的文档” 我是 Ethan Swift-DocC 团队的一名工程师 Xcode 15 竭力为 Swift-DocC 文档提供了丰富的新功能 这些功能不仅能 让你的文档别具一格 还为你提供了向读者 介绍 App 或框架时 更有效的工具 通过 Xcode 15 全新的 文档预览编辑器 无需离开源编辑器 你也可以迭代文档 我迫不及待地想向你展示了 让我们先快速 了解一下 Swift-DocC Swift-DocC 是直接集成到 Xcode 中的文档编译器 有了它 你就可以在 对照源代码的情况下 同时为项目编写和发布精美的文档 你可以混合使用直接在 源代码中编写的文档注释 和独立的 Markdown 文件 来编写高级概念内容 和详细的技术文档 该文档与静态网络托管解决方案 开箱即兼容 并允许直接发布到 GitHub Pages 和 Netlify 等服务 当然 你的文档也会出现 在 Xcode 的内置文档窗口中 并通过快速帮助集成到 Xcode 的源编辑器中 这意味着你编写的文档 将可自动供任何有权 访问源代码的人使用 而无需你做任何额外的工作 自 Swift-DocC 在 Xcode 13 中发布以来 Swift-DocC 项目已开源 并且现已公开开发 我们与 Swift 社区合作 为你的所有项目增加文档支持 包括支持 Swift、Objective-C 或两者混合编写的 App 和框架 Xcode 15 将编写 Swift-DocC 文档的体验 提升到了一个全新的水平 文档预览编辑器 为你提供了输入内容时 文档渲染版本的实时视图 并在每次按键时提供反馈 通过全新的创作功能 如基于网格的布局、 视频支持、自定义页面图标 甚至完全自定义的主题 你可以为你的项目 制作提供支持的定制文档 本次讲座将重点介绍 Swift-DocC 的一些更高级的功能 因此 如果这是你 第一次学习 Swift-DocC 我建议你先看看 “认识 Xcode 中的 DocC 文档” 和“在 Xcode 提升 DocC 文档” 这两个讲座将介绍 我们改进今天文档的计划框架 并指导你完成 为一个全新的项目 添加第一批文档的过程
今天我们首先介绍一个使用 Xcode 15 文档预览编辑器 编写文档的新工作流 我们将使用新的编辑器 因为我们将通过一些新的 Swift-DocC 功能 来增强框架的现有文档 为了让 web 版本 与现有网站相一致 接下来 我们将为文档 创建一个自定义主题 最后 在网络上发布文档之后 我们将介绍 Xcode 15 为所有 Swift-DocC 网站 带来的全新导航功能 让我们开始吧
在过去的几年里 我和我的团队一直在开发一个 名为 SlothCreator 的 Swift 包 SlothCreator 是一个 可以导入到 iOS App 中的框架 用于编目、定制和显示小树懒 我们希望 SlothCreator 能够 在更多 iOS App 中使用 所以我们一直在寻找 提高其文档质量的方法 我在 Xcode 15 中打开了 SlothCreator 的 Swift 包 让我们先来评估其文档的当前状态 将鼠标移至 Product 菜单 并选择 Build Documentation
Xcode 会将我的项目 及其文档一同构建出来 然后打开文档窗口 这是你可以在自己的项目中尝试的 即使你没有专门为 Swift-DocC 编写任何文档 Swift-DocC 自动为你 项目中的相关 API 创建页面 包括你可能为其编写的 任意文档注释 因此你可能会惊讶于这些 文档开箱即用的便捷程度 更棒的是 当你选择 Build Documentation 时 Xcode 还将为你的项目 的所有依赖项生成文档 所以如果你依赖任何第三方库 比如 SlothCreator 这些内容也会出现 这是 SlothCreator 的文档首页 其以一个总结性句子为开始 随后概述该框架的全部内容 我把页面往下拉一点 来到 Topics 部分 Topic 的作用是将文档的不同页面 组织成合理的组别 首先我们有 Essentials 其中包含 为框架新读者提供的介绍性文档 然后是一个包含符号的组 帮助创建树懒 以及照顾和喂养树懒等等 组织良好的主题分组是创建 可发现且可访问的项目文档的关键 我建议你观看 “提高 Swift-DocC 内容的可发现性” 学习一些高级技术 让读者能够轻松浏览你的文档 让我们打开 Sloth 结构的文档 点按文档链接
Sloth 的文档真的 很不错 概述到位 包含了相关页面的内联链接 一个帮助我入门的代码示例 以及因组织良好而有助于 发现相关符号的 Topic 组 点按后退按钮导航回 SlothCreator 的首页 现在继续向下滚动页面 我对这里的组织方式非常满意 但在页面的最底部 我看到了一个以前从未见过的符号 即 SwiftUI 模块 好吧 事实证明 这个符号的出现 是因为 Xcode 15 中的 一个新 Swift-DocC 功能 即拓展支持 通过 Xcode 15 现在可以记录你对 属于其他框架的类型所做的扩展 扩展是一个强大的 Swift 语言功能 它允许你为原始源代码无法访问 的类型添加功能 例如 你可以扩展 SwiftUI 的 View 协议 为你的 App 添加一些额外的功能 现在你可以将这些扩展符号 与你的 App 或框架的 其他部分一起录入文档 这项新功能完全由社区贡献驱动 涉及 Swift-DocC 和 Swift 编译器之间的协调更改 让我们看看如何当场使用它 完善 SlothCreator 的文档 单击 SwiftUI 扩展模块
SlothCreator 扩展了 SwiftUI 的 Image 结构 所以 Image 作为一个 扩展出现在了这里 打开 Image 页面 可以 看到添加了一个初始化程序 这个初始化程序的文档 涵盖了正确的基本内容 但似乎还没有达到 我之前看的 Sloth 结构的质量 让我来改进一下 将鼠标移至项目导航栏上 选择 ImageExtensions 文件 打开包含我的扩展的 Swift 文件
关闭项目导航栏
这是基于 Sloth 的 Image 初始化程序的声明
声明的正上方是该符号的文档注释 由其前面的三个正斜杠定义 我想为这个初始化程序 添加一些额外的文档 用 Xcode 15 编写文档的最佳方法 是使用新的文档预览编辑器 要激活文档预览辅助编辑器 可以先打开 Editor Options 菜单
然后选择 Assistant 项 点按辅助编辑器的 跳转栏 即可开启辅助模式 最后 选择 Documentation Preview 大功告成 现在 当你在 Swift 源文件、 Objective-C 头文件和文档 Markdown 文件之间移动时 文档预览将始终保持活跃 让我们在 SlothCreator 中尝试一下
很好 我会先创建 Discussion 部分 Swift-DocC 将文档注释的第一行 作为页面的摘要或概括句 接下来的一段用作 Discussion 部分 输入“使用这个初始化程序显示 一个给定树懒的图像表示” 当我输入时 文档预览会实时更新 显示符号文档的渲染版本 接下来 我想添加一个代码示例 向大家展示如何在 实践中使用这个初始化程序 我先使用 Markdown 的 隔离代码块语法创建一个代码块
我将指定“Swift”为源语言 用于语法突出显示 随后粘贴我的代码示例
该示例演示了如何创建一个 渲染冰树懒图像的 SwiftUI 视图 由于该示例涉及 UI 我认为这里最好提供 结果视图的截屏 我已经在桌面上准备好了所需截屏
但要在我的文档中 实际使用这个截屏 我首先需要将图像添加到 SlothCreator 的文档目录中 文档目录是一个可以添加到 你的 Swift 包或 Xcode 项目中的文件目录 并以 Markdown 文件、图片 和视频的形式提供额外的文档内容 你可以在此处 放置较长的文章和教程 你添加的任何图片或视频 都可以从文档注释中引用 如果展开项目导航栏 我可以看到 SlothCreator 已经有一个文档目录 所以我只需拖入 截屏的明暗模式版本即可
我可以把图片放在 文档目录中的任何地方 Swift-DocC 自然会找到它们 这给了我选择 如何组织目录的灵活性 从而构建对我和 我的团队最有价值的结构 所以当我想在页面上 加入一个图像时 我只需通过其基本 文件名就能引用该图像 同样重要的是要注意 文档目录中包含的 图片和其他文件只能用于文档 例如 如果你想在 App 中加入图像 可以使用资源目录 现在我准备将截屏 添加到我的文档中 我使用 Markdown 的图片语法 提供作为 alt 文本的 描述文件和图片的文件名 请注意 我在这里 只使用了基本文件名 DocC 会自动计算出 适当的明暗模式版本 最后 添加一些 结论性文字 文档完成
不错 文档预览编辑器使得为这个符号 创建扩展性文档变得直接而有趣 接下来 我打算把该方法 用到首页的 Topic 组中 让这个方法路径更加完善 我将激活项目导航栏 并在文档目录中选择 “SlothCreator”的 Markdown 文件 文档预览编辑器现在显示 SlothCreator 首页的渲染内容 能够使用预览编辑器 来更好地理解 DocC 语法 是如何工作的 这可真是太棒了 例如 我可以看到主题组是由 第二级主题标题下的 第三级标题定义的 要把一个页面放到一个主题组中 就要在其中一个三级标题下 创建一个列表项 并链接到该页面 下面让我为扩展的 SwiftUI Image 类型执行此操作 由于图像扩展是用来 在用户界面上显示树懒的 我认为它属于与渲染树懒 有关的其他符号 属于 Sloth Views 主题组 所以我将其链接到相应组中 代码补全能够提供对该类型的引用
很好 现在 SlothCreator 的图像扩展文档 归档全面且组织良好 自从 SlothCreator 文档首次发布以来 我们收到了一些反馈 要求 提供一个示例代码项目 演示该框架的一些基本原理 为此 我们整合了一个 名为 Slothy 的小程序 由 SlothCreator 提供支持 我的同事已经把团队想 包括在 SlothCreator 主文档中的 一篇文章的粗略草案整合好了 该文章链接到新的 Slothy 样本 让我们一起来看看 首先 把文章的初稿添加到 SlothCreator 的文档目录中
这里的内容已经非常不错了 它引导我了解 示例 App 的各个功能 甚至包括 App 的截屏 和一个可以下载示例的存储库链接 但我觉得还有改进空间 幸运的是 Swift-DocC 的 一些新功能使改进成为可能 Swift-DocC 的创作语法是 在 Markdown 基础上产生的 如果熟悉 Markdown 你应该可以用链接、 图像、粗体和斜体文本 甚至表格来格式化自己的内容 然后 Swift-DocC 用指令 扩展了 Markdown 的基本语法 让你能够使用 为文档专门打造的功能
我现在要使用其中的一些指令 来润色 Slothy 的示例代码文章 但请记住 使用这些 指令的时候不要过于教条 其使用没有唯一正确的方法 也没有唯一适合 使用某个指令的页面 想想看 你可以用自己 喜欢的方式来使用这些指令 从而将项目的文档 打造得更容易理解、 更有吸引力、更令人兴奋 在深入研究并对 文章的布局进行修改之前 我想先确定其存在的具体问题 这样我就可以确定 当我采用这些新的指令时 我确实是在提升文档质量 对我来说 最突出的问题 就是那些不够突出的内容 这个页面的风格 和其他文章相差无几 尽管我的读者可能会对 有些示例代码特别感兴趣 就这一点而言 这篇文章 做出的最重要改进是 链接到示例代码的源代码库 尽管如此 示例代码链接 仍然很难识别和发现 接下来是文章的正文内容 此内容围绕两个图像段落对构建 每个段落都有一个 与其描述相关的图像 但有两个问题 首先 图像与对应段落 没有明确关联 其次 图像占据了太多的空间 这里的图片是为了突出对应的段落 但其本身并不是很有趣
最后 页面底部的一个部分 概述了 SlothCreator 的本地化支持 在这里 同样的截屏 有三种不同语言的版本 但是因为它们是垂直堆叠的 就都失去了与 本地化段落的所有关联 并且在视觉上占据了太多的空间 让我们看看如何使用 Swift-DocC 解决这四个问题 我们从文章的正文内容开始 我认为图片与对应 段落问题的正确解决方案 就是将它们放入网格中 这将更好地强调段落 相对于图像的重要性 并更好地建立图像 与对应段落的联系 在 Swift-DocC 中 网格 被定义为灵活的行和列 我将先定义包含一个两列的行
然后把段落放在第一列 图像放在第二列
效果我很满意 图像现在 与对应段落联系更明确了 但我认为在这种情况下 段落应该优先于图像 让我们加宽包含段落的列宽 我可以通过给第一列 添加一个 size 参数 并指定一个大于 默认值 1 的值来实现这一点 size 参数用于设置给定列的宽度 我先试着将参数值设为 3
第一列现在跨越了 四列网格中的三列 似乎有点太宽了 不然试试 2?
文字和图像看起来比较平衡 就这么办 让我们尝试对第二个 段落图像对进行相同的配置
这绝对是一种改进 但页面现在感觉有点失衡 让我们尝试翻转图像和段落
很好 这篇文章风格统一了 我们在本地化部分发现的问题是 图像占据了太多的垂直空间 因而看不到上下文 标签栏导航是这个 问题的完美解决方案 有了它 我就能将 多个元素折叠为一个 让我们试一下
创建一个包含三个 标签栏的初始标签栏导航结构
标签栏导航由一个 TabNavigator 指令定义 其中包含 任意数量的子 Tab 指令 每个标签的名字都作为参数 我把这三张图片 放在各自的标签栏中
现在我的读者可以随意点按任意标签 访问他们感兴趣的截屏
要想更上一层楼的话 我想添加一个短视频 真正吸引我的读者 让他们 在观看示例后就兴奋不已 Swift-DocC 有一个 视频指令 我现在将其插入
我还想添加一个海报图像 在视频播放前显示 包括视频本身和一段文字描述
不错 让我们进入介绍部分 我注意到的第一个问题是 很难找到访问 示例源代码存储库的链接 Swift-DocC 有一个号召性用语 正是为此而设计的 我将先在页面顶部 添加元数据容器指令 元数据指令用于指定 不直接在页面上呈现的额外信息 在本例中 我想将 号召性用语附加到页面中
我已经给出了 号召性用语的目的 URL 和用途 请注意 我使用了 值为“link”的用途 或者 如果这个链接直接指向下载 那我可以将值设为“download” 但在这种情况下 我链接的是源代码库 所以“link”是更好的选择 最后 我希望这篇文章从 SlothCreator 文档的 其他文章中脱颖而出 我想确保读者不要错过 这个页面包含的示例代码 事实证明 Swift-DocC 对包含示例代码的文章 有特殊支持 我将通过键入带有“sample code” 参数的 PageKind 指令 将页面类型指定为示例代码 渲染后的页面现在有一个 “Sample Code”标题 和一个大括号页面图标 这都让这篇文章的主题一目了然 现在 Swift-DocC 只支持 两个 PageKind 指令的值 即“article” 和“sample code” 我们很乐意了解 你感兴趣的其他默认页面类型 由于 Swift-DocC 是一个开源项目 Swift 论坛会是讨论此类话题 以及关于 DocC 如何更好满足你的文档需求的 任何其他反馈或想法的好地方
我认为对在自己的 App 中使用 SlothCreator 感兴趣的开发人员 会为这篇文章而十分兴奋 毕竟这篇文章引人入胜、 卓有想法且趣味横生 我想确保开发人员能发现这篇文章 让我们回到 SlothCreator 的首页 找到一个显著的位置链接到文章
首先 把新文章 组织到一个 Topic 组中 在这种情况下 我认为 Essentials 组是最合适的 因为我们希望 SlothCreator 框架的新读者 能够对 Slothy 示例感兴趣
这是一个好的开始 但我想更进一步 将这篇文章放在页面 比较通用的主题部分之上 Links 指令非常适合此目的 我将创建一个 Featured 组 然后插入 Links 指令
Links 是突出显示 某些页面的好方法 你可以使用 Links 以更高级的方式 为文档加入卡片图像和页面描述 Links 指令可以设置 一个视觉样式参数 定义链接应呈现的方式 然后在其主体中列出链接列表 就像一个 Topic 组一样 现在我链接到 Slothy 示例
链接支持多种视觉样式 从渲染得非常像 默认主题部分的基本列表 到详细的网格
我认为网格样式很好 但我想在此处用一个自定义图像 来代表 Slothy 示例 让我们回到 Slothy 的 Markdown 为了使这篇 Slothy 文章 为基于网格的 Links 部分 展示做好最佳准备 我需要在其元数据中 加入一个页面图像 开始吧
我会指定其用途为“card” 以便在将 Slothy 文章 渲染为 card 时使用此图像 然后提供图片的来源 和描述作为 alt 文本 返回 SlothCreator 的首页时
Slothy 已经有了自定义页面图像 我还打算加入一篇名为 “Getting Started with Sloths”的文章
作为画龙点睛之笔 我还将在首页 添加一些额外的元数据 从创建 Metadata 指令开始 就像我们之前做的那样 然后我会加入页面图像
这次我设置的用途 是“icon”而不是“card” 因此 此图像将用于 页面图标渲染的任意位置 包括页面的导航侧边栏和介绍部分 最后 我打算设置 一个自定义页面颜色
默认情况下 首页使用蓝色 但 Swift-DocC 提供了 许多内置的标准颜色 比如黄色、 紫色 和橙色 SlothCreator 一般 使用绿色作为强调色 所以我认为在这个页面使用绿色 会营造出更有凝聚力的体验
哇 SlothCreator 文档在短短的 时间内就取得了这么大的提升 我们使用了一些布局指令 如 Row 和 Column Tab Navigator 和 Video 让这篇示例代码文章 更流畅 吸引更多读者 我们还使用了 CallToAction 和 PageKind 等元数据指令 以对文章进行进一步打磨 我们使用 Links 指令优化特色内容 并使用 PageColor 和 PageImage 指令 让首页更为引人注目 我非常高兴能够分享 SlothCreator 的更新文档 但在我们将新版本发布到网络之前 让我先演示一下如何使用自定义主题 优化 SlothCreator 文档的在线呈现 具有自定义主题的 SlothCreator 文档 SlothCreator 的文档会作为 更大产品网站的一部分发布 我想确保文档站点 与产品站点在视觉上保持一致 使用相同的调色板和字体集 让我们看一下如何使用 Swift-DocC 中的自定义主题来实现这一目标 Swift-DocC 支持在 文档站点的给定部署中 完全自定义视觉样式的呈现方式 如颜色、边框、图标和字体 这些自定义是在一个 特殊的 JSON 文件中完成的 你可以将其包含在文档目录中 这些自定义设置可以 更好地将文档站点 与其他在线站点集成为一体 你可以使用 Swift-DocC 的 主题工具来匹配特定的企业风格 或者更好地配合 营销网站或个人博客 然而 主题化并不一定适用于 所有文档自定义设置 例如 如果你对定制 特定页面的外观感兴趣 就像我们对 SlothCreator 的 示例代码页所做的那样 那你应该在该页面上使用 指令而不是自定义主题 主题自定义是站点范围内的 而不是特定于页面的 还需要注意的是 Swift-DocC 主题 会更倾向于某一类部署 因此 如果你在 Xcode 中打开文档 文档仍然会用 Xcode 主题渲染 与其他 Xcode 文档 放在一起会看起来很棒 这意味着你可以将自定义 主题集中在网站的网页呈现上 不用担心它会影响 Xcode 中的阅读体验 但这也意味着 如果你希望 自定义代码同时出现在 Xcode 和网络上 最好只使用一种指令 让我们看看 SlothCreator 的自定义主题 Swift-DocC 中的主题是由一个 名为“theme-settings.json”的 JSON 文件定义的 你可以把该文件放在 项目的文档目录中 使用主题设置文件可以进行 多种不同类型的自定义 对于 SlothCreator 我只是 要自定义网站的颜色和字体 这些自定义项分别放在 “color”和“typography”部分
SlothCreator 在其营销材料中 使用了独特的绿色色调 而我也已经使用 PageColor 指令 将 SlothCreator 的 首页颜色设置为绿色 现在我可以使用 “standard-green”颜色变量 将特定的绿色阴影 设置为我想要的颜色 而且因为 SlothCreator 是 一个针对资深 Sloth 专业人士的 相当严肃的框架 我打算在其在线文档中 使用 Serif 字体 用“html-font”排版变量 就可以实现这一点 当然 这些自定义设置只是 Swift-DocC 主题功能 最基础的部分 如果你有兴趣进一步了解 我推荐你阅读 Swift-DocC 的说明文档 既然我们已经配置好了 “theme-settings.json”文件 我会将其添加到我的文档目录中
SlothCreator 的源代码 控制存储库已经配置了 持续集成 每当我们 推送提交的新内容时 都会使用“xcodebuild” 命令行工具 来构建和部署 SlothCreator 的文档 这是一个很好的 工作流程 可以确保文档 始终与框架中的最新更改保持同步 如果你想为自己的项目 设置类似的工作流程 请查看 Xcode 文档中的 Swift-DocC 部分 能发布我们一起做出的 这些改进 我真的很兴奋 抓紧提交并推送你的文档 一起体验网站的新部署吧 将鼠标移动到 Xcode 窗口的左上角 并激活源代码控制导航器 点按 Stage All 提交所有更改
点按 Commit 添加提交消息 最后点按 Commit and Push 提交并推送修改
现在 我打开 SlothCreator 的网站 这是 SlothCreator 产品网站的主页 网站使用的是与 SlothCreator 品牌相匹配的特定字体和颜色 单击“Read Documentation”按钮
打开 SlothCreator 的文档 网站版本有我们应用的自定义主题 含有独特的字体和绿色阴影 该主题还包含我们 设置的自定义图标 以及带有全新的 Slothy 示例代码文章的 诱人且别具一格的部分 点按“View sample code” 链接 打开示例代码 我对这篇文章的呈现效果非常满意 当然 Swift-DocC 网站还有 一个很棒的导航侧边栏 这使得我在 SlothCreator 的 Topic 部分组织的页面 导航起来更加简单易用 页面顶部是 Essentials 组 我们将 Slothy 示例代码文章、 入门文章“Getting Started”和 Sloth 结构都放在此处 单击左侧的下拉三角符号 展开 Sloth 结构 此时 我们就可以 浏览该结构的子节点 当然 这些符号在 主题组中也组织得井井有条 让我们检查一下之前 文档中的图像初始化程序 我将向下滚动到 Sloth 视图部分 展开图像扩展符号 并单击初始化程序 就是这个界面 作为文档作者 我喜欢导航侧边栏 有了它 我就能为 开发者打造直观的浏览体验 并真正指导他们 了解我的项目的 API 但有时作为文档阅读者 我确切地知道我在寻找哪个页面 只是需要一种简单的 方式直接跳转过去 使用 Xcode 15 构建的 Swift-DocC 网站拥有全新的快速导航功能 这使得页面之间的跳转 变得轻而易举 Swift-DocC 快速导航是 又一个由社区驱动的工作 我们非常高兴将其引入 所有 Swift-DocC 网站 与 Xcode 的 Open Quickly 功能类似 只需激活一个 快捷键并输入页面名称 就可以直接跳转到该页面 让我们试一下 按 Shift-Command-O 快捷键激活快速导航
我可以立即开始过滤 SlothCreator 文档中的所有页面 例如 如果我正在寻找一篇入门文章 我可能只需要输入“start”
看 找到了 我甚至可以在右侧预览这篇文档
按 Enter 键导航到该页面
但也许我需要一个关于 Sloth 不同功能的提示工具 再次按下 Shift-Command-O 然后输入“power”
就找到了 PowerPicker 接着看到一个“power”属性 啊 这就是关于 Power 的枚举 这次我通过“View more” 链接打开该页面
就像这样 我就可以查看 所有可用的 Sloth 功能 有了新的快速导航弹窗 和已有的导航侧边栏 Swift-DocC 使浏览文档 成为一种绝佳的体验 Xcode 15 中的 Swift-DocC 提供了强大的新工具 可以用于创建真正独特的文档网站 尝试一下全新的文档预览编辑器吧 你可以从探索不同的页面布局 以及了解如何实时渲染中获得乐趣 新的指令 如 Row 和 Column、 Links 和 PageImage 让你可以制作精美且 对项目有支持作用的文档 考虑是否应该添加一个自定义主题 以使文档的 web 版本 更好地与项目的品牌 或现有的线上形象一体化 若想了解 Swift-DocC 的最新情况 请查看 WWDC22 的 “Swift-DocC 中的新增功能”讲座 这场讲座会将深入介绍 Xcode 14 发布的新工作流 向你准确展示如何将内容 发布到 GitHub 页面等静态托管服务 如果你有兴趣通过一步一步的教程 进一步了解你的文档 我建议观看 “使用 DocC 构建交互式教程” 我很期待看到你用 Swift-DocC 和 Xcode 15 设计和发布的文档 谢谢大家 ♪ ♪
-
-
8:52 - Documenting a Swift extension
import SwiftUI /// An extension that facilitates the display of sloths in user interfaces. public extension Image { /// Create an image from the given sloth. /// /// Use this initializer to display an image representation of a /// given sloth. /// /// ```swift /// let iceSloth = Sloth(name: "Super Sloth", color: .blue, power: .ice) /// /// var body: some View { /// Image(iceSloth) /// .resizable() /// .aspectRatio(contentMode: .fit) /// Text(iceSloth.name) /// } /// ``` /// /// ![A screenshot of an ice sloth, with the text Super Sloth underneath.](iceSloth) /// /// This initializer is useful for displaying static sloth images. /// To create an interactive view containing a sloth, use ``SlothView``. init(_ sloth: Sloth) { self.init("\(sloth.power)-sloth") } }
-
16:31 - Creating a grid-based layout
@Row { @Column(size: 2) { First, you customize your sloth by picking its ``Sloth/power-swift.property``. The power of your sloth influences its abilities and how well they cope in their environment. The app displays a picker view that showcases the available powers and previews your sloth for the selected power. } @Column { ![A screenshot of the power picker user interface with four powers displayed – ice, fire, wind, and lightning](slothy-powerPicker) } } @Row { @Column { ![A screenshot of the sloth status user interface that indicates the the amount of sleep, fun, and exercise a given sloth is in need of.](slothy-status) } @Column(size: 2) { Once you've customized your sloth, it's ready to ready to thrive. You'll find that sloths will happily munch on a leaf, but may not be as receptive to working out. Use the activity picker to send some encouragement. } }
-
18:16 - Creating a tab navigator
@TabNavigator { @Tab("English") { ![Two screenshots showing the Slothy app rendering with English language content. The first screenshot shows a sloth map and the second screenshot shows a sloth power picker.](slothy-localization_eng) } @Tab("Chinese") { ![Two screenshots showing the Slothy app rendering with Chinese language content. The first screenshot shows a sloth map and the second screenshot shows a sloth power picker.](slothy-localization_zh) } @Tab("Spanish") { ![Two screenshots showing the Slothy app rendering with Spanish language content. The first screenshot shows a sloth map and the second screenshot shows a sloth power picker.](slothy-localization_es) } }
-
19:07 - Adding a video
@Video(poster: "slothy-hero-poster", source: "slothy-hero", alt: "An animated video showing two screens in the Slothy app. The first screenshot shows a sloth map and the second screenshot shows a sloth power picker.")
-
19:50 - Specifying a page's "Call to Action" link
@Metadata { @CallToAction(purpose: link, url: "https://example.com/slothy-repository") }
-
20:29 - Specifying a page's kind as "Sample Code"
@Metadata { @CallToAction(purpose: link, url: "https://example.com/slothy-repository") @PageKind(sampleCode) }
-
21:55 - Using the "Links" directive to feature content
@Links(visualStyle: detailedGrid) { - <doc:GettingStarted> - <doc:SlothySample> }
-
22:55 - Specifying a page's card image
@Metadata { @PageImage( purpose: card, source: "slothy-card", alt: "Two screenshots showing the Slothy app. The first screenshot shows a sloth map and the second screenshot shows a sloth power picker.") }
-
23:41 - Specifying a page's icon image
@Metadata { @PageImage( purpose: icon, source: "slothCreator-icon", alt: "A technology icon representing the SlothCreator framework.") }
-
23:42 - Specifying a page's color
@Metadata { @PageColor(green) }
-
27:04 - theme-settings.json
{ "theme": { "color": { "standard-green": "#83ac38" }, "typography": { "html-font": "serif" } } }
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。