syntax-highlighting - Asciidoctor 不通过 highlightjs 突出显示源代码
问题描述
我尝试使用 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.js
highlight/highlight.min.js
highlight/styles/github.css
highlight/styles/github.min.css
解决方案
不幸的是,正如您可能发现的那样,Groovy 并未包含在标准的 highlight.js 语言包中。它仅包括“通用”部分中的那些。SQL 会工作。正如您在这张图片中看到的,SQL 部分适用于我的开箱即用设置,但不适用于 Groovy。
要修复 Groovy 代码,您可以使用 Java 作为语言(对于很多 Groovy 代码示例来说都很好),或者下载带有 Groovy 选项的自定义 HighlightJS 包。我猜这就是你要去的地方。
如果您使用的是自定义 HighlightJS 包,我一开始遇到了类似的问题。当我在浏览器中进入开发者工具时,它显示未找到 highlight.js 文件。另一个问题是所有 Spring REST Docs 示例也失去了突出显示。尽管 Asciidoctor 手册说将它放入同一个文件夹并且它应该自动复制,但使用 Gradle,我仍然必须使用resources
配置选项告诉它包含突出显示的文件。我不是 Maven 用户,但也许 Maven 插件有类似的设置?
修复配置后,它适用于 Groovy 和 SQL
所以我希望这对你也有用。
推荐阅读
- r - 如何使用 dplyr 估计多个类别的 10% 上限值和下限值的平均值?
- python - Manim:创建后更改文本大小
- c# - EF 创建额外的外键列
- c++ - 缩写函数模板的默认参数
- windows - 批处理脚本以递归方式将字符串附加到文件名(如果不存在)
- java - 在自定义视图中获取 LinearLayout 参考
- php - PHP/HTML 不对齐
- xamarin.forms - Xamarin Forms w/ Mobile Blazor Bindings - 如何在 Blazor 应用程序中为 Android / iOS 项目中定义的类指定依赖项注入
- python - 计算具有上限和下限的 a/b 测试的置信度
- apache-kafka - TwitterSourceConnector 必须是 SourceConnector 的子类