Highlight.js

Highlight.js 是一个流行的客户端语法高亮库,支持广泛的语言

激活 highlight.js

要激活 highlight.js,请在 AsciiDoc 文件的头部添加以下属性条目

:source-highlighter: highlight.js

默认情况下,Asciidoctor 会链接到托管在cdnjs上的 highlight.js 库和样式表。Asciidoctor 从 CDN 加载的 highlight.js 库版本仅包含对通用语言包(apache、bash、coffeescript、cpp、cs、css、diff、http、ini、java、javascript、json、makefile、markdown、nginx、objectivec、perl、php、properties、python、ruby、shell、sql、xml 和 yaml)的支持。

更改主题

主题控制着高亮代码中 token(关键字、字符串、方法等)使用的颜色。默认情况下,highlight.js 配置为使用 github 主题。您可以通过设置 highlightjs-theme 属性来更改 highlight.js 使用的主题。

:source-highlighter: highlight.js
:highlightjs-theme: monokai

主题是从 CDN 加载的,因此 highlight.js 支持的版本所支持的任何主题都将被支持。请参考 cdnjs.com/libraries/highlight.js/9.18.3 获取主题列表(按资源类型:样式过滤)。highlightjs-theme 属性的值是文件名不含 .min.css 文件扩展名的基本名称。

加载对其他语言的支持

要加载 highlight.js 支持的其他语言,请在 highlightjs-languages 文档属性的值中列出它们。每种语言之间用逗号和可选的空格分隔。

通用的 highlight.js 包不包含对 Rust 和 Swift 的支持。让我们设置 highlightjs-languages 属性,以便 HTML 转换器将对它们的(支持)加载到 HTML 页面中。

:source-highlighter: highlight.js
:highlightjs-languages: rust, swift

highlightjs-languages 属性仅在生成独立的 HTML 文档时(即,backend: html, standalone: true)适用。在生成嵌入式 HTML 时,它不起作用,而嵌入式 HTML 用于 Antora 等网站生成器集成。

使用自定义 highlight.js 库

如果您宁愿使用自己的 highlight.js 副本而不是 CDN 上托管的版本,请按照以下步骤操作

  1. 下载页面上创建您的自定义包。

  2. 将 zip 文件下载并解压到一个名为 highlight 的文件夹中,该文件夹与您的 AsciiDoc 文件相邻(或者在输出目录中,如果不同)。

  3. highlight/highlight.pack.js 重命名为 highlight/highlight.min.js

  4. highlight/styles/github.css 重命名为 highlight/styles/github.min.css

    • 如果使用的 highlightjs-theme 名称不同,请将 github 替换为您正在使用的 highlightjs-theme 的名称。

  5. 在 AsciiDoc 文件的头部添加属性条目 :highlightjsdir: highlight

    • 或者,您可以在调用 Asciidoctor CLI 时传递 -a highlightjsdir=highlight 标志。

输出文件将使用您的 highlight.js 库和样式表的个人副本,而不是 cdnjs 上的副本。