Asciidoctor不会通过Highlightjs突出显示源代码

时间:2018-10-05 16:34:07

标签: syntax-highlighting asciidoc asciidoctor spring-restdocs highlight.js

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

以下是我的 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
);
----

之后,我构建并运行应用程序,这是一个生成的文档,没有突出显示源代码: enter image description here

我的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>

我在做什么错了?

P.S。另外,我尝试在本地安装highlight.js,将highlight/highlight.pack.js重命名为highlight/highlight.min.js,将highlight/styles/github.css重命名为highlight/styles/github.min.css,依此类推,如用户手册所述,但没有结果也是

1 个答案:

答案 0 :(得分:2)

不幸的是,您可能已经发现,标准的Highlight.js语言包中没有包含Groovy。它仅包含"common"部分中的内容。 SQL可以工作。正如您在这张图片中看到的那样,SQL部分可以直接使用我的设置,但不适用于Groovy。

enter image description here

要修复Groovy代码,可以使用Java作为语言(适用于许多Groovy代码示例),也可以下载已选中Groovy的自定义HighlightJS包。我猜那就是你要去的地方。


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

在我修复了配置之后,它同时适用于Groovy和SQL

enter image description here

所以我希望对您也有用。