首页 > 解决方案 > Asciidoctor 不通过 h​​ighlightjs 突出显示源代码

问题描述

我尝试使用 Asciidoctor 通过 Spring Rest Docs 生成文档。用户手册 说:为了在文档中突出显示源代码,我将:source-highlighter: highlightjs在 .adoc 文件的标题中使用属性。

这是我的index.adoc的示例:

:source-highlighter: highlightjs

= Source code listing

Code listings look cool with Asciidoctor and highlight.js with {highlightjs-theme} theme.

[source,groovy]
----
// File: User.groovy
class User {
    String username
}
----

[source,sql]
----
CREATE TABLE USER (
    ID INT NOT NULL,
    USERNAME VARCHAR(40) NOT NULL
);
----

之后我构建并运行应用程序,这是一个生成的文档,没有突出显示源代码: 在此处输入图像描述

我的 Maven 插件配置:

<plugin>
    <groupId>org.asciidoctor</groupId>
    <artifactId>asciidoctor-maven-plugin</artifactId>
    <version>1.5.3</version>
    <executions>
        <execution>
            <id>generate-docs</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>process-asciidoc</goal>
            </goals>
            <configuration>
                <backend>html</backend>
                <doctype>book</doctype>
            </configuration>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>org.springframework.restdocs</groupId>
            <artifactId>spring-restdocs-asciidoctor</artifactId>
            <version>2.0.2.RELEASE</version>
        </dependency>
    </dependencies>
</plugin>

我究竟做错了什么?

PS 另外,正如用户手册所说,我也尝试通过重命名to和to等方式highlight.js在本地安装,但也没有结果highlight/highlight.pack.jshighlight/highlight.min.jshighlight/styles/github.csshighlight/styles/github.min.css

标签: syntax-highlightingasciidocasciidoctorspring-restdocshighlight.js

解决方案


不幸的是,正如您可能发现的那样,Groovy 并未包含在标准的 highlight.js 语言包中。它仅包括“通用”部分中的那些。SQL 会工作。正如您在这张图片中看到的,SQL 部分适用于我的开箱即用设置,但不适用于 Groovy。

在此处输入图像描述

要修复 Groovy 代码,您可以使用 Java 作为语言(对于很多 Groovy 代码示例来说都很好),或者下载带有 Groovy 选项的自定义 HighlightJS 包。我猜这就是你要去的地方。


如果您使用的是自定义 HighlightJS 包,我一开始遇到了类似的问题。当我在浏览器中进入开发者工具时,它显示未找到 highlight.js 文件。另一个问题是所有 Spring REST Docs 示例也失去了突出显示。尽管 Asciidoctor 手册说将它放入同一个文件夹并且它应该自动复制,但使用 Gradle,我仍然必须使用resources配置选项告诉它包含突出显示的文件。我不是 Maven 用户,但也许 Maven 插件有类似的设置?

修复配置后,它适用于 Groovy 和 SQL

在此处输入图像描述

所以我希望这对你也有用。


推荐阅读