asciidoctor-diagram 2.2.6 → 2.2.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.adoc +19 -0
- data/README.adoc +3 -3
- data/docs/modules/ROOT/pages/index.adoc +1 -1
- data/docs/modules/ROOT/partials/advanced.adoc +35 -4
- data/docs/modules/ROOT/partials/create_diagram.adoc +2 -0
- data/docs/modules/ROOT/partials/uris.adoc +4 -1
- data/lib/asciidoctor-diagram/d2/converter.rb +57 -0
- data/lib/asciidoctor-diagram/d2/extension.rb +18 -0
- data/lib/asciidoctor-diagram/d2.rb +8 -0
- data/lib/asciidoctor-diagram/dbml/converter.rb +22 -0
- data/lib/asciidoctor-diagram/dbml/extension.rb +18 -0
- data/lib/asciidoctor-diagram/dbml.rb +8 -0
- data/lib/asciidoctor-diagram/diagram_processor.rb +2 -0
- data/lib/asciidoctor-diagram/diagram_source.rb +2 -2
- data/lib/asciidoctor-diagram/ditaa/converter.rb +9 -3
- data/lib/asciidoctor-diagram/ditaa/ditaa-2.0.0.jar +0 -0
- data/lib/asciidoctor-diagram/plantuml/converter.rb +8 -3
- data/lib/asciidoctor-diagram/plantuml/plantuml-2.0.0.jar +0 -0
- data/lib/asciidoctor-diagram/structurizr/converter.rb +67 -0
- data/lib/asciidoctor-diagram/structurizr/extension.rb +52 -0
- data/lib/asciidoctor-diagram/structurizr/renderers.rb +58 -0
- data/lib/asciidoctor-diagram/structurizr/structurizr-2.0.1.jar +0 -0
- data/lib/asciidoctor-diagram/structurizr.rb +7 -0
- data/lib/asciidoctor-diagram/syntrax/converter.rb +64 -17
- data/lib/asciidoctor-diagram/syntrax/syntrax-2.0.2.jar +0 -0
- data/lib/asciidoctor-diagram/util/cli.rb +10 -2
- data/lib/asciidoctor-diagram/util/cli_generator.rb +1 -0
- data/lib/asciidoctor-diagram/util/server-2.0.0.jar +0 -0
- data/lib/asciidoctor-diagram/version.rb +1 -1
- data/lib/asciidoctor-diagram.rb +3 -0
- data/spec/d2_spec.rb +60 -0
- data/spec/dbml_spec.rb +32 -0
- data/spec/plantuml_spec.rb +1 -1
- data/spec/shared_examples.rb +2 -2
- metadata +31 -10
- data/lib/asciidoctor-diagram/ditaa/ditaa-1.3.21.jar +0 -0
- data/lib/asciidoctor-diagram/plantuml/plantuml-1.3.24.jar +0 -0
- data/lib/asciidoctor-diagram/util/server-1.3.21.jar +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea06a8ee298a0f1331527d528d1e03bb3e018dda9c0dc69fa52506fb086e6b48
|
4
|
+
data.tar.gz: 26d12a8dd4da3cd38a6007d8e569b05892159c79c9538d99f3958d91be4792a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e81762d1af76136b66f1d35fb60aa5ebdcdd2fca3ff9d09cbf59d36485ea82b7d8eab3c4656fb236ebbadd07975b545e1d1ed7e0a205e3d50d28a6377f9f8cc5
|
7
|
+
data.tar.gz: 6e2a003aa9049b72d12b6e5f82dec010029bb6b2e9ccf31c4e66951e6a3beb90694601769c452a2535cef8e891736a7c633aefde39c477647eef3febfcb7427a
|
data/CHANGELOG.adoc
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
= Asciidoctor-diagram Changelog
|
2
2
|
|
3
|
+
== 2.2.8
|
4
|
+
|
5
|
+
Enhancements::
|
6
|
+
|
7
|
+
* Add support for reusing JSyntrax subprocess instances to improve performance when rendering many syntax diagrams (@gitrbond, @inponomarev)
|
8
|
+
* Issue #386: Add basic https://structurizr.com[Structurizr] support
|
9
|
+
|
10
|
+
Bugfixes::
|
11
|
+
|
12
|
+
* Issue #409: Fix handling of the D2 `sketch` attribute
|
13
|
+
* Issue #410: Ensure current directory is always set to document base directory when invoking subprocesses
|
14
|
+
|
15
|
+
== 2.2.7
|
16
|
+
|
17
|
+
Enhancements::
|
18
|
+
|
19
|
+
* Issue #407: Add https://d2lang.com[D2] support
|
20
|
+
|
3
21
|
== 2.2.6
|
4
22
|
|
5
23
|
Enhancements::
|
@@ -19,6 +37,7 @@ Enhancements::
|
|
19
37
|
Enhancements::
|
20
38
|
|
21
39
|
* Issue #399: Add support for PlantUML theme attribute
|
40
|
+
* Add DBML support via https://github.com/softwaretechnik-berlin/dbml-renderer[dbml-renderer]
|
22
41
|
|
23
42
|
== 2.2.3
|
24
43
|
|
data/README.adoc
CHANGED
@@ -3,8 +3,8 @@ Pepijn Van_Eeckhoudt <https://github.com/pepijnve[@pepijnve]>; Sarah White <http
|
|
3
3
|
:description: README for the Asciidoctor Diagram extension for Asciidoctor.
|
4
4
|
|
5
5
|
image:https://github.com/asciidoctor/asciidoctor-diagram/workflows/Linux%20unit%20tests/badge.svg?branch=master["Linux Build Status", link="https://github.com/asciidoctor/asciidoctor-diagram/actions?query=workflow%3A%22Linux+unit+tests%22"]
|
6
|
-
image:https://github.com/asciidoctor/asciidoctor-diagram/workflows/macOS%20unit%20tests/badge.svg?branch=master["macOS Build Status", link="https://github.com/asciidoctor/asciidoctor-diagram/actions?query=workflow%3A%22macOS+unit+tests%22"]
|
7
|
-
image:https://github.com/asciidoctor/asciidoctor-diagram/workflows/Windows%20unit%20tests/badge.svg?branch=master["Windows Build Status", link="https://github.com/asciidoctor/asciidoctor-diagram/actions?query=workflow%3A%22Windows+unit+tests%22"]
|
6
|
+
// image:https://github.com/asciidoctor/asciidoctor-diagram/workflows/macOS%20unit%20tests/badge.svg?branch=master["macOS Build Status", link="https://github.com/asciidoctor/asciidoctor-diagram/actions?query=workflow%3A%22macOS+unit+tests%22"]
|
7
|
+
// image:https://github.com/asciidoctor/asciidoctor-diagram/workflows/Windows%20unit%20tests/badge.svg?branch=master["Windows Build Status", link="https://github.com/asciidoctor/asciidoctor-diagram/actions?query=workflow%3A%22Windows+unit+tests%22"]
|
8
8
|
image:https://badge.fury.io/rb/asciidoctor-diagram.svg[Gem Version, link=https://rubygems.org/gems/asciidoctor-diagram]
|
9
9
|
|
10
10
|
Asciidoctor Diagram is a set of Asciidoctor extensions that enable you to add diagrams, which you describe using plain text, to your AsciiDoc document.
|
@@ -38,4 +38,4 @@ The example below shows an embedded Ditaa diagram block.
|
|
38
38
|
|
39
39
|
After processing by Asciidoctor, the output file will show a rendered version of the diagram instead of the diagram source code.
|
40
40
|
|
41
|
-
image::docs/modules/ROOT/images/asciidoctor-diagram-process.png[]
|
41
|
+
image::docs/modules/ROOT/images/asciidoctor-diagram-process.png[]
|
@@ -5,7 +5,7 @@ include::partial$uris.adoc[]
|
|
5
5
|
|
6
6
|
Asciidoctor Diagram is a set of Asciidoctor extensions that enable you to add diagrams, which you describe using plain text, to your AsciiDoc document.
|
7
7
|
|
8
|
-
The extensions support the {uri-a2s}[AsciiToSVG], BlockDiag ({uri-blockdiag}[BlockDiag], {uri-seqdiag}[SeqDiag], {uri-actdiag}[ActDiag], {uri-nwdiag}[NwDiag]), {uri-bytefield}[Bytefield-SVG], {uri-ditaa}[Ditaa], {uri-dpic}[dpic], {uri-erd}[Erd], {uri-gnuplot}[Gnuplot], {uri-dot}[GraphViz], {uri-mermaid}[Mermaid], {uri-mscgen}[Msc], {uri-nomnoml}[Nomnoml], {uri-pikchr}[Pikchr], {uri-plantuml}[PlantUML], {uri-shaape}[Shaape], {uri-smcat}[State Machine Cat], {uri-svgbob}[SvgBob], {uri-symbolator}[Symbolator], {uri-syntrax}[Syntrax] / {uri-jsyntrax}[JSyntrax], {uri-umlet}[UMLet], {uri-vega}[Vega], {uri-vegalite}[Vega-Lite] and {uri-wavedrom}[WaveDrom] syntax.
|
8
|
+
The extensions support the {uri-a2s}[AsciiToSVG], BlockDiag ({uri-blockdiag}[BlockDiag], {uri-seqdiag}[SeqDiag], {uri-actdiag}[ActDiag], {uri-nwdiag}[NwDiag]), {uri-bytefield}[Bytefield-SVG], {uri-dbml}[DBML], {uri-ditaa}[Ditaa], {uri-dpic}[dpic], {uri-erd}[Erd], {uri-gnuplot}[Gnuplot], {uri-dot}[GraphViz], {uri-mermaid}[Mermaid], {uri-mscgen}[Msc], {uri-nomnoml}[Nomnoml], {uri-pikchr}[Pikchr], {uri-plantuml}[PlantUML], {uri-shaape}[Shaape], {uri-smcat}[State Machine Cat], {uri-structurizr}[Structurizr], {uri-svgbob}[SvgBob], {uri-symbolator}[Symbolator], {uri-syntrax}[Syntrax] / {uri-jsyntrax}[JSyntrax], {uri-umlet}[UMLet], {uri-vega}[Vega], {uri-vegalite}[Vega-Lite] and {uri-wavedrom}[WaveDrom] syntax.
|
9
9
|
|
10
10
|
Each extension runs the diagram processor to generate an SVG, PNG, or TXT file from the input text.
|
11
11
|
The generated file is then inserted into your converted document.
|
@@ -74,6 +74,8 @@ The following table lists the tools that are required for each diagram type, the
|
|
74
74
|
|bpmn |{uri-bpmn}[bpmn-js-cmd] |`bpmn`
|
75
75
|
|bytefield |{uri-bytefield}[bytefield-svg] |`bytefield-svg`
|
76
76
|
|diagrams |{uri-python}[Python] |`diagrams-python`
|
77
|
+
|D2 |{uri-d2}[D2] |`d2`
|
78
|
+
|DBML |{uri-dbml}[dbml-renderer] |`dbml-renderer`
|
77
79
|
|ditaa |{uri-java}[Java] |`java`
|
78
80
|
|dpic |{uri-dpic}[dpic] |`dpic`
|
79
81
|
|erd |{uri-erd}[Erd] or {uri-erd-go}[Erd Go] |`erd`
|
@@ -91,9 +93,10 @@ The following table lists the tools that are required for each diagram type, the
|
|
91
93
|
|seqdiag |{uri-seqdiag}[SeqDiag] |`seqdiag`
|
92
94
|
|shaape |{uri-shaape}[Shaape] |`shaape`
|
93
95
|
|smcat |{uri-smcat}[State Machine Cat] |`smcat`
|
96
|
+
|structurizr |{uri-java}[Java] and {uri-structurizr}[Structurizr CLI] |`java` and the `DIAGRAM_STRUCTURIZRCLI_HOME` environment variable
|
94
97
|
|svgbob |{uri-svgbob}[SvgBob] |`svgbob`
|
95
98
|
|symbolator |{uri-symbolator}[Symbolator] |`symbolator`
|
96
|
-
|syntrax |{uri-syntrax}[Syntrax]/{uri-jsyntrax}[JSyntrax] |`syntrax`
|
99
|
+
|syntrax |{uri-syntrax}[Syntrax]/{uri-jsyntrax}[JSyntrax] |`syntrax` or `java` and the `DIAGRAM_JSYNTRAX_HOME` environment variable
|
97
100
|
|tikz |A TeX distribution that supports {uri-tikz}[TikZ] |`pdflatex` and `pdf2svg`
|
98
101
|
|umlet |{uri-umlet}[Umlet] |`umlet`
|
99
102
|
|vega |{uri-vega}[vg2png] and/or {uri-vega}[vg2png] |`vg2png` and `vg2svg`
|
@@ -234,6 +237,25 @@ If the maximum size is exceeded, POST requests are used instead
|
|
234
237
|
|width |1024 |The target width of the diagram. Does not apply for output type `svg`.
|
235
238
|
|===
|
236
239
|
|
240
|
+
==== D2
|
241
|
+
|
242
|
+
[cols=">,<,<",options="header"]
|
243
|
+
|===
|
244
|
+
|Name |Default value |Description
|
245
|
+
|layout |dagre |Set the diagram layout engine
|
246
|
+
|theme |0 |Set the diagram theme ID
|
247
|
+
|pad |100 |Pixels padded around the rendered diagram
|
248
|
+
|animate-interval| |If given, multiple boards are packaged as 1 SVG which transitions through each board at the interval (in milliseconds). Can only be used with SVG exports.
|
249
|
+
|sketch |false |Renders the diagram to look like it was sketched by hand
|
250
|
+
|font-regular |Source Sans Pro Regular |Path to .ttf file to use for the regular font
|
251
|
+
|font-italic |Source Sans Pro Regular-Italic|Path to .ttf file to use for the italic font
|
252
|
+
|font-bol |Source Sans Pro Bold |Path to .ttf file to use for the bold font
|
253
|
+
|===
|
254
|
+
|
255
|
+
==== DBML
|
256
|
+
|
257
|
+
No specific attributes.
|
258
|
+
|
237
259
|
==== Diagrams
|
238
260
|
|
239
261
|
No specific attributes.
|
@@ -331,10 +353,19 @@ No specific attributes.
|
|
331
353
|
[cols=">,<,<",options="header"]
|
332
354
|
|===
|
333
355
|
|Name |Default value |Description
|
334
|
-
|direction |
|
356
|
+
|direction |unspecified |The direction of the state machine diagram. One of `top-down`, `bottom-top`, `left-right` or `right-left`.
|
335
357
|
|engine |unspecified |The layout engine to use. One of `dot`, `circo`, `fdp`, `neato`, `osage`, or `twopi`
|
336
358
|
|===
|
337
359
|
|
360
|
+
==== Structurizr
|
361
|
+
|
362
|
+
[cols=">,<,<",options="header"]
|
363
|
+
|===
|
364
|
+
|Name |Default value |Description
|
365
|
+
|renderer |plantuml-c4 |The rendering backend to use. One of `d2`, `graphviz`, `mermaid`, `plantuml`, or `plantuml-c4`
|
366
|
+
|view |unspecified |The key of the view to render
|
367
|
+
|===
|
368
|
+
|
338
369
|
==== svgbob
|
339
370
|
|
340
371
|
[cols=">,<,<",options="header"]
|
@@ -351,9 +382,9 @@ No specific attributes.
|
|
351
382
|
[cols=">,<,<",options="header"]
|
352
383
|
|===
|
353
384
|
|Name |Default value |Description
|
354
|
-
|heading |
|
385
|
+
|heading |unspecified |Diagram title
|
355
386
|
|scale |1 |A scale factor that is applied to the image.
|
356
|
-
|style-file |
|
387
|
+
|style-file |unspecified |Path to a style config file to pass to Syntrax.
|
357
388
|
|transparent |false |Makes the background of the image transparent instead of opaque white.
|
358
389
|
|===
|
359
390
|
|
@@ -27,6 +27,7 @@ The following diagram types and output formats are available:
|
|
27
27
|
|{uri-blockdiag}[blockdiag] | |{check}|{check}|{check}|
|
28
28
|
|{uri-bpmn}[bpmn] | |{check}|{check}|{check}|
|
29
29
|
|{uri-bytefield}[bytefield] | | | |{check}|
|
30
|
+
|{uri-d2}[D2] | |{check}|{check}|{check}|
|
30
31
|
|{uri-diagrams}[diagrams] | |{check}|{check}|{check}|
|
31
32
|
|{uri-ditaa}[ditaa] | | |{check}|{check}|{check}
|
32
33
|
|{uri-dpic}[dpic] | | | |{check}|
|
@@ -45,6 +46,7 @@ The following diagram types and output formats are available:
|
|
45
46
|
|{uri-seqdiag}[seqdiag] | |{check}|{check}|{check}|
|
46
47
|
|{uri-shaape}[shaape] | | |{check}|{check}|
|
47
48
|
|{uri-smcat}[smcat] | | | |{check}|
|
49
|
+
|{uri-structurizr}[structurizr] | | |{check}|{check}|
|
48
50
|
|{uri-svgbob}[svgbob] | | | |{check}|{check}
|
49
51
|
|{uri-symbolator}[symbolator] | |{check}|{check}|{check}|
|
50
52
|
|{uri-syntrax}[syntrax] (Syntrax) | |{check}|{check}|{check}|
|
@@ -5,6 +5,8 @@
|
|
5
5
|
:uri-blockdiag: http://blockdiag.com
|
6
6
|
:uri-bpmn: https://github.com/gtudan/bpmn-js-cmd
|
7
7
|
:uri-bytefield: https://github.com/Deep-Symmetry/bytefield-svg
|
8
|
+
:uri-d2: https://d2lang.com
|
9
|
+
:uri-dbml: https://github.com/softwaretechnik-berlin/dbml-renderer
|
8
10
|
:uri-diagrams: https://diagrams.mingrammer.com
|
9
11
|
:uri-ditaa: http://ditaa.sourceforge.net/
|
10
12
|
:uri-dpic: https://gitlab.com/aplevich/dpic
|
@@ -15,6 +17,7 @@
|
|
15
17
|
:uri-graphviz: https://graphviz.gitlab.io
|
16
18
|
:uri-imagemagick: http://www.imagemagick.org
|
17
19
|
:uri-java: http://java.sun.com
|
20
|
+
:uri-jsyntrax: https://atp-mipt.github.io/jsyntrax/
|
18
21
|
:uri-mermaid: https://github.com/mermaid-js/mermaid-cli
|
19
22
|
:uri-mscgen: http://www.mcternan.me.uk/mscgen/
|
20
23
|
:uri-mscgen-js: https://github.com/mscgenjs/mscgenjs-cli
|
@@ -30,10 +33,10 @@
|
|
30
33
|
:uri-seqdiag: http://blockdiag.com/en/seqdiag/index.html
|
31
34
|
:uri-shaape: https://github.com/christiangoltz/shaape
|
32
35
|
:uri-smcat: https://github.com/sverweij/state-machine-cat
|
36
|
+
:uri-structurizr: https://structurizr.com
|
33
37
|
:uri-svgbob: https://github.com/ivanceras/svgbobrus
|
34
38
|
:uri-symbolator: https://github.com/kevinpt/symbolator
|
35
39
|
:uri-syntrax: https://kevinpt.github.io/syntrax/
|
36
|
-
:uri-jsyntrax: https://atp-mipt.github.io/jsyntrax/
|
37
40
|
:uri-tikz: https://github.com/pgf-tikz/pgf
|
38
41
|
:uri-umlet: http://www.umlet.com/
|
39
42
|
:uri-vega: https://vega.github.io/vega/
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require_relative '../diagram_converter'
|
2
|
+
require_relative '../util/cli_generator'
|
3
|
+
require_relative '../util/platform'
|
4
|
+
|
5
|
+
module Asciidoctor
|
6
|
+
module Diagram
|
7
|
+
# @private
|
8
|
+
class D2Converter
|
9
|
+
include DiagramConverter
|
10
|
+
include CliGenerator
|
11
|
+
|
12
|
+
def supported_formats
|
13
|
+
[:svg, :png, :pdf]
|
14
|
+
end
|
15
|
+
|
16
|
+
def collect_options(source)
|
17
|
+
{
|
18
|
+
:layout => source.attr('layout'),
|
19
|
+
:theme => source.attr('theme'),
|
20
|
+
:pad => source.attr('pad'),
|
21
|
+
:animate_interval => source.attr('animate-interval'),
|
22
|
+
:sketch => source.attr('sketch'),
|
23
|
+
:font_regular => source.attr('font-regular'),
|
24
|
+
:font_italic => source.attr('font-italic'),
|
25
|
+
:font_bold => source.attr('font-bold')
|
26
|
+
}
|
27
|
+
end
|
28
|
+
|
29
|
+
def convert(source, format, options)
|
30
|
+
generate_file(source.find_command('d2'), "d2", format.to_s, source.code) do |tool_path, input_path, output_path|
|
31
|
+
args = [tool_path, '--browser', 'false']
|
32
|
+
|
33
|
+
options.each_pair do |key, value|
|
34
|
+
flag = "--#{key.to_s.gsub('_', '-')}"
|
35
|
+
|
36
|
+
if key == :sketch && value != 'false'
|
37
|
+
args << flag
|
38
|
+
elsif key.to_s.start_with?('font') && !value.nil?
|
39
|
+
args << Platform.native_path(value)
|
40
|
+
elsif !value.nil?
|
41
|
+
args << flag
|
42
|
+
args << value
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
args << Platform.native_path(input_path)
|
47
|
+
args << Platform.native_path(output_path)
|
48
|
+
|
49
|
+
{
|
50
|
+
:args => args,
|
51
|
+
:chdir => source.base_dir
|
52
|
+
}
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative 'converter'
|
2
|
+
require_relative '../diagram_processor'
|
3
|
+
|
4
|
+
module Asciidoctor
|
5
|
+
module Diagram
|
6
|
+
class D2BlockProcessor < DiagramBlockProcessor
|
7
|
+
use_converter D2Converter
|
8
|
+
end
|
9
|
+
|
10
|
+
class D2BlockMacroProcessor < DiagramBlockMacroProcessor
|
11
|
+
use_converter D2Converter
|
12
|
+
end
|
13
|
+
|
14
|
+
class D2InlineMacroProcessor < DiagramInlineMacroProcessor
|
15
|
+
use_converter D2Converter
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
require 'asciidoctor/extensions'
|
2
|
+
require_relative 'd2/extension'
|
3
|
+
|
4
|
+
Asciidoctor::Extensions.register do
|
5
|
+
block Asciidoctor::Diagram::D2BlockProcessor, :d2
|
6
|
+
block_macro Asciidoctor::Diagram::D2BlockMacroProcessor, :d2
|
7
|
+
inline_macro Asciidoctor::Diagram::D2InlineMacroProcessor, :d2
|
8
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require_relative '../diagram_converter'
|
2
|
+
require_relative '../util/cli_generator'
|
3
|
+
require_relative '../util/platform'
|
4
|
+
|
5
|
+
module Asciidoctor
|
6
|
+
module Diagram
|
7
|
+
# @private
|
8
|
+
class DbmlConverter
|
9
|
+
include DiagramConverter
|
10
|
+
include CliGenerator
|
11
|
+
|
12
|
+
|
13
|
+
def supported_formats
|
14
|
+
[:svg]
|
15
|
+
end
|
16
|
+
|
17
|
+
def convert(source, format, options)
|
18
|
+
generate_stdin_stdout(source.find_command('dbml-renderer'), source.code)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative 'converter'
|
2
|
+
require_relative '../diagram_processor'
|
3
|
+
|
4
|
+
module Asciidoctor
|
5
|
+
module Diagram
|
6
|
+
class DbmlBlockProcessor < DiagramBlockProcessor
|
7
|
+
use_converter DbmlConverter
|
8
|
+
end
|
9
|
+
|
10
|
+
class DbmlBlockMacroProcessor < DiagramBlockMacroProcessor
|
11
|
+
use_converter DbmlConverter
|
12
|
+
end
|
13
|
+
|
14
|
+
class DbmlInlineMacroProcessor < DiagramInlineMacroProcessor
|
15
|
+
use_converter DbmlConverter
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
require 'asciidoctor/extensions'
|
2
|
+
require_relative 'dbml/extension'
|
3
|
+
|
4
|
+
Asciidoctor::Extensions.register do
|
5
|
+
block Asciidoctor::Diagram::DbmlBlockProcessor, :dbml
|
6
|
+
block_macro Asciidoctor::Diagram::DbmlBlockMacroProcessor, :dbml
|
7
|
+
inline_macro Asciidoctor::Diagram::DbmlInlineMacroProcessor, :dbml
|
8
|
+
end
|
@@ -356,6 +356,7 @@ module Asciidoctor
|
|
356
356
|
include DiagramProcessor
|
357
357
|
|
358
358
|
def self.inherited(subclass)
|
359
|
+
subclass.use_dsl
|
359
360
|
subclass.name_positional_attributes ['target', 'format']
|
360
361
|
subclass.contexts [:listing, :literal, :open]
|
361
362
|
subclass.content_model :simple
|
@@ -374,6 +375,7 @@ module Asciidoctor
|
|
374
375
|
include DiagramProcessor
|
375
376
|
|
376
377
|
def self.inherited(subclass)
|
378
|
+
subclass.use_dsl
|
377
379
|
subclass.name_positional_attributes ['format']
|
378
380
|
end
|
379
381
|
|
@@ -50,7 +50,7 @@ module Asciidoctor
|
|
50
50
|
# @return [String] the base directory against which relative paths in this diagram should be resolved
|
51
51
|
# @abstract
|
52
52
|
def base_dir
|
53
|
-
attr('docdir',
|
53
|
+
File.expand_path(attr('docdir', "", true))
|
54
54
|
end
|
55
55
|
|
56
56
|
# Alias for code
|
@@ -262,7 +262,7 @@ module Asciidoctor
|
|
262
262
|
class FileSource < BasicSource
|
263
263
|
def initialize(block_processor, parent_block, file_name, attributes)
|
264
264
|
super(block_processor, parent_block, attributes)
|
265
|
-
@file_name = file_name
|
265
|
+
@file_name = File.expand_path(file_name)
|
266
266
|
end
|
267
267
|
|
268
268
|
def base_dir
|
@@ -32,12 +32,14 @@ module Asciidoctor
|
|
32
32
|
require 'asciidoctor-diagram/ditaa/classpath'
|
33
33
|
::Asciidoctor::Diagram::DitaaClasspath::JAR_FILES
|
34
34
|
rescue LoadError
|
35
|
-
|
35
|
+
nil
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
-
|
40
|
-
|
39
|
+
if DITAA_JARS
|
40
|
+
Java.classpath.concat Dir[File.join(File.dirname(__FILE__), '*.jar')]
|
41
|
+
Java.classpath.concat DITAA_JARS
|
42
|
+
end
|
41
43
|
|
42
44
|
def supported_formats
|
43
45
|
[:png, :svg, :txt]
|
@@ -61,6 +63,10 @@ module Asciidoctor
|
|
61
63
|
def convert(source, format, options)
|
62
64
|
return source.to_s if format == :txt
|
63
65
|
|
66
|
+
unless DITAA_JARS
|
67
|
+
raise "Could not load Ditaa. Either require 'asciidoctor-diagram-ditaamini' or specify the location of the Ditaa JAR(s) using the 'DIAGRAM_DITAA_CLASSPATH' environment variable."
|
68
|
+
end
|
69
|
+
|
64
70
|
Java.load
|
65
71
|
|
66
72
|
flags = []
|
Binary file
|
@@ -17,12 +17,14 @@ module Asciidoctor
|
|
17
17
|
require 'asciidoctor-diagram/plantuml/classpath'
|
18
18
|
::Asciidoctor::Diagram::PlantUmlClasspath::JAR_FILES
|
19
19
|
rescue LoadError
|
20
|
-
|
20
|
+
nil
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
|
25
|
-
|
24
|
+
if PLANTUML_JARS
|
25
|
+
Java.classpath.concat Dir[File.join(File.dirname(__FILE__), '*.jar')].freeze
|
26
|
+
Java.classpath.concat PLANTUML_JARS
|
27
|
+
end
|
26
28
|
|
27
29
|
def wrap_source(source)
|
28
30
|
PlantUMLPreprocessedSource.new(source, self)
|
@@ -72,6 +74,9 @@ module Asciidoctor
|
|
72
74
|
end
|
73
75
|
|
74
76
|
def convert(source, format, options)
|
77
|
+
unless PLANTUML_JARS
|
78
|
+
raise "Could not load PlantUML. Either require 'asciidoctor-diagram-plantuml' or specify the location of the PlantUML JAR(s) using the 'DIAGRAM_PLANTUML_CLASSPATH' environment variable."
|
79
|
+
end
|
75
80
|
Java.load
|
76
81
|
|
77
82
|
code = source.code
|
Binary file
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'set'
|
2
|
+
|
3
|
+
require_relative '../diagram_converter'
|
4
|
+
require_relative '../diagram_processor'
|
5
|
+
require_relative '../plantuml/converter'
|
6
|
+
require_relative '../util/java'
|
7
|
+
|
8
|
+
module Asciidoctor
|
9
|
+
module Diagram
|
10
|
+
# @private
|
11
|
+
class StructurizrConverter
|
12
|
+
include DiagramConverter
|
13
|
+
|
14
|
+
CLASSPATH_ENV = 'DIAGRAM_STRUCTURIZR_CLASSPATH'
|
15
|
+
CLI_HOME_ENV = 'DIAGRAM_STRUCTURIZRCLI_HOME'
|
16
|
+
STRUCTURIZR_JARS = if ENV.has_key?(CLASSPATH_ENV)
|
17
|
+
ENV[CLASSPATH_ENV].split(File::PATH_SEPARATOR)
|
18
|
+
elsif ENV.has_key?(CLI_HOME_ENV)
|
19
|
+
lib_dir = File.expand_path('lib', ENV[CLI_HOME_ENV])
|
20
|
+
Dir.children(lib_dir).select { |c| c.end_with? '.jar' }.map { |c| File.expand_path(c, lib_dir) }
|
21
|
+
else
|
22
|
+
nil
|
23
|
+
end
|
24
|
+
|
25
|
+
if STRUCTURIZR_JARS
|
26
|
+
Java.classpath.concat Dir[File.join(File.dirname(__FILE__), '*.jar')]
|
27
|
+
Java.classpath.concat STRUCTURIZR_JARS
|
28
|
+
end
|
29
|
+
|
30
|
+
def supported_formats
|
31
|
+
[:txt]
|
32
|
+
end
|
33
|
+
|
34
|
+
def collect_options(source)
|
35
|
+
{
|
36
|
+
:view => source.attr('view'),
|
37
|
+
:renderer => Renderers.get_renderer_type(source)
|
38
|
+
}
|
39
|
+
end
|
40
|
+
|
41
|
+
def convert(source, format, options)
|
42
|
+
unless STRUCTURIZR_JARS
|
43
|
+
raise "Could not load Structurizr. Specify the location of the Structurizr JAR(s) using the 'DIAGRAM_STRUCTURIZRCLI_HOME' or DIAGRAM_STRUCTURIZR_CLASSPATH' environment variable."
|
44
|
+
end
|
45
|
+
|
46
|
+
Java.load
|
47
|
+
|
48
|
+
headers = {
|
49
|
+
'Accept' => Renderers.mime_type(options[:renderer])
|
50
|
+
}
|
51
|
+
headers['X-Structurizr-View'] = options[:view] if options[:view]
|
52
|
+
|
53
|
+
response = Java.send_request(
|
54
|
+
:url => '/structurizr',
|
55
|
+
:body => source.to_s,
|
56
|
+
:headers => headers
|
57
|
+
)
|
58
|
+
|
59
|
+
unless response[:code] == 200
|
60
|
+
raise Java.create_error("Structurizr code generation failed", response)
|
61
|
+
end
|
62
|
+
|
63
|
+
response[:body].force_encoding(Encoding::UTF_8)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require_relative 'converter'
|
2
|
+
require_relative 'renderers.rb'
|
3
|
+
require_relative '../diagram_processor'
|
4
|
+
|
5
|
+
module Asciidoctor
|
6
|
+
module Diagram
|
7
|
+
|
8
|
+
class StructurizrConvertBlockProcessor < DiagramBlockProcessor
|
9
|
+
use_converter StructurizrConverter
|
10
|
+
end
|
11
|
+
|
12
|
+
class StructurizrBlockProcessor < Asciidoctor::Extensions::BlockProcessor
|
13
|
+
DiagramBlockProcessor.inherited(self)
|
14
|
+
|
15
|
+
def initialize(name = nil, config = nil)
|
16
|
+
super
|
17
|
+
@structurizr = StructurizrConvertBlockMacroProcessor.new(name)
|
18
|
+
@renderers = Renderers.new(name)
|
19
|
+
end
|
20
|
+
|
21
|
+
def process parent, reader, attributes
|
22
|
+
structurizr_attrs = attributes.dup
|
23
|
+
structurizr_attrs['format'] = 'txt'
|
24
|
+
|
25
|
+
renderer_block = @structurizr.process(parent, reader, structurizr_attrs)
|
26
|
+
@renderers.get_renderer(BasicSource.new(self, parent, attributes)).process(parent, renderer_block, attributes)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class StructurizrConvertBlockMacroProcessor < DiagramBlockMacroProcessor
|
31
|
+
use_converter StructurizrConverter
|
32
|
+
end
|
33
|
+
|
34
|
+
class StructurizrBlockMacroProcessor < Asciidoctor::Extensions::BlockMacroProcessor
|
35
|
+
DiagramBlockMacroProcessor.inherited(self)
|
36
|
+
|
37
|
+
def initialize(name = nil, config = nil)
|
38
|
+
super
|
39
|
+
@structurizr = StructurizrConvertBlockMacroProcessor.new(name)
|
40
|
+
@renderers = Renderers.new(name)
|
41
|
+
end
|
42
|
+
|
43
|
+
def process parent, target, attributes
|
44
|
+
structurizr_attrs = attributes.dup
|
45
|
+
structurizr_attrs['format'] = 'txt'
|
46
|
+
|
47
|
+
renderer_block = @structurizr.process(parent, target, structurizr_attrs)
|
48
|
+
@renderers.get_renderer(BasicSource.new(self, parent, attributes)).process(parent, renderer_block, attributes)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module Asciidoctor
|
2
|
+
module Diagram
|
3
|
+
class Renderers
|
4
|
+
D2 = 'd2'
|
5
|
+
GRAPHVIZ = 'graphviz'
|
6
|
+
MERMAID = 'mermaid'
|
7
|
+
PLANTUML_C4 = 'plantuml-c4'
|
8
|
+
PLANTUML = 'plantuml'
|
9
|
+
DEFAULT_RENDERER = PLANTUML_C4
|
10
|
+
|
11
|
+
def initialize(name)
|
12
|
+
@d2 = D2BlockProcessor.new(name)
|
13
|
+
@graphviz = GraphvizBlockProcessor.new(name)
|
14
|
+
@plantuml = PlantUmlBlockProcessor.new(name)
|
15
|
+
@mermaid = MermaidBlockProcessor.new(name)
|
16
|
+
end
|
17
|
+
|
18
|
+
def renderer(renderer_type)
|
19
|
+
case renderer_type
|
20
|
+
when D2
|
21
|
+
@d2
|
22
|
+
when GRAPHVIZ
|
23
|
+
@graphviz
|
24
|
+
when MERMAID
|
25
|
+
@mermaid
|
26
|
+
when PLANTUML, PLANTUML_C4
|
27
|
+
@plantuml
|
28
|
+
else
|
29
|
+
raise "Unsupported renderer: '#{renderer_type}'"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def get_renderer(source)
|
34
|
+
renderer(Renderers.get_renderer_type(source))
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.get_renderer_type(source)
|
38
|
+
source.attr('renderer', 'plantuml-c4')
|
39
|
+
end
|
40
|
+
def self.mime_type(renderer_type)
|
41
|
+
case renderer_type
|
42
|
+
when D2
|
43
|
+
'text/x-d2'
|
44
|
+
when GRAPHVIZ
|
45
|
+
'text/vnd.graphviz'
|
46
|
+
when MERMAID
|
47
|
+
'text/x-mermaid'
|
48
|
+
when PLANTUML
|
49
|
+
'text/x-plantuml'
|
50
|
+
when PLANTUML_C4
|
51
|
+
'text/x-plantuml-c4'
|
52
|
+
else
|
53
|
+
raise "Unsupported renderer: '#{renderer_type}'"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
Binary file
|
@@ -0,0 +1,7 @@
|
|
1
|
+
require 'asciidoctor/extensions'
|
2
|
+
require_relative 'structurizr/extension'
|
3
|
+
|
4
|
+
Asciidoctor::Extensions.register do
|
5
|
+
block Asciidoctor::Diagram::StructurizrBlockProcessor, :structurizr
|
6
|
+
block_macro Asciidoctor::Diagram::StructurizrBlockMacroProcessor, :structurizr
|
7
|
+
end
|
@@ -9,6 +9,21 @@ module Asciidoctor
|
|
9
9
|
include DiagramConverter
|
10
10
|
include CliGenerator
|
11
11
|
|
12
|
+
CLASSPATH_ENV = 'DIAGRAM_JSYNTRAX_CLASSPATH'
|
13
|
+
CLI_HOME_ENV = 'DIAGRAM_JSYNTRAX_HOME'
|
14
|
+
JSYNTRAX_JARS = if ENV.has_key?(CLASSPATH_ENV)
|
15
|
+
ENV[CLASSPATH_ENV].split(File::PATH_SEPARATOR)
|
16
|
+
elsif ENV.has_key?(CLI_HOME_ENV)
|
17
|
+
lib_dir = File.expand_path('lib', ENV[CLI_HOME_ENV])
|
18
|
+
Dir.children(lib_dir).select { |c| c.end_with? '.jar' }.map { |c| File.expand_path(c, lib_dir) }
|
19
|
+
else
|
20
|
+
nil
|
21
|
+
end
|
22
|
+
|
23
|
+
if JSYNTRAX_JARS
|
24
|
+
Java.classpath.concat Dir[File.join(File.dirname(__FILE__), '*.jar')]
|
25
|
+
Java.classpath.concat JSYNTRAX_JARS
|
26
|
+
end
|
12
27
|
|
13
28
|
def supported_formats
|
14
29
|
[:png, :svg]
|
@@ -24,30 +39,62 @@ module Asciidoctor
|
|
24
39
|
end
|
25
40
|
|
26
41
|
def convert(source, format, options)
|
27
|
-
|
28
|
-
|
42
|
+
shared_args = []
|
43
|
+
title = options[:heading]
|
44
|
+
if title
|
45
|
+
shared_args << '--title' << title
|
46
|
+
end
|
29
47
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
48
|
+
scale = options[:scale]
|
49
|
+
if scale
|
50
|
+
shared_args << '--scale' << scale
|
51
|
+
end
|
34
52
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
53
|
+
transparent = options[:transparent]
|
54
|
+
if transparent == 'true'
|
55
|
+
shared_args << '--transparent'
|
56
|
+
end
|
57
|
+
style = options[:style]
|
58
|
+
if style
|
59
|
+
shared_args << '--style' << style
|
60
|
+
end
|
39
61
|
|
40
|
-
|
41
|
-
|
42
|
-
|
62
|
+
if JSYNTRAX_JARS
|
63
|
+
Java.load
|
64
|
+
|
65
|
+
options_string = shared_args.join(' ')
|
66
|
+
|
67
|
+
case format
|
68
|
+
when :png
|
69
|
+
mime_type = 'image/png'
|
70
|
+
when :svg
|
71
|
+
mime_type = 'image/svg+xml'
|
72
|
+
else
|
73
|
+
raise "Unsupported format: #{format}"
|
43
74
|
end
|
44
|
-
|
45
|
-
|
46
|
-
|
75
|
+
|
76
|
+
headers = {
|
77
|
+
'Accept' => mime_type,
|
78
|
+
'X-Options' => options_string
|
79
|
+
}
|
80
|
+
|
81
|
+
response = Java.send_request(
|
82
|
+
:url => '/syntrax',
|
83
|
+
:body => source.to_s,
|
84
|
+
:headers => headers
|
85
|
+
)
|
86
|
+
|
87
|
+
unless response[:code] == 200
|
88
|
+
raise Java.create_error("JSyntrax code generation failed", response)
|
47
89
|
end
|
48
90
|
|
49
|
-
|
91
|
+
response[:body]
|
92
|
+
else
|
93
|
+
generate_file(source.find_command('syntrax'), 'spec', format.to_s, source.to_s) do |tool_path, input_path, output_path|
|
94
|
+
[tool_path, '-i', Platform.native_path(input_path), '-o', Platform.native_path(output_path)] + shared_args
|
95
|
+
end
|
50
96
|
end
|
97
|
+
|
51
98
|
end
|
52
99
|
|
53
100
|
def native_scaling?
|
Binary file
|
@@ -9,8 +9,13 @@ module Asciidoctor
|
|
9
9
|
require_relative 'java'
|
10
10
|
|
11
11
|
def self.run(*args)
|
12
|
-
|
13
|
-
|
12
|
+
if args.last.is_a? Hash
|
13
|
+
opts = args.pop.dup
|
14
|
+
else
|
15
|
+
opts = {}
|
16
|
+
end
|
17
|
+
|
18
|
+
in_data = opts[:stdin_data]
|
14
19
|
|
15
20
|
if Hash === args.first
|
16
21
|
env = args.shift.dup
|
@@ -19,6 +24,9 @@ module Asciidoctor
|
|
19
24
|
end
|
20
25
|
|
21
26
|
pb = java.lang.ProcessBuilder.new(*args)
|
27
|
+
|
28
|
+
pb.directory(java.io.File.new(opts[:chdir] || Dir.pwd))
|
29
|
+
|
22
30
|
env.each_pair do |key, value|
|
23
31
|
pb.environment.put(key, value)
|
24
32
|
end
|
Binary file
|
data/lib/asciidoctor-diagram.rb
CHANGED
@@ -3,6 +3,8 @@ require_relative 'asciidoctor-diagram/barcode'
|
|
3
3
|
require_relative 'asciidoctor-diagram/blockdiag'
|
4
4
|
require_relative 'asciidoctor-diagram/bpmn'
|
5
5
|
require_relative 'asciidoctor-diagram/bytefield'
|
6
|
+
require_relative 'asciidoctor-diagram/d2'
|
7
|
+
require_relative 'asciidoctor-diagram/dbml'
|
6
8
|
require_relative 'asciidoctor-diagram/diagrams'
|
7
9
|
require_relative 'asciidoctor-diagram/ditaa'
|
8
10
|
require_relative 'asciidoctor-diagram/dpic'
|
@@ -20,6 +22,7 @@ require_relative 'asciidoctor-diagram/plantuml'
|
|
20
22
|
require_relative 'asciidoctor-diagram/salt'
|
21
23
|
require_relative 'asciidoctor-diagram/shaape'
|
22
24
|
require_relative 'asciidoctor-diagram/smcat'
|
25
|
+
require_relative 'asciidoctor-diagram/structurizr'
|
23
26
|
require_relative 'asciidoctor-diagram/svgbob'
|
24
27
|
require_relative 'asciidoctor-diagram/symbolator'
|
25
28
|
require_relative 'asciidoctor-diagram/syntrax'
|
data/spec/d2_spec.rb
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
require_relative 'test_helper'
|
2
|
+
|
3
|
+
D2_CODE = <<-eos
|
4
|
+
# Actors
|
5
|
+
hans: Hans Niemann
|
6
|
+
|
7
|
+
defendants: {
|
8
|
+
mc: Magnus Carlsen
|
9
|
+
playmagnus: Play Magnus Group
|
10
|
+
chesscom: Chess.com
|
11
|
+
naka: Hikaru Nakamura
|
12
|
+
|
13
|
+
mc -> playmagnus: Owns majority
|
14
|
+
playmagnus <-> chesscom: Merger talks
|
15
|
+
chesscom -> naka: Sponsoring
|
16
|
+
}
|
17
|
+
|
18
|
+
# Accusations
|
19
|
+
hans -> defendants: 'sueing for $100M'
|
20
|
+
|
21
|
+
# Offense
|
22
|
+
defendants.naka -> hans: Accused of cheating on his stream
|
23
|
+
defendants.mc -> hans: Lost then withdrew with accusations
|
24
|
+
defendants.chesscom -> hans: 72 page report of cheating
|
25
|
+
eos
|
26
|
+
|
27
|
+
describe Asciidoctor::Diagram::D2InlineMacroProcessor, :broken_on_windows do
|
28
|
+
include_examples "inline_macro", :d2, D2_CODE, [:svg]
|
29
|
+
end
|
30
|
+
|
31
|
+
describe Asciidoctor::Diagram::D2BlockMacroProcessor, :broken_on_windows do
|
32
|
+
include_examples "block_macro", :d2, D2_CODE, [:svg]
|
33
|
+
end
|
34
|
+
|
35
|
+
describe Asciidoctor::Diagram::D2BlockProcessor, :broken_on_windows do
|
36
|
+
include_examples "block", :d2, D2_CODE, [:svg]
|
37
|
+
|
38
|
+
it "should support sketch mode" do
|
39
|
+
doc = <<-eos
|
40
|
+
= Hello, D2!
|
41
|
+
Doc Writer <doc@example.com>
|
42
|
+
|
43
|
+
== First Section
|
44
|
+
|
45
|
+
[d2, sketch=true]
|
46
|
+
----
|
47
|
+
#{D2_CODE}
|
48
|
+
----
|
49
|
+
eos
|
50
|
+
|
51
|
+
d = load_asciidoc doc
|
52
|
+
expect(d).to_not be_nil
|
53
|
+
|
54
|
+
b = d.find { |bl| bl.context == :image }
|
55
|
+
expect(b).to_not be_nil
|
56
|
+
target = b.attributes['target']
|
57
|
+
expect(target).to match(/\.svg$/)
|
58
|
+
expect(File.exist?(target)).to be true
|
59
|
+
end
|
60
|
+
end
|
data/spec/dbml_spec.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative 'test_helper'
|
2
|
+
|
3
|
+
DBML_CODE = <<-eos
|
4
|
+
Table users {
|
5
|
+
id integer
|
6
|
+
username varchar
|
7
|
+
role varchar
|
8
|
+
created_at timestamp
|
9
|
+
}
|
10
|
+
|
11
|
+
Table posts {
|
12
|
+
id integer [primary key]
|
13
|
+
title varchar
|
14
|
+
body text [note: 'Content of the post']
|
15
|
+
user_id integer
|
16
|
+
created_at timestamp
|
17
|
+
}
|
18
|
+
|
19
|
+
Ref: posts.user_id > users.id
|
20
|
+
eos
|
21
|
+
|
22
|
+
describe Asciidoctor::Diagram::DbmlInlineMacroProcessor, :broken_on_windows do
|
23
|
+
include_examples "inline_macro", :dbml, DBML_CODE, [:svg]
|
24
|
+
end
|
25
|
+
|
26
|
+
describe Asciidoctor::Diagram::DbmlBlockMacroProcessor, :broken_on_windows do
|
27
|
+
include_examples "block_macro", :dbml, DBML_CODE, [:svg]
|
28
|
+
end
|
29
|
+
|
30
|
+
describe Asciidoctor::Diagram::DbmlBlockProcessor, :broken_on_windows do
|
31
|
+
include_examples "block", :dbml, DBML_CODE, [:svg]
|
32
|
+
end
|
data/spec/plantuml_spec.rb
CHANGED
@@ -278,7 +278,7 @@ Foo1 -> Foo2 : To boundary
|
|
278
278
|
expect(File.exist?(target)).to be true
|
279
279
|
|
280
280
|
svg = File.read(target, :encoding => Encoding::UTF_8)
|
281
|
-
expect(svg).to match(/<[^<]+
|
281
|
+
expect(svg).to match(/<[^<]+ stop-color=["']#7C9AB9["']/)
|
282
282
|
end
|
283
283
|
|
284
284
|
it 'should use plantuml include dir when specified as a document attribute' do
|
data/spec/shared_examples.rb
CHANGED
@@ -757,8 +757,8 @@ Doc Writer <doc@example.com>
|
|
757
757
|
scaled_image = d.find { |bl| bl.context == :image }
|
758
758
|
|
759
759
|
unless formats[0] == :pdf
|
760
|
-
expect(scaled_image.attributes['width']).to be_within(
|
761
|
-
expect(scaled_image.attributes['height']).to be_within(
|
760
|
+
expect(scaled_image.attributes['width']).to be_within(10).of(unscaled_image.attributes['width'] * 2)
|
761
|
+
expect(scaled_image.attributes['height']).to be_within(10).of(unscaled_image.attributes['height'] * 2)
|
762
762
|
end
|
763
763
|
end
|
764
764
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asciidoctor-diagram
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pepijn Van Eeckhoudt
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-04-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -156,6 +156,12 @@ files:
|
|
156
156
|
- lib/asciidoctor-diagram/bytefield.rb
|
157
157
|
- lib/asciidoctor-diagram/bytefield/converter.rb
|
158
158
|
- lib/asciidoctor-diagram/bytefield/extension.rb
|
159
|
+
- lib/asciidoctor-diagram/d2.rb
|
160
|
+
- lib/asciidoctor-diagram/d2/converter.rb
|
161
|
+
- lib/asciidoctor-diagram/d2/extension.rb
|
162
|
+
- lib/asciidoctor-diagram/dbml.rb
|
163
|
+
- lib/asciidoctor-diagram/dbml/converter.rb
|
164
|
+
- lib/asciidoctor-diagram/dbml/extension.rb
|
159
165
|
- lib/asciidoctor-diagram/diagram_converter.rb
|
160
166
|
- lib/asciidoctor-diagram/diagram_processor.rb
|
161
167
|
- lib/asciidoctor-diagram/diagram_source.rb
|
@@ -164,7 +170,7 @@ files:
|
|
164
170
|
- lib/asciidoctor-diagram/diagrams/extension.rb
|
165
171
|
- lib/asciidoctor-diagram/ditaa.rb
|
166
172
|
- lib/asciidoctor-diagram/ditaa/converter.rb
|
167
|
-
- lib/asciidoctor-diagram/ditaa/ditaa-
|
173
|
+
- lib/asciidoctor-diagram/ditaa/ditaa-2.0.0.jar
|
168
174
|
- lib/asciidoctor-diagram/ditaa/extension.rb
|
169
175
|
- lib/asciidoctor-diagram/dpic.rb
|
170
176
|
- lib/asciidoctor-diagram/dpic/converter.rb
|
@@ -204,7 +210,7 @@ files:
|
|
204
210
|
- lib/asciidoctor-diagram/plantuml.rb
|
205
211
|
- lib/asciidoctor-diagram/plantuml/converter.rb
|
206
212
|
- lib/asciidoctor-diagram/plantuml/extension.rb
|
207
|
-
- lib/asciidoctor-diagram/plantuml/plantuml-
|
213
|
+
- lib/asciidoctor-diagram/plantuml/plantuml-2.0.0.jar
|
208
214
|
- lib/asciidoctor-diagram/salt.rb
|
209
215
|
- lib/asciidoctor-diagram/shaape.rb
|
210
216
|
- lib/asciidoctor-diagram/shaape/converter.rb
|
@@ -212,6 +218,11 @@ files:
|
|
212
218
|
- lib/asciidoctor-diagram/smcat.rb
|
213
219
|
- lib/asciidoctor-diagram/smcat/converter.rb
|
214
220
|
- lib/asciidoctor-diagram/smcat/extension.rb
|
221
|
+
- lib/asciidoctor-diagram/structurizr.rb
|
222
|
+
- lib/asciidoctor-diagram/structurizr/converter.rb
|
223
|
+
- lib/asciidoctor-diagram/structurizr/extension.rb
|
224
|
+
- lib/asciidoctor-diagram/structurizr/renderers.rb
|
225
|
+
- lib/asciidoctor-diagram/structurizr/structurizr-2.0.1.jar
|
215
226
|
- lib/asciidoctor-diagram/svgbob.rb
|
216
227
|
- lib/asciidoctor-diagram/svgbob/converter.rb
|
217
228
|
- lib/asciidoctor-diagram/svgbob/extension.rb
|
@@ -221,6 +232,7 @@ files:
|
|
221
232
|
- lib/asciidoctor-diagram/syntrax.rb
|
222
233
|
- lib/asciidoctor-diagram/syntrax/converter.rb
|
223
234
|
- lib/asciidoctor-diagram/syntrax/extension.rb
|
235
|
+
- lib/asciidoctor-diagram/syntrax/syntrax-2.0.2.jar
|
224
236
|
- lib/asciidoctor-diagram/tikz.rb
|
225
237
|
- lib/asciidoctor-diagram/tikz/converter.rb
|
226
238
|
- lib/asciidoctor-diagram/tikz/extension.rb
|
@@ -237,7 +249,7 @@ files:
|
|
237
249
|
- lib/asciidoctor-diagram/util/pdf.rb
|
238
250
|
- lib/asciidoctor-diagram/util/platform.rb
|
239
251
|
- lib/asciidoctor-diagram/util/png.rb
|
240
|
-
- lib/asciidoctor-diagram/util/server-
|
252
|
+
- lib/asciidoctor-diagram/util/server-2.0.0.jar
|
241
253
|
- lib/asciidoctor-diagram/util/svg.rb
|
242
254
|
- lib/asciidoctor-diagram/util/which.rb
|
243
255
|
- lib/asciidoctor-diagram/vega.rb
|
@@ -252,6 +264,8 @@ files:
|
|
252
264
|
- spec/blockdiag_spec.rb
|
253
265
|
- spec/bpmn_spec.rb
|
254
266
|
- spec/bytefield_spec.rb
|
267
|
+
- spec/d2_spec.rb
|
268
|
+
- spec/dbml_spec.rb
|
255
269
|
- spec/diagrams_spec.rb
|
256
270
|
- spec/ditaa_spec.rb
|
257
271
|
- spec/dpic_spec.rb
|
@@ -281,8 +295,13 @@ files:
|
|
281
295
|
homepage: https://github.com/asciidoctor/asciidoctor-diagram
|
282
296
|
licenses:
|
283
297
|
- MIT
|
284
|
-
metadata:
|
285
|
-
|
298
|
+
metadata:
|
299
|
+
bug_tracker_uri: https://github.com/asciidoctor/asciidoctor-diagram/issues
|
300
|
+
changelog_uri: https://github.com/asciidoctor/asciidoctor-diagram/blob/master/CHANGELOG.adoc
|
301
|
+
documentation_uri: https://docs.asciidoctor.org/diagram-extension/latest/
|
302
|
+
homepage_uri: https://github.com/asciidoctor/asciidoctor-diagram
|
303
|
+
source_code_uri: https://github.com/asciidoctor/asciidoctor-diagram.git
|
304
|
+
post_install_message:
|
286
305
|
rdoc_options: []
|
287
306
|
require_paths:
|
288
307
|
- lib
|
@@ -297,8 +316,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
297
316
|
- !ruby/object:Gem::Version
|
298
317
|
version: '0'
|
299
318
|
requirements: []
|
300
|
-
rubygems_version: 3.
|
301
|
-
signing_key:
|
319
|
+
rubygems_version: 3.0.3.1
|
320
|
+
signing_key:
|
302
321
|
specification_version: 4
|
303
322
|
summary: A family of Asciidoctor extensions that generate images from a broad range
|
304
323
|
of embedded plain text diagram descriptions, including PlantUML, ditaa, Kroki, and
|
@@ -309,6 +328,8 @@ test_files:
|
|
309
328
|
- spec/blockdiag_spec.rb
|
310
329
|
- spec/bpmn_spec.rb
|
311
330
|
- spec/bytefield_spec.rb
|
331
|
+
- spec/d2_spec.rb
|
332
|
+
- spec/dbml_spec.rb
|
312
333
|
- spec/diagrams_spec.rb
|
313
334
|
- spec/ditaa_spec.rb
|
314
335
|
- spec/dpic_spec.rb
|
Binary file
|
Binary file
|
Binary file
|