DITA 1.3 发布六年多之后,焕然一新的 DITA 2.0 要来了!
这是 DITA 历史上的第一次全面改版。改版的宗旨只是两个字 —— 精简。
DITA 2.0 将增加些许万众期待的新元素,但更多的是移除 DITA 1.3 中的那些鲜少人用的元素和属性们。
为了轻装上阵、未来可期,DITA 2.0 不兼容 DITA 1.x (向下不兼容)。也就是说,如果升级到 DITA 2.0 之后,你此前使用 DITA 1.x (如 DITA 1.3)编写的很多文件将有可能失效。比如,任务型主题(task)。
毫无疑问,DITA 2.0 的向下不兼容会让 DITA 软件的开发者们平白多出不少工作,而且他们已经在忙忙忙了。对于很多技术写作人员(DITA 软件的使用者)来说,升级到 DITA 2.0 也意味着要有很多粗活要做了。
知者行之始,行者知之成。本文以 OASIS DITA 技术委员会发布的官方文档为基础,总结了 DITA 2.0 中对技术写作人员有重要影响的变化点们。
构成
DITA 2.0 由两部分构成:基础版(base)和技术文档版(technical content)。
其中,DITA 1.3 中的教育培训类(learning and training)内容被全部删除,不再属于 DITA 2.0 的内容。
DITA 1.3 和 DITA 2.0 的构成
类别 | DITA 1.3 |
DITA 2.0 |
---|---|---|
基础版 | ✔️ | ✔️ |
技术文档版 | ✔️ | ✔️ |
教育培训版(类) | ✔️ | ❌ |
DITA 2.0 基础版和技术文档版被分成两个独立的文件包,不再像 DITA 1.3 那样整合在一个文件包里。
DITA 2.0 基础版预计将于今年 10 月份发布,技术文档版预计将于今年 12 月份发布。
虽然 DITA 2.0 仍在开发过程中,但其说明书样稿会随着开发进程定期更新。你可以通过 OASIS DITA 技术委员会的 Github 存储库获取最新的说明书样稿。 ↓↓↓
DITA 2.0 基础版:
https://github.com/oasis-tcs/dita
DITA 2.0 技术文档版:
https://github.com/oasis-tcs/dita-techcomm
文末的参考资料,提供 DITA 2.0 说明书样稿(PDF 文件)的下载地址。
主题类型
技术文档版 DITA 2.0 中定义了 7 种主题类型,删除了 DITA 1.3 中的器械操作(任务)型主题(machinery task)。
DITA 1.3 和 DITA 2.0 的主题类型
主题类型 | DITA 1.3 |
DITA 2.0 |
---|---|---|
concept | ✔️ | ✔️ |
reference | ✔️ | ✔️ |
genearl task | ✔️ | ✔️ |
task | ✔️ | ✔️ |
machinery task | ✔️ | ❌ |
glossary entry | ✔️ | ✔️ |
glossary group | ✔️ | ✔️ |
troubleshooting | ✔️ | ✔️ |
虽然器械操作型主题以及教育培训类的主题们不再属于 DITA 2.0 的内容,但 OASIS DITA 技术委员会仍会更新相关的源代码,使其与 DITA 2.0 兼容。因此,未来支持 DITA 2.0 的软件预计仍会支持(或部分支持)创建这些类型的主题们。
由于这些主题类型已不再属于 DITA 2.0,相关的源代码已经被迁移到一个专门的 Github 存储库中:
https://github.com/oasis-open/dita-specializations
元素
删除的元素
DITA 2.0 删除了以下几类元素:
- 早已决定废弃的元素
- 为未来预留的元素
- 为了保持 DITA 1.3 的向下兼容才保留的元素
- 本来就不应该(因错误决策才)添加到 DITA 1.x 中的元素
DITA 2.0 中删除的元素
删除的元素 | 替代元素 |
---|---|
<anchor> <anchorref> |
- |
<boolean> |
<state> |
<hasInstance> <hasKind> <hasNarrower> <hasPart> <hasRelated> |
- |
<index-base> <index-sort-as> <indextermref> |
- |
<itemgroup> |
- |
<longquoteref> |
- |
<relatedSubjects> <subjectRelTable> <subjectRelHeader> <subjectRel> <subjectRole> |
- |
<substeps> <substep> |
<steps> <step> |
<sectiondiv> |
<div> |
<titlealts> |
- |
<topicset> <topicsetref> |
- |
上表中的替代元素均是 DITA 1.3 中已有的元素。在 DITA 2.0 中,推荐使用这些替代元素来取代已删除的元素。
在这些删除的元素中,<substeps>
和 <substep>
恐怕是最广为人知、影响最为广泛的了。DITA 2.0 会优化 <steps>
的元素定义,使其可以自嵌套,以替代 <substeps>
。(详见下文)
优化的元素
<steps>
- 支持自嵌套。DITA 1.3 的任务型主题只能包含一级子步骤。而 DITA 2.0 允许创建二级及以上的子步骤。
<simpletable>
- 允许为表格添加标题。
- 允许跨行或跨列合并单元格。
<hazardstatement>
- 重新定义了元素结构,使其符合 ANSI X 535.6 标准。
- 允许添加多个安全图标。
<prop>
<revprop>
- 增加
@outputclass
属性。输出 HTML 文件时,该属性及其属性值会被添加到相应的 HTML 元素上。 -
<prop>
和<revprop>
属于 DITAVAL 中的元素。 <example>
- 允许在更多元素中使用。
<bookmap>
<booklists>
- 重新定义了元素结构。
<titlehint>
- 替代没有设置
@locktitle
属性的<navtitle>
元素。
新元素
<audio>
<video>
<media-source>
(子元素)<media-track>
(子元素)<fallback>
(子元素)- 插入 音频 和 视频 。
<hwcontrol>
<partno>
- 表示 硬件上的控制类器件 和 零件编号。
<diagnostics>
<diagnostics-general>
<diagnostics-steps>
- 用于故障排查型主题(troubleshooting)中的故障诊断。
<strong>
<em>
- 表示重点文本或有特殊含义的文本。与在 HTML 中的用法相同,比标签
<b>
和<i>
的语义更明确。 <keytext>
- 在 DITA map 中定义键(
@keys
)时,<keytext>
用于表示变量的值或链接文本。 <titlealt>
- 存储文档的元数据信息,但编译方式取决于属性
@title-role
的设定值。 - 只能在
<prolog>
和<topicmeta>
这两个元素中使用。 <mapresources>
- 表示一组只能被引用(resource-only)的对象。这些对象可以是键值定义,也可以是 DITA map 或主题。
<include>
- 主要用作定制其他元素的基础元素,比如
<coderef>
、<svgref>
和<mathmlref>
。
属性
删除的属性
DITA 2.0 删除了以下几类属性:
- 早已决定废弃的属性
- 为未来预留的属性
- 为了保持 DITA 1.3 的向下兼容才保留的属性
- 本来就不应该(因错误决策才)添加到 DITA 1.x 中的属性
DITA 2.0 中删除的属性
删除的属性 | 替代物 |
---|---|
@copy-to |
<resourceid> |
@domain |
@specialization |
@lockmeta |
<lockmeta> |
@mapkeyref |
- |
@navtitle |
<navtitle> |
@print |
@deliveryTarget |
@query |
- |
@refcols |
- |
@role="sample" @role="external" |
- |
@spectitle @specentry |
- |
@xtrf @xtrc |
- |
<hazardsymbol>/@longdescref |
- |
<image>/@alt |
<alt> |
<image>/@longdescref |
<longdescref> |
<linkpool>/@collection-type <linklist>/@collection-type |
- |
<lq>/@type="internal" <lq>/@type="external" |
<lq>/@scope <lq>/@format |
<map>/@title |
<title> |
<navref>/@keyref |
- |
<note>/@type="fastpath" |
- |
<reltable>/@collection-type <relcolspec>/@collection-type |
- |
<topichead>/@locktitle <topicgroup>/@locktitle |
- |
优化的属性
@chunk
- 重新定义了属性值列表。删除了 DITA 1.3 中的所有属性值,然后重新定义了两个属性值 ——
combine
和split
。
参考资料
- DITA-2.0-specification, draft, 2022-02-15.
- DITA-2.0-technical-content-specification, draft, 2021-10-04.
- Top Considerations for DITA 2.0
- DITA 2.0: A NOT backwards compatible release (webinar announcment)
- Stage two: #36 Remove deprecated
- DITA 2.0 Specification Support Cheat Sheet