asciidoctor-gradle-plugin
asciidoctor-gradle-plugin copied to clipboard
AsciidoctorJS: require extensions
Hi,
I am trying to use custom extensions with AsciidoctorJS, but struggling to get it work. When I use AsciidoctorJ it seems that the extensions seem to be picked up with the following build.gradle.kts:
import org.gradle.kotlin.dsl.`kotlin-dsl`
import org.asciidoctor.gradle.jvm.AsciidoctorTask
//import org.asciidoctor.gradle.js.nodejs.AsciidoctorTask
import io.freefair.gradle.plugins.plantuml.PlantumlTask
plugins {
id("org.asciidoctor.jvm.convert") version "4.0.0-alpha.1"
//id("org.asciidoctor.js.convert") version "4.0.0-alpha.1"
id("io.freefair.plantuml") version "6.6.3"
}
asciidoctorj {
val extensions = file(".asciidoctor/lib").listFiles().map{ f -> f.getPath() }
println(extensions)
println(requires)
requires( extensions )
println(extensions)
println(requires)
}
I can see two extensions being found and added to requires
:
> Configure project :
[/home/jens/SWP-Updt/sysad/030_design/.asciidoctor/lib/swc.js, /home/jens/SWP-Updt/sysad/030_design/.asciidoctor/lib/dump_attributes.js, /home/jens/SWP-Updt/sysad/030_design/.asciidoctor/lib/req.js]
[]
[/home/jens/SWP-Updt/sysad/030_design/.asciidoctor/lib/swc.js, /home/jens/SWP-Updt/sysad/030_design/.asciidoctor/lib/dump_attributes.js, /home/jens/SWP-Updt/sysad/030_design/.asciidoctor/lib/req.js]
[/home/jens/SWP-Updt/sysad/030_design/.asciidoctor/lib/swc.js, /home/jens/SWP-Updt/sysad/030_design/.asciidoctor/lib/dump_attributes.js, /home/jens/SWP-Updt/sysad/030_design/.asciidoctor/lib/req.js]
Of course, the extensions fail to load because they are Javascript and not Ruby.
If I now switch to AsciidoctorJS, I tried to use requires as well as suggested by the docs: "Additional NPM modules can be added via asciidoctorj.require.". My interpretation is that it should the same as with AsciidoctorJ, but
import org.gradle.kotlin.dsl.`kotlin-dsl`
import org.asciidoctor.gradle.js.nodejs.AsciidoctorTask
import io.freefair.gradle.plugins.plantuml.PlantumlTask
plugins {
id("org.asciidoctor.js.convert") version "4.0.0-alpha.1"
id("io.freefair.plantuml") version "6.6.3"
}
asciidoctorj {
val extensions = file(".asciidoctor/lib").listFiles().map{ f -> f.getPath() }
println(extensions)
println(requires)
requires( extensions )
println(extensions)
println(requires)
}
gives me an error. So I tried to add all extensions to the set requires
.
asciidoctorjs {
val extensions = file(".asciidoctor/lib").listFiles().map{ f -> f.getPath() }
println("extensions = " + extensions)
println("requires = " + requires)
requires.add("JENS")
requires.addAll(extensions)
println("extensions = " + extensions)
println("requires = " + requires)
}
But for some reason this does not modify the set represented by requires:
> Configure project :
extensions = [/home/jens/SWP-Updt/sysad/030_design/.asciidoctor/lib/swc.js, /home/jens/SWP-Updt/sysad/030_design/.asciidoctor/lib/dump_attributes.js, /home/jens/SWP-Updt/sysad/030_design/.asciidoctor/lib/req.js]
requires = []
extensions = [/home/jens/SWP-Updt/sysad/030_design/.asciidoctor/lib/swc.js, /home/jens/SWP-Updt/sysad/030_design/.asciidoctor/lib/dump_attributes.js, /home/jens/SWP-Updt/sysad/030_design/.asciidoctor/lib/req.js]
requires = []
What is the appropriate way to require extensions when using AsciidoctorJs?