asciidoctor-diagram 2.2.0 → 2.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.adoc +27 -0
- data/docs/modules/ROOT/partials/advanced.adoc +6 -3
- data/docs/modules/ROOT/partials/create_diagram.adoc +1 -1
- data/examples/features.adoc +25 -0
- data/lib/asciidoctor-diagram/barcode/dependencies.rb +2 -2
- data/lib/asciidoctor-diagram/diagram_processor.rb +12 -2
- data/lib/asciidoctor-diagram/ditaa/converter.rb +4 -3
- data/lib/asciidoctor-diagram/ditaa/ditaa-1.3.21.jar +0 -0
- data/lib/asciidoctor-diagram/graphviz_py/converter.rb +42 -0
- data/lib/asciidoctor-diagram/graphviz_py/extension.rb +18 -0
- data/lib/asciidoctor-diagram/graphviz_py.rb +8 -0
- data/lib/asciidoctor-diagram/plantuml/converter.rb +25 -16
- data/lib/asciidoctor-diagram/plantuml/plantuml-1.3.21.jar +0 -0
- data/lib/asciidoctor-diagram/svgbob/converter.rb +1 -1
- data/lib/asciidoctor-diagram/util/server-1.3.21.jar +0 -0
- data/lib/asciidoctor-diagram/version.rb +1 -1
- data/lib/asciidoctor-diagram.rb +1 -0
- data/spec/ditaa_spec.rb +37 -0
- data/spec/graphviz_py_spec.rb +33 -0
- data/spec/lilypond_spec.rb +3 -3
- data/spec/msc_spec.rb +3 -3
- data/spec/plantuml_spec.rb +67 -0
- data/spec/symbolator_spec.rb +3 -3
- data/spec/syntrax_spec.rb +3 -3
- data/spec/wavedrom_spec.rb +3 -3
- metadata +16 -11
- data/lib/asciidoctor-diagram/ditaa/ditaa-1.3.20.jar +0 -0
- data/lib/asciidoctor-diagram/plantuml/plantuml-1.3.20.jar +0 -0
- data/lib/asciidoctor-diagram/util/server-1.3.20.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: 2c2f34fcc568a14ae6c72579b4a9e8ef429cbc1b023ae9c20945084a212ad844
|
4
|
+
data.tar.gz: 7a11bdd3d63d22c3e472671b9a3e74ea3945edf80757350aaf6bfde690a9c392
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec745e7abc74b9ab114922de70fcc2fe01cd367cb60b1d47e90ee28ce120c7082400fa7d7176c2b0c9f47ea0a643a19dde64861d63460920b19e4157ff1aa706
|
7
|
+
data.tar.gz: 9bc01b94478a69b8782e5fe7c3ffffa95cc9dbdbbc5092f64f3dfc340f84bdc65d0cb62c72445fbb3dbcce12befe2f4d6011782542ade71681e2a9636393872d
|
data/CHANGELOG.adoc
CHANGED
@@ -1,5 +1,32 @@
|
|
1
1
|
= Asciidoctor-diagram Changelog
|
2
2
|
|
3
|
+
== 2.2.3
|
4
|
+
|
5
|
+
Enhancements::
|
6
|
+
|
7
|
+
* Issue #373: Add support for rendering Ditaa diagrams via PlantUML using ditaamini
|
8
|
+
* Issue #383: Allow bullet characters for Ditaa to be overridden
|
9
|
+
|
10
|
+
== 2.2.2
|
11
|
+
|
12
|
+
Enhancements::
|
13
|
+
|
14
|
+
* Issue #375: Add support for PlantUML include directories (@mskyaxl)
|
15
|
+
* Add support for `graphviz-py` (@Alwinator)
|
16
|
+
* Issue #380: Allow local PlantUML preprocessing to be disabled using the `preprocess` attribute
|
17
|
+
|
18
|
+
Bug Fixes::
|
19
|
+
|
20
|
+
* Issue #370: Only use absolute paths for 'interactive' style SVGs when 'data-uri' is also in use.
|
21
|
+
|
22
|
+
== 2.2.1
|
23
|
+
|
24
|
+
Bug Fixes::
|
25
|
+
|
26
|
+
* Issue #366: Improve correctness of SVG images produced by Ditaa
|
27
|
+
* Issue #367: Resolve compatibility issue with rqrcode 2.1.0
|
28
|
+
* Issue #368: Respect `options` attribute when generating SVG images
|
29
|
+
|
3
30
|
== 2.2.0
|
4
31
|
|
5
32
|
Enhancements::
|
@@ -253,6 +253,7 @@ No specific attributes.
|
|
253
253
|
|debug |false |Renders the debug grid over the resulting image.
|
254
254
|
|fixed-slope |false |Makes sides of parallelograms and trapezoids fixed slope instead of fixed width.
|
255
255
|
|transparent |false |Makes the background of the image transparent instead of using the background color.
|
256
|
+
|bullet-characters|*o |The characters to recognize as bullets
|
256
257
|
|===
|
257
258
|
|
258
259
|
==== Gnuplot
|
@@ -317,9 +318,11 @@ No specific attributes.
|
|
317
318
|
|
318
319
|
[cols=">,<,<",options="header"]
|
319
320
|
|===
|
320
|
-
|Name
|
321
|
-
|config
|
322
|
-
|size-limit
|
321
|
+
|Name |Default value |Description
|
322
|
+
|config |unspecified |Path to a config file to pass to PlantUML.
|
323
|
+
|size-limit |4096 |The maximum dimensions (width and height) of generated diagrams.
|
324
|
+
|includedir |unspecified |sets a common directory for puml includes (plantuml.include.path)
|
325
|
+
|preprocess |true |Preprocess PlantUML code before rendering the diagram.
|
323
326
|
|===
|
324
327
|
|
325
328
|
==== State Machine Cat
|
@@ -23,7 +23,7 @@ The following diagram types and output formats are available:
|
|
23
23
|
|Diagram Type |gif |pdf |png |svg |txt
|
24
24
|
|{uri-a2s}[a2s] | | | |{check}|
|
25
25
|
|{uri-actdiag}[actdiag] | |{check}|{check}|{check}|
|
26
|
-
|
26
|
+
|<<barcode,barcode>> | | |{check}| |{check}
|
27
27
|
|{uri-blockdiag}[blockdiag] | |{check}|{check}|{check}|
|
28
28
|
|{uri-bpmn}[bpmn] | |{check}|{check}|{check}|
|
29
29
|
|{uri-bytefield}[bytefield] | | | |{check}|
|
data/examples/features.adoc
CHANGED
@@ -118,6 +118,31 @@ graph ethane {
|
|
118
118
|
}
|
119
119
|
----
|
120
120
|
|
121
|
+
With https://github.com/Alwinator/graphviz-py[graphviz_py] you can also use variables and Python code to do calculations:
|
122
|
+
|
123
|
+
[graphviz_py, "graphviz_py_example", "svg"]
|
124
|
+
----
|
125
|
+
graph python_graph {
|
126
|
+
{{
|
127
|
+
import math
|
128
|
+
|
129
|
+
value = 0.5
|
130
|
+
sin = math.sin(value)
|
131
|
+
cos = math.cos(value)
|
132
|
+
}}
|
133
|
+
|
134
|
+
A [label="{{= value }}"];
|
135
|
+
B [label="{{= sin }}"];
|
136
|
+
C [label="{{= cos }}"];
|
137
|
+
|
138
|
+
A -- B [headlabel="sin"];
|
139
|
+
A -- C [headlabel="cos"];
|
140
|
+
|
141
|
+
}
|
142
|
+
----
|
143
|
+
|
144
|
+
Don't forget to install graphviz-py as described https://github.com/Alwinator/graphviz-py#installation[here].
|
145
|
+
|
121
146
|
== Using standard asciidoc features
|
122
147
|
|
123
148
|
Any remaining other attributes that are specified on a diagram block are copied over to the generated block.
|
@@ -2,8 +2,8 @@ module Asciidoctor
|
|
2
2
|
module Diagram
|
3
3
|
module BarcodeDependencies
|
4
4
|
BARCODE_DEPENDENCIES = {'barby' => '~> 0.6.8'}
|
5
|
-
PNG_DEPENDENCIES = {'chunky_png' => '~> 1.4
|
6
|
-
QRCODE_DEPENDENCIES = {'rqrcode' => '~> 2.0
|
5
|
+
PNG_DEPENDENCIES = {'chunky_png' => '~> 1.4'}
|
6
|
+
QRCODE_DEPENDENCIES = {'rqrcode' => '~> 2.0'}
|
7
7
|
ALL_DEPENDENCIES = {}.merge(BARCODE_DEPENDENCIES).merge(PNG_DEPENDENCIES).merge(QRCODE_DEPENDENCIES)
|
8
8
|
end
|
9
9
|
end
|
@@ -238,12 +238,22 @@ module Asciidoctor
|
|
238
238
|
use_absolute_path = source.attr('data-uri', nil, true)
|
239
239
|
|
240
240
|
if format == :svg
|
241
|
-
|
241
|
+
if node.option? 'inline'
|
242
|
+
svg_type = 'inline'
|
243
|
+
elsif node.option? 'interactive'
|
244
|
+
svg_type = 'interactive'
|
245
|
+
else
|
246
|
+
svg_type = source.global_attr('svg-type')
|
247
|
+
end
|
248
|
+
|
242
249
|
case svg_type
|
243
250
|
when nil, 'static'
|
244
|
-
|
251
|
+
# Nothing to do
|
252
|
+
when 'inline'
|
245
253
|
node.set_option(svg_type)
|
246
254
|
use_absolute_path = true
|
255
|
+
when 'interactive'
|
256
|
+
node.set_option(svg_type)
|
247
257
|
else
|
248
258
|
raise "Unsupported SVG type: #{svg_type}"
|
249
259
|
end
|
@@ -20,7 +20,8 @@ module Asciidoctor
|
|
20
20
|
:shadows => lambda { |o, v| o << '--no-shadows' if v == 'false'},
|
21
21
|
:debug => lambda { |o, v| o << '--debug' if v == 'true'},
|
22
22
|
:fixed_slope => lambda { |o, v| o << '--fixed-slope' if v == 'true'},
|
23
|
-
:transparent => lambda { |o, v| o << '--transparent' if v == 'true'}
|
23
|
+
:transparent => lambda { |o, v| o << '--transparent' if v == 'true'},
|
24
|
+
:bullet_characters => lambda { |o, v| o << '--bullet-characters' << v if v }
|
24
25
|
}
|
25
26
|
|
26
27
|
CLASSPATH_ENV = 'DIAGRAM_DITAA_CLASSPATH'
|
@@ -31,7 +32,7 @@ module Asciidoctor
|
|
31
32
|
require 'asciidoctor-diagram/ditaa/classpath'
|
32
33
|
::Asciidoctor::Diagram::DitaaClasspath::JAR_FILES
|
33
34
|
rescue LoadError
|
34
|
-
raise "Could not load
|
35
|
+
raise "Could not load Ditaa. Eiter require 'asciidoctor-diagram-ditaamini' or specify the location of the Ditaa JAR(s) using the 'DIAGRAM_DITAA_CLASSPATH' environment variable."
|
35
36
|
end
|
36
37
|
end
|
37
38
|
|
@@ -96,4 +97,4 @@ module Asciidoctor
|
|
96
97
|
end
|
97
98
|
end
|
98
99
|
end
|
99
|
-
end
|
100
|
+
end
|
Binary file
|
@@ -0,0 +1,42 @@
|
|
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 GraphvizPyConverter
|
9
|
+
include DiagramConverter
|
10
|
+
include CliGenerator
|
11
|
+
|
12
|
+
def supported_formats
|
13
|
+
[:png, :pdf, :svg]
|
14
|
+
end
|
15
|
+
|
16
|
+
def collect_options(source)
|
17
|
+
{
|
18
|
+
:layout => source.attr('layout'),
|
19
|
+
:argument => source.attr('argument')
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
def convert(source, format, options)
|
24
|
+
generate_stdin(source.find_command('graphviz-py'), format.to_s, source.to_s) do |tool_path, output_path|
|
25
|
+
args = [tool_path, "-o#{Platform.native_path(output_path)}", "-T#{format.to_s}"]
|
26
|
+
|
27
|
+
layout = options[:layout]
|
28
|
+
args << "-K#{layout}" if layout
|
29
|
+
|
30
|
+
argument = options[:argument]
|
31
|
+
|
32
|
+
if argument
|
33
|
+
args << "-a"
|
34
|
+
args << argument
|
35
|
+
end
|
36
|
+
|
37
|
+
args
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative 'converter'
|
2
|
+
require_relative '../diagram_processor'
|
3
|
+
|
4
|
+
module Asciidoctor
|
5
|
+
module Diagram
|
6
|
+
class GraphvizPyBlockProcessor < DiagramBlockProcessor
|
7
|
+
use_converter GraphvizPyConverter
|
8
|
+
end
|
9
|
+
|
10
|
+
class GraphvizPyBlockMacroProcessor < DiagramBlockMacroProcessor
|
11
|
+
use_converter GraphvizPyConverter
|
12
|
+
end
|
13
|
+
|
14
|
+
class GraphvizPyInlineMacroProcessor < DiagramInlineMacroProcessor
|
15
|
+
use_converter GraphvizPyConverter
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
require 'asciidoctor/extensions'
|
2
|
+
require_relative 'graphviz_py/extension'
|
3
|
+
|
4
|
+
Asciidoctor::Extensions.register do
|
5
|
+
block Asciidoctor::Diagram::GraphvizPyBlockProcessor, :graphviz_py
|
6
|
+
block_macro Asciidoctor::Diagram::GraphvizPyBlockMacroProcessor, :graphviz_py
|
7
|
+
inline_macro Asciidoctor::Diagram::GraphvizPyInlineMacroProcessor, :graphviz_py
|
8
|
+
end
|
@@ -113,27 +113,36 @@ module Asciidoctor
|
|
113
113
|
|
114
114
|
code = "@start#{@tag}\n#{code}\n@end#{@tag}" unless code.index("@start") && code.index("@end")
|
115
115
|
|
116
|
-
|
116
|
+
should_preprocess = attr('preprocess', 'true') == 'true'
|
117
117
|
|
118
|
-
|
119
|
-
|
120
|
-
headers['X-PlantUML-Config'] = File.expand_path(config_file, base_dir)
|
121
|
-
end
|
118
|
+
if should_preprocess
|
119
|
+
headers = {}
|
122
120
|
|
123
|
-
|
121
|
+
config_file = attr('plantumlconfig', nil, true) || attr('config')
|
122
|
+
if config_file
|
123
|
+
headers['X-PlantUML-Config'] = File.expand_path(config_file, base_dir)
|
124
|
+
end
|
124
125
|
|
125
|
-
|
126
|
-
:url => '/plantumlpreprocessor',
|
127
|
-
:body => code,
|
128
|
-
:headers => headers
|
129
|
-
)
|
126
|
+
headers['X-PlantUML-Basedir'] = Platform.native_path(File.expand_path(base_dir))
|
130
127
|
|
131
|
-
|
132
|
-
|
133
|
-
|
128
|
+
include_dir = attr('includedir')
|
129
|
+
if include_dir
|
130
|
+
headers['X-PlantUML-IncludeDir'] = Platform.native_path(File.expand_path(include_dir, base_dir))
|
131
|
+
end
|
134
132
|
|
135
|
-
|
136
|
-
|
133
|
+
response = Java.send_request(
|
134
|
+
:url => '/plantumlpreprocessor',
|
135
|
+
:body => code,
|
136
|
+
:headers => headers
|
137
|
+
)
|
138
|
+
|
139
|
+
unless response[:code] == 200
|
140
|
+
raise Java.create_error("PlantUML preprocessing failed", response)
|
141
|
+
end
|
142
|
+
|
143
|
+
code = response[:body]
|
144
|
+
code.force_encoding(Encoding::UTF_8)
|
145
|
+
end
|
137
146
|
|
138
147
|
code
|
139
148
|
end
|
Binary file
|
@@ -44,7 +44,7 @@ module Asciidoctor
|
|
44
44
|
OPTIONS[option].call(flags, value)
|
45
45
|
end
|
46
46
|
|
47
|
-
generate_stdin(source.find_command('svgbob'), format.to_s, source.to_s) do |tool_path, output_path|
|
47
|
+
generate_stdin(source.find_command('svgbob', :alt_cmds => ['svgbob_cli']), format.to_s, source.to_s) do |tool_path, output_path|
|
48
48
|
([tool_path, '-o', Platform.native_path(output_path)] + flags)
|
49
49
|
end
|
50
50
|
end
|
Binary file
|
data/lib/asciidoctor-diagram.rb
CHANGED
@@ -9,6 +9,7 @@ require_relative 'asciidoctor-diagram/dpic'
|
|
9
9
|
require_relative 'asciidoctor-diagram/erd'
|
10
10
|
require_relative 'asciidoctor-diagram/gnuplot'
|
11
11
|
require_relative 'asciidoctor-diagram/graphviz'
|
12
|
+
require_relative 'asciidoctor-diagram/graphviz_py'
|
12
13
|
require_relative 'asciidoctor-diagram/lilypond'
|
13
14
|
require_relative 'asciidoctor-diagram/meme'
|
14
15
|
require_relative 'asciidoctor-diagram/mermaid'
|
data/spec/ditaa_spec.rb
CHANGED
@@ -151,4 +151,41 @@ This should cause a bug.
|
|
151
151
|
load_asciidoc doc
|
152
152
|
}.to raise_error(/Ambiguous input/i)
|
153
153
|
end
|
154
|
+
|
155
|
+
it "should support custom bullet characters" do
|
156
|
+
doc = <<-eos
|
157
|
+
= Hello, Ditaa!
|
158
|
+
Doc Writer <doc@example.com>
|
159
|
+
|
160
|
+
== First Section
|
161
|
+
|
162
|
+
[ditaa,format="svg",bullet-characters=x]
|
163
|
+
----
|
164
|
+
+-----------------+
|
165
|
+
| o Things to do |
|
166
|
+
| cGRE |
|
167
|
+
| x Cut the grass |
|
168
|
+
| x Buy jam |
|
169
|
+
| x Fix car |
|
170
|
+
| x Make website |
|
171
|
+
+-----------------+
|
172
|
+
----
|
173
|
+
eos
|
174
|
+
|
175
|
+
d = load_asciidoc doc
|
176
|
+
expect(d).to_not be_nil
|
177
|
+
|
178
|
+
b = d.find { |bl| bl.context == :image }
|
179
|
+
expect(b).to_not be_nil
|
180
|
+
|
181
|
+
expect(b.content_model).to eq :empty
|
182
|
+
|
183
|
+
target = b.attributes['target']
|
184
|
+
expect(target).to_not be_nil
|
185
|
+
expect(target).to match(/\.svg$/)
|
186
|
+
expect(File.exist?(target)).to be true
|
187
|
+
|
188
|
+
expect(b.attributes['width']).to_not be_nil
|
189
|
+
expect(b.attributes['height']).to_not be_nil
|
190
|
+
end
|
154
191
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require_relative 'test_helper'
|
2
|
+
|
3
|
+
GRAPHVIZ_PY_CODE = <<-eos
|
4
|
+
graph python_graph {
|
5
|
+
{{
|
6
|
+
import math
|
7
|
+
|
8
|
+
value = 0.5
|
9
|
+
sin = math.sin(value)
|
10
|
+
cos = math.cos(value)
|
11
|
+
}}
|
12
|
+
|
13
|
+
A [label="{{= value }}"];
|
14
|
+
B [label="{{= sin }}"];
|
15
|
+
C [label="{{= cos }}"];
|
16
|
+
|
17
|
+
A -- B [headlabel="sin"];
|
18
|
+
A -- C [headlabel="cos"];
|
19
|
+
|
20
|
+
}
|
21
|
+
eos
|
22
|
+
|
23
|
+
describe Asciidoctor::Diagram::GraphvizPyInlineMacroProcessor, :broken_on_github do
|
24
|
+
include_examples "inline_macro", :graphviz_py, GRAPHVIZ_PY_CODE, [:png, :svg]
|
25
|
+
end
|
26
|
+
|
27
|
+
describe Asciidoctor::Diagram::GraphvizPyBlockMacroProcessor, :broken_on_github do
|
28
|
+
include_examples "block_macro", :graphviz_py, GRAPHVIZ_PY_CODE, [:png, :svg]
|
29
|
+
end
|
30
|
+
|
31
|
+
describe Asciidoctor::Diagram::GraphvizPyBlockProcessor, :broken_on_github do
|
32
|
+
include_examples "block", :graphviz_py, GRAPHVIZ_PY_CODE, [:png, :svg]
|
33
|
+
end
|
data/spec/lilypond_spec.rb
CHANGED
@@ -4,14 +4,14 @@ LILYPOND_CODE = <<-eos
|
|
4
4
|
\\relative c' { f d f a d f e d cis a cis e a g f e }
|
5
5
|
eos
|
6
6
|
|
7
|
-
describe Asciidoctor::Diagram::LilypondInlineMacroProcessor do
|
7
|
+
describe Asciidoctor::Diagram::LilypondInlineMacroProcessor, :broken_on_windows do
|
8
8
|
include_examples "inline_macro", :lilypond, LILYPOND_CODE, [:png]
|
9
9
|
end
|
10
10
|
|
11
|
-
describe Asciidoctor::Diagram::LilypondBlockMacroProcessor do
|
11
|
+
describe Asciidoctor::Diagram::LilypondBlockMacroProcessor, :broken_on_windows do
|
12
12
|
include_examples "block_macro", :lilypond, LILYPOND_CODE, [:png]
|
13
13
|
end
|
14
14
|
|
15
|
-
describe Asciidoctor::Diagram::LilypondBlockProcessor do
|
15
|
+
describe Asciidoctor::Diagram::LilypondBlockProcessor, :broken_on_windows do
|
16
16
|
include_examples "block", :lilypond, LILYPOND_CODE, [:png]
|
17
17
|
end
|
data/spec/msc_spec.rb
CHANGED
@@ -24,14 +24,14 @@ msc {
|
|
24
24
|
}
|
25
25
|
eos
|
26
26
|
|
27
|
-
describe Asciidoctor::Diagram::MscInlineMacroProcessor do
|
27
|
+
describe Asciidoctor::Diagram::MscInlineMacroProcessor, :broken_on_windows do
|
28
28
|
include_examples "inline_macro", :msc, MSC_CODE, [:png, :svg]
|
29
29
|
end
|
30
30
|
|
31
|
-
describe Asciidoctor::Diagram::MscBlockMacroProcessor do
|
31
|
+
describe Asciidoctor::Diagram::MscBlockMacroProcessor, :broken_on_windows do
|
32
32
|
include_examples "block_macro", :msc, MSC_CODE, [:png, :svg]
|
33
33
|
end
|
34
34
|
|
35
|
-
describe Asciidoctor::Diagram::MscBlockProcessor do
|
35
|
+
describe Asciidoctor::Diagram::MscBlockProcessor, :broken_on_windows do
|
36
36
|
include_examples "block", :msc, MSC_CODE, [:png, :svg]
|
37
37
|
end
|
data/spec/plantuml_spec.rb
CHANGED
@@ -253,6 +253,43 @@ skinparam ArrowColor #DEADBE
|
|
253
253
|
expect(svg).to match(/<[^<]+ fill=["']#DEADBE["']/)
|
254
254
|
end
|
255
255
|
|
256
|
+
it 'should use plantuml include dir when specified as a document attribute' do
|
257
|
+
doc = <<-eos
|
258
|
+
= Hello, PlantUML!
|
259
|
+
Doc Writer <doc@example.com>
|
260
|
+
:plantuml-includedir: include
|
261
|
+
:plantuml-format: svg
|
262
|
+
|
263
|
+
== First Section
|
264
|
+
|
265
|
+
[plantuml]
|
266
|
+
----
|
267
|
+
!include common.puml
|
268
|
+
actor Foo1
|
269
|
+
boundary Foo2
|
270
|
+
Foo1 -> Foo2 : To boundary
|
271
|
+
----
|
272
|
+
eos
|
273
|
+
|
274
|
+
includefile = <<-eos
|
275
|
+
skinparam ArrowColor #DEADBE
|
276
|
+
eos
|
277
|
+
Dir.mkdir('include')
|
278
|
+
File.open('include/common.puml', 'w') do |f|
|
279
|
+
f.write includefile
|
280
|
+
end
|
281
|
+
|
282
|
+
d = load_asciidoc doc
|
283
|
+
b = d.find { |bl| bl.context == :image }
|
284
|
+
|
285
|
+
target = b.attributes['target']
|
286
|
+
expect(target).to_not be_nil
|
287
|
+
expect(File.exist?(target)).to be true
|
288
|
+
|
289
|
+
svg = File.read(target, :encoding => Encoding::UTF_8)
|
290
|
+
expect(svg).to match(/<[^<]+ fill=["']#DEADBE["']/)
|
291
|
+
end
|
292
|
+
|
256
293
|
it 'should support salt diagrams using salt block type' do
|
257
294
|
doc = <<-eos
|
258
295
|
= Hello, PlantUML!
|
@@ -356,6 +393,36 @@ salt
|
|
356
393
|
expect(b.attributes['height']).to be_nil
|
357
394
|
end
|
358
395
|
|
396
|
+
it 'should support ditaa diagrams' do
|
397
|
+
doc = <<-eos
|
398
|
+
= Hello, PlantUML!
|
399
|
+
Doc Writer <doc@example.com>
|
400
|
+
|
401
|
+
== First Section
|
402
|
+
|
403
|
+
[plantuml, format="png"]
|
404
|
+
----
|
405
|
+
@startditaa -E
|
406
|
+
+---------+
|
407
|
+
| example |
|
408
|
+
+---------+
|
409
|
+
@endditaa
|
410
|
+
----
|
411
|
+
eos
|
412
|
+
|
413
|
+
d = load_asciidoc doc, :attributes => {'backend' => 'docbook5'}
|
414
|
+
expect(d).to_not be_nil
|
415
|
+
|
416
|
+
b = d.find { |bl| bl.context == :image }
|
417
|
+
expect(b).to_not be_nil
|
418
|
+
|
419
|
+
target = b.attributes['target']
|
420
|
+
expect(File.exist?(target)).to be true
|
421
|
+
|
422
|
+
expect(b.attributes['width']).to be_nil
|
423
|
+
expect(b.attributes['height']).to be_nil
|
424
|
+
end
|
425
|
+
|
359
426
|
it 'should handle embedded creole images correctly' do
|
360
427
|
creole_doc = <<-eos
|
361
428
|
= Hello, PlantUML!
|
data/spec/symbolator_spec.rb
CHANGED
@@ -14,14 +14,14 @@ package demo is
|
|
14
14
|
end package;
|
15
15
|
eos
|
16
16
|
|
17
|
-
describe Asciidoctor::Diagram::SymbolatorInlineMacroProcessor, :broken_on_windows do
|
17
|
+
describe Asciidoctor::Diagram::SymbolatorInlineMacroProcessor, :broken_on_windows, :broken_on_github do
|
18
18
|
include_examples "inline_macro", :symbolator, SYMBOLATOR_CODE, [:png, :svg, :pdf]
|
19
19
|
end
|
20
20
|
|
21
|
-
describe Asciidoctor::Diagram::SymbolatorBlockMacroProcessor, :broken_on_windows do
|
21
|
+
describe Asciidoctor::Diagram::SymbolatorBlockMacroProcessor, :broken_on_windows, :broken_on_github do
|
22
22
|
include_examples "block_macro", :symbolator, SYMBOLATOR_CODE, [:png, :svg, :pdf]
|
23
23
|
end
|
24
24
|
|
25
|
-
describe Asciidoctor::Diagram::SymbolatorBlockProcessor, :broken_on_windows do
|
25
|
+
describe Asciidoctor::Diagram::SymbolatorBlockProcessor, :broken_on_windows, :broken_on_github do
|
26
26
|
include_examples "block", :symbolator, SYMBOLATOR_CODE, [:png, :svg, :pdf]
|
27
27
|
end
|
data/spec/syntrax_spec.rb
CHANGED
@@ -9,14 +9,14 @@ indentstack(10,
|
|
9
9
|
)
|
10
10
|
eos
|
11
11
|
|
12
|
-
describe Asciidoctor::Diagram::SyntraxInlineMacroProcessor, :broken_on_windows do
|
12
|
+
describe Asciidoctor::Diagram::SyntraxInlineMacroProcessor, :broken_on_windows, :broken_on_github do
|
13
13
|
include_examples "inline_macro", :syntrax, SYNTRAX_CODE, [:png, :svg]
|
14
14
|
end
|
15
15
|
|
16
|
-
describe Asciidoctor::Diagram::SyntraxBlockMacroProcessor, :broken_on_windows do
|
16
|
+
describe Asciidoctor::Diagram::SyntraxBlockMacroProcessor, :broken_on_windows, :broken_on_github do
|
17
17
|
include_examples "block_macro", :syntrax, SYNTRAX_CODE, [:png, :svg]
|
18
18
|
end
|
19
19
|
|
20
|
-
describe Asciidoctor::Diagram::SyntraxBlockProcessor, :broken_on_windows do
|
20
|
+
describe Asciidoctor::Diagram::SyntraxBlockProcessor, :broken_on_windows, :broken_on_github do
|
21
21
|
include_examples "block", :syntrax, SYNTRAX_CODE, [:png, :svg]
|
22
22
|
end
|
data/spec/wavedrom_spec.rb
CHANGED
@@ -8,14 +8,14 @@ WAVEDROM_CODE = <<-eos
|
|
8
8
|
]}
|
9
9
|
eos
|
10
10
|
|
11
|
-
describe Asciidoctor::Diagram::WavedromInlineMacroProcessor, :broken_on_windows do
|
11
|
+
describe Asciidoctor::Diagram::WavedromInlineMacroProcessor, :broken_on_windows, :broken_on_github do
|
12
12
|
include_examples "inline_macro", :wavedrom, WAVEDROM_CODE, [:png, :svg]
|
13
13
|
end
|
14
14
|
|
15
|
-
describe Asciidoctor::Diagram::WavedromBlockMacroProcessor, :broken_on_windows do
|
15
|
+
describe Asciidoctor::Diagram::WavedromBlockMacroProcessor, :broken_on_windows, :broken_on_github do
|
16
16
|
include_examples "block_macro", :wavedrom, WAVEDROM_CODE, [:png, :svg]
|
17
17
|
end
|
18
18
|
|
19
|
-
describe Asciidoctor::Diagram::WavedromBlockProcessor, :broken_on_windows do
|
19
|
+
describe Asciidoctor::Diagram::WavedromBlockProcessor, :broken_on_windows, :broken_on_github do
|
20
20
|
include_examples "block", :wavedrom, WAVEDROM_CODE, [:png, :svg]
|
21
21
|
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.3
|
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:
|
11
|
+
date: 2022-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -78,14 +78,14 @@ dependencies:
|
|
78
78
|
requirements:
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: 1.0
|
81
|
+
version: '1.0'
|
82
82
|
type: :runtime
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
86
|
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version: 1.0
|
88
|
+
version: '1.0'
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
90
|
name: asciidoctor-diagram-plantuml
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -164,7 +164,7 @@ files:
|
|
164
164
|
- lib/asciidoctor-diagram/diagrams/extension.rb
|
165
165
|
- lib/asciidoctor-diagram/ditaa.rb
|
166
166
|
- lib/asciidoctor-diagram/ditaa/converter.rb
|
167
|
-
- lib/asciidoctor-diagram/ditaa/ditaa-1.3.
|
167
|
+
- lib/asciidoctor-diagram/ditaa/ditaa-1.3.21.jar
|
168
168
|
- lib/asciidoctor-diagram/ditaa/extension.rb
|
169
169
|
- lib/asciidoctor-diagram/dpic.rb
|
170
170
|
- lib/asciidoctor-diagram/dpic/converter.rb
|
@@ -178,6 +178,9 @@ files:
|
|
178
178
|
- lib/asciidoctor-diagram/graphviz.rb
|
179
179
|
- lib/asciidoctor-diagram/graphviz/converter.rb
|
180
180
|
- lib/asciidoctor-diagram/graphviz/extension.rb
|
181
|
+
- lib/asciidoctor-diagram/graphviz_py.rb
|
182
|
+
- lib/asciidoctor-diagram/graphviz_py/converter.rb
|
183
|
+
- lib/asciidoctor-diagram/graphviz_py/extension.rb
|
181
184
|
- lib/asciidoctor-diagram/http/converter.rb
|
182
185
|
- lib/asciidoctor-diagram/http/server.rb
|
183
186
|
- lib/asciidoctor-diagram/lilypond.rb
|
@@ -201,7 +204,7 @@ files:
|
|
201
204
|
- lib/asciidoctor-diagram/plantuml.rb
|
202
205
|
- lib/asciidoctor-diagram/plantuml/converter.rb
|
203
206
|
- lib/asciidoctor-diagram/plantuml/extension.rb
|
204
|
-
- lib/asciidoctor-diagram/plantuml/plantuml-1.3.
|
207
|
+
- lib/asciidoctor-diagram/plantuml/plantuml-1.3.21.jar
|
205
208
|
- lib/asciidoctor-diagram/salt.rb
|
206
209
|
- lib/asciidoctor-diagram/shaape.rb
|
207
210
|
- lib/asciidoctor-diagram/shaape/converter.rb
|
@@ -234,7 +237,7 @@ files:
|
|
234
237
|
- lib/asciidoctor-diagram/util/pdf.rb
|
235
238
|
- lib/asciidoctor-diagram/util/platform.rb
|
236
239
|
- lib/asciidoctor-diagram/util/png.rb
|
237
|
-
- lib/asciidoctor-diagram/util/server-1.3.
|
240
|
+
- lib/asciidoctor-diagram/util/server-1.3.21.jar
|
238
241
|
- lib/asciidoctor-diagram/util/svg.rb
|
239
242
|
- lib/asciidoctor-diagram/util/which.rb
|
240
243
|
- lib/asciidoctor-diagram/vega.rb
|
@@ -254,6 +257,7 @@ files:
|
|
254
257
|
- spec/dpic_spec.rb
|
255
258
|
- spec/erd_spec.rb
|
256
259
|
- spec/gnuplot_spec.rb
|
260
|
+
- spec/graphviz_py_spec.rb
|
257
261
|
- spec/graphviz_spec.rb
|
258
262
|
- spec/lilypond_spec.rb
|
259
263
|
- spec/man.jpg
|
@@ -278,7 +282,7 @@ homepage: https://github.com/asciidoctor/asciidoctor-diagram
|
|
278
282
|
licenses:
|
279
283
|
- MIT
|
280
284
|
metadata: {}
|
281
|
-
post_install_message:
|
285
|
+
post_install_message:
|
282
286
|
rdoc_options: []
|
283
287
|
require_paths:
|
284
288
|
- lib
|
@@ -293,8 +297,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
293
297
|
- !ruby/object:Gem::Version
|
294
298
|
version: '0'
|
295
299
|
requirements: []
|
296
|
-
rubygems_version: 3.
|
297
|
-
signing_key:
|
300
|
+
rubygems_version: 3.2.22
|
301
|
+
signing_key:
|
298
302
|
specification_version: 4
|
299
303
|
summary: A family of Asciidoctor extensions that generate images from a broad range
|
300
304
|
of embedded plain text diagram descriptions, including PlantUML, ditaa, Kroki, and
|
@@ -310,6 +314,7 @@ test_files:
|
|
310
314
|
- spec/dpic_spec.rb
|
311
315
|
- spec/erd_spec.rb
|
312
316
|
- spec/gnuplot_spec.rb
|
317
|
+
- spec/graphviz_py_spec.rb
|
313
318
|
- spec/graphviz_spec.rb
|
314
319
|
- spec/lilypond_spec.rb
|
315
320
|
- spec/man.jpg
|
Binary file
|
Binary file
|
Binary file
|