在Asciidoctor解析AsciiDoc文档之后,它会使用一个转换器来生成您选择的输出格式,例如HTML、DocBook或PDF。Asciidoctor包含了一些built-in converters。Asciidoctor项目提供additional converters,您可以添加这些分开发布的转换器。您也可以选择create your own converter,或使用第三方发布的转换器。

当使用转换器时,理解转换器和后端之间的区别是非常重要的。本页面将解释这种差异,同时还会提供更多关于转换器功能的背景知识。

什么是转换器?

转换器接受AsciiDoc格式的输入,并将其转换为不同的格式。更具体地说,它按照文档顺序处理解析后AsciiDoc文档中的每个节点(即块元素或内联元素),并返回一个转换片段,然后处理器将这些片段结合起来创建最终的输出文档。每个转换器都生成特定的输出格式,如HTML或DocBook XML。

Asciidoctor 提供了几种内置转换器以及添加其他转换器的设施。

除了从AsciiDoc文档生成传统的文章和书籍外,您还可以使用Asciidoctor创建基于HTML的幻灯片展示、静态网站和文档站点。在使用这些附加转换器时,您可能需要在文档中包含一些额外的结构规则。然而,这种结构中的任何内容都不会限制您也能将内容作为普通文档发布。

什么是后端?

每个转换器都通过后端标识符与一个输出格式相关联。从用户的角度来看,后端代表期望的输出格式。转换器将使用后端标识符注册自己,以声明它产生该输出格式。例如,内置HTML 5转换器的后端标识符是`html5`。因此,从处理器的角度来看,后端是它用来识别使用哪个转换器的值。

Note
术语`backend`经常与转换器的名称可以互换使用。例如,当有人讨论HTML 5转换器时,你可能听到“the html5 backend”。然而,这些术语之间有一个重要的区别。

一个自定义转换器既可以引入也可以回收一个后端标识符。由于转换器可以回收后端标识符,我们不能说后端普遍等同于给定的转换器。而是,后端标识符通知处理器根据当前注册的内容选择哪个转换器来处理请求的后端。

用户通过指定`backend`文档属性,-b--backend)命令行选项,或`backend` API选项(例如,--backend=docbook5)来选择使用哪个转换器转换文档。可以分别使用别名`html`和`docbook`来指代`html5`和`docbook5`后端。

总的来说,转换器是一种软件组件,它负责将解析后的AsciiDoc文档转换成可发行的输出格式。后端代表了用户将AsciiDoc文档转换成特定格式(例如,`html5`表示HTML 5)的意图。后端也作为一个标识符,告诉处理器使用哪个转换器。多个转换器可以绑定(即,对)相同的后端,以向用户提供生成特定输出格式的替代方法。例如,后端`pdf`可能由Asciidoctor PDF满足,但它也可能映射到不同的实现。最后一个向后端注册自己的转换器将会胜出。