1

我没有使用 Asciidoctor、Ruby 或 gradle 的经验。我负责一个由其他人开发的项目,该项目使用了所有这三个。代码中是Asciidoctor::HTML5::DocumentTemplate引发错误的函数

我们最近升级到 Asciidoctor 1.5.0,当尝试编译这个项目时,它会抛出以下错误消息:

16:25:53.429 [ERROR] [org.gradle.BuildExceptionReporter] Caused by: org.jruby.exceptions.RaiseException: (NameError) uninitialized constant Asciidoctor::HTML5
16:25:53.429 [ERROR] [org.gradle.BuildExceptionReporter] at org.jruby.RubyModule.const_missing(org/jruby/RubyModule.java:2689)
16:25:53.430 [ERROR] [org.gradle.BuildExceptionReporter] at RUBY.__singleton__(/tmp/document.html.erb:108)

第 108 行是:<%= ::Asciidoctor::HTML5::DocumentTemplate.outline(self, (attr :toclevels, 2).to_i) %>

据我所见,它从一个文件中填充目录,其中的标题前面带有## 标签。

我从这里做什么?

4

2 回答 2

0

您的第 108 行应更改为:

<%= ::Asciidoctor::Converter::Html5Converter.outline(self) =%>

但是,正如我在评论中所说,我需要查看更多内容以查看是否还有其他需要更改的内容。

于 2014-09-16T02:59:38.790 回答
0

您的document.html.erb可能基于asciidoctor-v0.1.4/erb/html5/document.html.erb。那个适用于 asciidoctor 0.1.4,但不适用于 1.5。可以在此处找到适用于 1.5 的版本:master/erb/html5/document.html.erb

在这两个版本之间,行

<%= ::Asciidoctor::HTML5::DocumentTemplate.outline(self, (attr :toclevels, 2).to_i) %>

被替换为

<%= converter.convert self, 'outline' %>

在我的document.html.erb副本中更改该行为我解决了该错误。

于 2014-09-16T15:05:30.600 回答