asciidoctor / asciidoctor-diagram

:left_right_arrow: Asciidoctor diagram extension, with support for AsciiToSVG, BlockDiag (BlockDiag, SeqDiag, ActDiag, NwDiag), Ditaa, Erd, GraphViz, Mermaid, Msc, PlantUML, Shaape, SvgBob, Syntrax, UMLet, Vega, Vega-Lite and WaveDrom.
http://asciidoctor.org
MIT License
431 stars 106 forks source link

Add jsyntrax wrapper #463

Closed inponomarev closed 1 month ago

inponomarev commented 1 month ago

Fixes #423 as discussed in the ticket.

(Initially I thought that some student will take this work, but the academic year is over and I still would like this to be done :-)

Dear @pepijnve , as I am not a Ruby developer, I've just mechanically copied all the stuff by analogy. And, honestly, I don't know how to test this!

Another concern is the jar file dependencies and their licenses. For the sake of simplicity I have created a shaded fat-jar with all the libraries shaded, the jsyntrax itself is under MIT license (although Apache-licensed libraries including Batik are used).

I see, however, that for plantuml you have all the dependencies (including Batik) provided in separate jars together with their licenses. This can be done, but I'm afraid in this case there's a risk for jar hell (for example, if there are incompatible versions of Batik used in plantuml and jsyntrax). I'm relying on your suggestion here and I will be happy to redo the PR.

pepijnve commented 1 month ago

Manually merged in ef945e3f49a59c640ce28ced883c61885f7c0bfa

I also added a changelog entry and enable the unit tests on CI

pepijnve commented 1 month ago

I've taken the liberty of building and publishing the gem to https://rubygems.org/gems/asciidoctor-diagram-jsyntrax

inponomarev commented 1 month ago

OMG @pepijnve that was very quick :-) thanks a lot!