WWDC Quick Look 💓 By SwiftGGTeam
Improve the discoverability of your Swift-DocC content

Improve the discoverability of your Swift-DocC content

观看原视频

Highlight

Swift-DocC 网页文档新增左侧导航栏和过滤器,开发者可以按主题层级浏览、按关键词搜索、按标签筛选;而文档作者通过 Topic Group 组织内容,能让使用者更快找到所需 API。

核心内容

文档写好了,开发者找不到

很多框架的文档按类型自动分组:教程、文章、协议、结构体……这种组织方式对熟悉框架的人够用,但对新手来说,面对几十个 API 列表,不知道从哪里开始。

Apple 文档团队的设计师 Bea 用”地图”做比喻:好的地图帮你理解区域边界、找到从一个地方到另一个地方的路径。文档导航也一样,要让开发者理解框架能做什么、怎么找到想要的页面。

三步优化文档可发现性

  1. 定义高层主题:把框架功能归纳成几个核心主题
  2. 按重要性和具体程度组织页面:先展示广泛的基础内容,再深入具体的高级功能
  3. 优化分组标题:清晰、互斥、有描述性

详细内容

新的网页导航体验

00:49

Swift-DocC 网页文档现在有两栏布局:

  • 左侧导航栏:可展开的树形结构,展示 API 层级关系
  • 右侧内容区:自适应不同屏幕尺寸
  • 底部过滤器:输入关键词快速定位符号
  • 标签筛选:按 Articles、Tutorials、Deprecated 等标签过滤

导航栏和内容区分离,切换页面时导航状态保持。展开 disclosure indicator 可以深入查看类型层级,不需要打开页面就能预览子内容。

过滤器支持实时搜索。输入 “Habitat” 后,导航栏只显示匹配的页面。选择 Tutorials 标签,能快速找到 “Meet SlothCreator” 这类教程页面。

从自动组织到手动策展

02:56

默认情况下,DocC 按类型自动组织文档:教程、文章、协议、结构体等。这是不错的起点,但可以做得更好。

以 SlothCreator 框架为例,Bea 定义了四个主题组:

# ``SlothCreator``

@Metadata {
    @TechnologyRoot
}

## Overview

Create and care for virtual sloths.

## Topics

### Essentials
- <doc:Getting-Started-with-Sloths>
- <doc:Meet-SlothCreator>
- ``Sloth``

### Sloth Creation
- ``SlothGenerator``
- ``NameGenerator``
- ``PowerGenerator``

### Sloth Views
- ``SlothView``
- ``SlothMapView``
- ``SlothCard``

### Care and Feeding
- ``CareSchedule``
- ``FoodGenerator``
- ``Sloth/Food``

关键点:

  • ## Topics 区域定义主题分组
  • 每个 ### 是一个 Topic Group,出现在导航栏中
  • <doc:Article-Name> 引用文章,用 `SymbolName` 引用 API
  • 分组顺序很重要:先放入门内容,再放核心功能,最后放高级功能

定义高层主题

04:15

主题组是开发者进入文档后最先看到的内容。以 SlothCreator 为例:

  • Essentials:入门内容,教程和核心概念
  • Sloth Creation:创建树懒的核心功能
  • Sloth Views:展示树懒的各种视图
  • Care and Feeding:照顾和喂养树懒

每个页面建议不超过 10 个主题组。选项越少,开发者越容易做出下一步选择。

按重要性和具体程度组织

06:44

Essentials 组放在最前面,包含最重要的入门内容:

### Essentials
- <doc:Meet-SlothCreator>           // 教程:一步步学习
- <doc:Getting-Started-with-Sloths> // 文章:概念性介绍
- ``Sloth``                          // 核心 API

其他组按使用流程排列:先创建(Sloth Creation),再展示(Sloth Views),最后管理(Care and Feeding)。

在每组内部,也遵循从广泛到具体的顺序:

### Sloth Views
- ``SlothView``      // 最常用的基础视图
- ``SlothMapView``   // 特定场景的地图视图
- ``SlothCard``      // 更具体的卡片视图

关键点:

  • 导航树越往下,内容越具体、越高级
  • 先展示广泛的基础内容,再深入具体功能
  • 这种层次结构让开发者能按自己的需求深入

优化分组标题

08:05

好的主题组标题有三个特征:

  1. 清晰描述:标题本身就能说明内容,不需要额外上下文

    • 差:“Management”(太宽泛)
    • 好:“Care and Feeding”(具体说明是照顾和喂养)
  2. 互斥性:不同组的标题不能互换

    • 差:“Fueling Superpowers”、“Getting Magical Abilities”、“Casting Enchantments”(三个标题内容重叠)
    • 好:合并成一个 “Magical Abilities” 组
  3. 鼓励意外发现:把相关主题放在一起

    • 在 Essentials 旁边放 “Getting Magical Abilities”
    • 学习基础内容时,开发者可能发现”原来还能这样”

组织结构的实际效果

优化前后的导航对比:

优化前(自动组织):

SlothCreator
├── Articles
├── Tutorials
├── Protocols
├── Structures
├── Classes
└── Enumerations

优化后(手动策展):

SlothCreator
├── Essentials
│   ├── Meet SlothCreator (tutorial)
│   ├── Getting Started with Sloths (article)
│   └── Sloth
├── Sloth Creation
├── Sloth Views
└── Care and Feeding

关键点:

  • 自动组织按类型分类,对新手不友好
  • 手动策展按功能主题分类,符合开发者的心智模型
  • 主题组让文档首页成为一张”地图”

核心启发

  • 给框架文档重写 Topic Group 组织 打开现有文档,看看是不是还在用自动组织的类型分类。把 API 按功能主题重新分组,给每个组起个清晰的名字。这是让文档从”能看”变成”好用”的最快方式。

  • 为每个模块写一个 Essentials 主题组 把最重要的教程、入门文章和核心 API 放在 Essentials 里。这是新用户最先看到的内容,决定了他会不会继续深入。

  • 检查分组标题是否互斥 看看文档里的主题组标题,有没有两个标题内容可以互换。如果有,合并它们或者重新命名,让每组有明确的边界。

  • 在相关主题旁边放”意外发现”内容 基础内容旁边放一两个高级功能的链接。开发者在学习基础时可能发现”原来还能这样”,这种惊喜能提升对框架的好感。

  • 用过滤器验证文档结构 发布文档后,自己用过滤器搜索几个常见关键词。如果找不到或者路径太长,说明组织结构还需要调整。

关联 Session

评论

GitHub Issues · utterances