扩展
扩展是 AsciiDoc 成功的核心,因为它们为该语言开辟了新的用例。Asciidoctor 提供了一个 扩展 API,它提供了扩展点的超集。因此,Asciidoctor 中的扩展易于编写,功能强大且易于分发。
Asciidoctor 还允许使用编程语言的全部功能(无论是 Ruby、Java、Groovy 还是 JavaScript)来编写扩展。您无需大费周章即可获得所需的功能,并且可以使用 gem 或 JAR 等事实上的标准打包机制来分发扩展。
可用的扩展点
Asciidoctor 提供以下扩展点
- 预处理器
-
在将原始源行传递给解析器之前处理它们。请参阅 预处理器扩展。
- 树处理器
-
解析完成后处理 Asciidoctor::Document (AST)。请参阅 树处理器扩展。
- 后处理器
-
在文档转换完成后、写入磁盘之前处理输出。请参阅 后处理器扩展示例。
- 文档信息处理器
-
向生成的文档的页眉或页脚区域添加额外内容。请参阅 文档信息处理器扩展示例。
- 块处理器
-
处理带有自定义块样式的(即
[custom])内容块。(类似于 AsciiDoc 过滤器)请参阅 块处理器扩展示例。 - 复合块处理器
-
注册一个名为
collapsible的自定义块,该块将列表块转换为复合块。请参阅 复合块处理器示例。 - 块宏处理器
-
注册并处理自定义块宏(例如
gist::12345[])。请参阅 块宏处理器扩展示例。 - 内联宏处理器
-
注册并处理自定义内联宏(例如
保存)。请参阅 内联宏处理器扩展示例。 - 包含处理器
-
处理
include::<filename>[]指令。请参阅 包含处理器扩展示例。
在 Asciidoctor 扩展实验室 中还有其他扩展示例。