我尝试使用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
);
----
之后,我构建并运行应用程序,这是一个生成的文档,没有突出显示源代码:
我的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
,依此类推,如用户手册所述,但没有结果也是
答案 0 :(得分:2)
不幸的是,您可能已经发现,标准的Highlight.js语言包中没有包含Groovy。它仅包含"common"部分中的内容。 SQL可以工作。正如您在这张图片中看到的那样,SQL部分可以直接使用我的设置,但不适用于Groovy。
要修复Groovy代码,可以使用Java作为语言(适用于许多Groovy代码示例),也可以下载已选中Groovy的自定义HighlightJS包。我猜那就是你要去的地方。
如果您正在使用自定义的HighlightJS包,一开始我会遇到类似的问题。当我进入浏览器中的开发人员工具时,它表明未找到highlight.js文件。问题的另一个提示是,所有Spring REST Docs示例也都失去了突出显示的功能。尽管Asciidoctor手册说要放入同一文件夹,并且应该使用Gradle自动复制,但我仍然必须使用{{1}} config选项告诉它包括突出显示文件。我不是Maven用户,但也许Maven插件具有类似的设置?
在我修复了配置之后,它同时适用于Groovy和SQL
所以我希望对您也有用。