Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AsciidoctorJS: require extensions #670

Open
jens-auer opened this issue May 4, 2023 · 0 comments
Open

AsciidoctorJS: require extensions #670

jens-auer opened this issue May 4, 2023 · 0 comments
Labels

Comments

@jens-auer
Copy link

jens-auer commented May 4, 2023

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?

@ysb33r ysb33r added the question label Jun 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants