源代码块是列表块的一种特殊形式。开发人员习惯于看到彩色的源代码以突出代码结构(即关键字、类型、分隔符等)。这种技术被称为[.term]语法高亮。由于这种技术非常普遍,AsciiDoc处理器将至少集成一个库来对文档中的源代码块进行语法高亮显示。例如,Asciidoctor提供了与Rouge、CodeRay、Pygments 和 highlight.js 的集成,以及添加对额外库支持的适配器API。

源代码块语法 显示了一个使用 source 样式和 ruby 语言的列表块,因此它是一个源代码块。

源代码块语法
Unresolved directive in source-blocks.adoc - include::example$source.adoc[tag=src-base]

源代码块语法的结果如下所示。

Unresolved directive in source-blocks.adoc - include::example$source.adoc[tag=src-base]

因为`source`区块通常用来指定某种特定语言的源代码块,所以`source`的样式本身是可选的。仅仅在列表块上出现语言,就自动将其提升为源代码块。

隐含的源代码块 显示了一个暗示为源代码块的列表块,因为指定了一种语言。

隐含的源代码块
Unresolved directive in source-blocks.adoc - include::example$source.adoc[tag=src-implied]

如果在文档上设置了`source-language`属性,这种简写也同样适用,它作为源代码块的默认语言。如果在文档上设置了`source-language`属性,并且你想要创建一个常规的列表块,请向块中添加`listing`样式。

在源代码块中使用include指令

你可以使用include指令来直接从文件中插入源代码到AsciiDoc文档中。

从另一个文件插入的代码
Unresolved directive in source-blocks.adoc - include::example$source.adoc[tag=src-inc]
Tip
如果您在源代码块中使用 subs 属性指定自定义替代,如果您想要保留语法高亮,请确保包括`specialcharacters`替代。然而,如果您计划修改替代,我们建议使用 增量替代