asciidoctor-diagram 2.2.14 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.adoc +35 -0
- data/README.adoc +13 -13
- data/lib/asciidoctor-diagram/diagram_source.rb +22 -28
- data/lib/asciidoctor-diagram/ditaa/ditaa-2.1.0.jar +0 -0
- data/lib/asciidoctor-diagram/plantuml/converter.rb +10 -4
- data/lib/asciidoctor-diagram/plantuml/plantuml-2.1.1.jar +0 -0
- data/lib/asciidoctor-diagram/structurizr/converter.rb +2 -0
- data/lib/asciidoctor-diagram/structurizr/structurizr-2.1.1.jar +0 -0
- data/lib/asciidoctor-diagram/syntrax/syntrax-2.1.0.jar +0 -0
- data/lib/asciidoctor-diagram/util/server-2.1.0.jar +0 -0
- data/lib/asciidoctor-diagram/version.rb +1 -1
- data/lib/asciidoctor-diagram/wavedrom/converter.rb +36 -31
- metadata +8 -8
- data/lib/asciidoctor-diagram/ditaa/ditaa-2.0.0.jar +0 -0
- data/lib/asciidoctor-diagram/plantuml/plantuml-2.0.0.jar +0 -0
- data/lib/asciidoctor-diagram/structurizr/structurizr-2.0.3.jar +0 -0
- data/lib/asciidoctor-diagram/syntrax/syntrax-2.0.2.jar +0 -0
- data/lib/asciidoctor-diagram/util/server-2.0.0.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: 0b7d586b723b3485288bc8127bbae0ce102fb2d6b07269a98790c01952aa2434
|
4
|
+
data.tar.gz: 97316ae03795b92cd09fd0baf9ecd86b5a68618a5a653e20d905fe3e66dd4c6f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 498776729f7aa965ad47f6ff9fe11bd16a09e389eab45a060b80675fd638bd05c4917a686e1effa787afaa67002c549817cdb36c8453453cb9010b9c33effa68
|
7
|
+
data.tar.gz: 6d6dc3314c9163832907cf7a5a45a2802976de6c9c04ef737463cdb2ec7ecb0c87db5f79dcf6bc5001705a10ea959635d66a88af7aa2f8b72bdde40af658d26b
|
data/CHANGELOG.adoc
CHANGED
@@ -1,5 +1,40 @@
|
|
1
1
|
= Asciidoctor-diagram Changelog
|
2
2
|
|
3
|
+
== 2.3.0
|
4
|
+
|
5
|
+
Enhancements::
|
6
|
+
|
7
|
+
* Issue #457: Relaxed Java version requirement from 11 to 1.8 (for tools that support it)
|
8
|
+
|
9
|
+
== 2.2.18
|
10
|
+
|
11
|
+
Enhancements::
|
12
|
+
|
13
|
+
* Add opt-in support for the PlantUML Smetana layout engine
|
14
|
+
|
15
|
+
== 2.2.17
|
16
|
+
|
17
|
+
Bugfixes::
|
18
|
+
|
19
|
+
* Issue #455: Fix regression in reading of UTF-8 source files introduced in 2.2.15
|
20
|
+
|
21
|
+
== 2.2.16
|
22
|
+
|
23
|
+
Bugfixes::
|
24
|
+
|
25
|
+
* Issue #453: Avoid internal error when WaveDrom cannot be located
|
26
|
+
|
27
|
+
== 2.2.15
|
28
|
+
|
29
|
+
Enhacements::
|
30
|
+
|
31
|
+
* Issue #453: Improve error message when WaveDrom cannot be located
|
32
|
+
|
33
|
+
Bugfixes::
|
34
|
+
|
35
|
+
* Issue #428: Improve support for reading UTF-16 encoded source files
|
36
|
+
* Issue #449: Fix resolving of relative `!include` paths in Structurizr DSL input.
|
37
|
+
|
3
38
|
== 2.2.14
|
4
39
|
|
5
40
|
Bugfixes::
|
data/README.adoc
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
Pepijn Van_Eeckhoudt <https://github.com/pepijnve[@pepijnve]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>
|
3
3
|
:description: README for the Asciidoctor Diagram extension for Asciidoctor.
|
4
4
|
|
5
|
-
image:https://github.com/asciidoctor/asciidoctor-diagram/workflows/Linux%20unit%20tests/badge.svg?branch=
|
6
|
-
// image:https://github.com/asciidoctor/asciidoctor-diagram/workflows/macOS%20unit%20tests/badge.svg?branch=
|
7
|
-
// image:https://github.com/asciidoctor/asciidoctor-diagram/workflows/Windows%20unit%20tests/badge.svg?branch=
|
5
|
+
image:https://github.com/asciidoctor/asciidoctor-diagram/workflows/Linux%20unit%20tests/badge.svg?branch=main["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=main["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=main["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.
|
@@ -23,16 +23,16 @@ The example below shows an embedded Ditaa diagram block.
|
|
23
23
|
---------
|
24
24
|
[ditaa]
|
25
25
|
----
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
+--------+
|
34
|
-
| adoc
|
35
|
-
+--------+
|
26
|
+
+-------------+
|
27
|
+
| asciidoctor |---------------+
|
28
|
+
| diagram | |
|
29
|
+
+-------------+ | image
|
30
|
+
^ |
|
31
|
+
| diagram source |
|
32
|
+
| v
|
33
|
+
+--------+ +------+------+ /--------------\
|
34
|
+
| adoc |------>+ asciidoctor +------->| HTML + image |
|
35
|
+
+--------+ +-------------+ html \--------------/
|
36
36
|
----
|
37
37
|
---------
|
38
38
|
|
@@ -138,9 +138,10 @@ module Asciidoctor
|
|
138
138
|
|
139
139
|
config[cmd_var] = cmd_path
|
140
140
|
|
141
|
-
|
142
|
-
|
143
|
-
|
141
|
+
end
|
142
|
+
|
143
|
+
if cmd_path.nil? && options.fetch(:raise_on_error, true)
|
144
|
+
raise "Could not find the #{cmd_names.map { |c| "'#{c}'" }.join(', ')} executable in PATH; add it to the PATH or specify its location using the '#{attr_names[0]}' document attribute"
|
144
145
|
end
|
145
146
|
|
146
147
|
cmd_path
|
@@ -305,8 +306,7 @@ module Asciidoctor
|
|
305
306
|
|
306
307
|
def load_code
|
307
308
|
if @file_name
|
308
|
-
lines = File.
|
309
|
-
lines = prepare_source_array(lines)
|
309
|
+
lines = prepare_source_array(File.read(@file_name, :mode => 'rb'))
|
310
310
|
@parent_block.apply_subs(lines, resolve_diagram_subs).join("\n")
|
311
311
|
else
|
312
312
|
''
|
@@ -315,39 +315,33 @@ module Asciidoctor
|
|
315
315
|
|
316
316
|
private
|
317
317
|
|
318
|
-
#
|
319
|
-
BOM_BYTES_UTF_8 =
|
320
|
-
BOM_BYTES_UTF_16LE =
|
321
|
-
BOM_BYTES_UTF_16BE =
|
318
|
+
# Raw binary strings for UTF-* Byte Order Marks
|
319
|
+
BOM_BYTES_UTF_8 = String.new("\xef\xbb\xbf", :encoding => Encoding::ASCII_8BIT)
|
320
|
+
BOM_BYTES_UTF_16LE = String.new("\xff\xfe", :encoding => Encoding::ASCII_8BIT)
|
321
|
+
BOM_BYTES_UTF_16BE = String.new("\xfe\xff", :encoding => Encoding::ASCII_8BIT)
|
322
322
|
|
323
|
-
# Prepare the source data
|
323
|
+
# Prepare the source data for parsing.
|
324
324
|
#
|
325
|
-
# Encodes the data to UTF-8
|
325
|
+
# Encodes the data to UTF-8 and removes any trailing
|
326
326
|
# whitespace from every line.
|
327
327
|
#
|
328
|
-
#
|
329
|
-
# encode it to UTF-8 from the specified source encoding.
|
330
|
-
#
|
331
|
-
# data - the source data Array to prepare (no nil entries allowed)
|
328
|
+
# data - the source data to prepare
|
332
329
|
#
|
333
330
|
# returns a String Array of prepared lines
|
334
331
|
def prepare_source_array data
|
335
332
|
return [] if data.empty?
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
elsif leading_bytes == BOM_BYTES_UTF_8
|
344
|
-
data[0] = first.byteslice 3, first.bytesize
|
345
|
-
end
|
346
|
-
if first.encoding == ::Encoding::UTF_8
|
347
|
-
data.map {|line| line.rstrip}
|
333
|
+
|
334
|
+
if data.start_with?(BOM_BYTES_UTF_16LE)
|
335
|
+
utf8_data = data.byteslice(2, data.bytesize).encode(::Encoding::UTF_8, ::Encoding::UTF_16LE)
|
336
|
+
elsif data.start_with?(BOM_BYTES_UTF_16BE)
|
337
|
+
utf8_data = data.byteslice(2, data.bytesize).encode(::Encoding::UTF_8, ::Encoding::UTF_16BE)
|
338
|
+
elsif data.start_with?(BOM_BYTES_UTF_8)
|
339
|
+
utf8_data = data.byteslice(3, data.bytesize).force_encoding(::Encoding::UTF_8)
|
348
340
|
else
|
349
|
-
data.
|
341
|
+
utf8_data = data.force_encoding(::Encoding::UTF_8)
|
350
342
|
end
|
343
|
+
|
344
|
+
utf8_data.lines.map {|line| line.rstrip}
|
351
345
|
end
|
352
346
|
end
|
353
347
|
end
|
Binary file
|
@@ -37,9 +37,11 @@ module Asciidoctor
|
|
37
37
|
|
38
38
|
def collect_options(source)
|
39
39
|
options = {
|
40
|
-
:size_limit => source.attr('size-limit', '4096')
|
40
|
+
:size_limit => source.attr('size-limit', '4096'),
|
41
41
|
}
|
42
42
|
|
43
|
+
options[:smetana] = true if source.opt('smetana')
|
44
|
+
|
43
45
|
theme = source.attr('theme', nil)
|
44
46
|
options[:theme] = theme if theme
|
45
47
|
|
@@ -106,9 +108,13 @@ module Asciidoctor
|
|
106
108
|
add_theme_header(headers, options[:theme])
|
107
109
|
add_size_limit_header(headers, options[:size_limit])
|
108
110
|
|
109
|
-
|
110
|
-
|
111
|
-
|
111
|
+
if options[:smetana]
|
112
|
+
headers['X-Graphviz'] = 'smetana'
|
113
|
+
else
|
114
|
+
dot = source.find_command('dot', :alt_attrs => ['graphvizdot'], :raise_on_error => false)
|
115
|
+
if dot
|
116
|
+
headers['X-Graphviz'] = ::Asciidoctor::Diagram::Platform.host_os_path(dot)
|
117
|
+
end
|
112
118
|
end
|
113
119
|
|
114
120
|
response = Java.send_request(
|
Binary file
|
@@ -49,6 +49,8 @@ module Asciidoctor
|
|
49
49
|
'Accept' => Renderers.mime_type(options[:renderer])
|
50
50
|
}
|
51
51
|
headers['X-Structurizr-View'] = options[:view] if options[:view]
|
52
|
+
headers['X-Structurizr-IncludeDir'] = Platform.native_path(source.base_dir)
|
53
|
+
|
52
54
|
|
53
55
|
response = Java.send_request(
|
54
56
|
:url => '/structurizr',
|
Binary file
|
Binary file
|
Binary file
|
@@ -9,48 +9,53 @@ module Asciidoctor
|
|
9
9
|
include DiagramConverter
|
10
10
|
include CliGenerator
|
11
11
|
|
12
|
-
|
13
12
|
def supported_formats
|
14
13
|
[:png, :svg]
|
15
14
|
end
|
16
15
|
|
17
|
-
|
18
16
|
def convert(source, format, options)
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
wavedrom = source.find_command('wavedrom-cli', :attrs => ['wavedrom'], :raise_on_error => false)
|
18
|
+
|
19
|
+
unless wavedrom
|
20
|
+
wavedrom = source.find_command('wavedrom', :raise_on_error => false)
|
21
|
+
end
|
22
|
+
|
23
|
+
unless wavedrom
|
24
|
+
if ::Asciidoctor::Diagram::Platform.os == :macosx
|
25
|
+
wavedrom = source.find_command('WaveDromEditor.app', :alt_cmds => ['wavedrom-editor.app'], :attrs => ['WaveDromEditorApp'], :path => ['/Applications'], :raise_on_error => false)
|
26
|
+
if wavedrom
|
27
|
+
wavedrom = File.join(wavedrom, 'Contents/MacOS/nwjs')
|
28
|
+
end
|
29
|
+
else
|
30
|
+
wavedrom = source.find_command('WaveDromEditor', :raise_on_error => false)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
unless wavedrom
|
35
|
+
source.find_command('wavedrom-cli', :attrs => ['wavedrom'])
|
36
|
+
end
|
37
|
+
|
38
|
+
if wavedrom.end_with?('-cli')
|
39
|
+
generate_file(wavedrom, 'wvd', format.to_s, source.to_s) do |tool_path, input_path, output_path|
|
22
40
|
{
|
23
41
|
:args => [Platform.native_path(tool_path), '--input', Platform.native_path(input_path), "--#{format.to_s}", Platform.native_path(output_path)],
|
24
42
|
:chdir => source.base_dir
|
25
43
|
}
|
26
44
|
end
|
45
|
+
elsif wavedrom.include?('WaveDromEditor')
|
46
|
+
generate_file(wavedrom, 'wvd', format.to_s, source.to_s) do |tool_path, input_path, output_path|
|
47
|
+
{
|
48
|
+
:args => [tool_path, 'source', Platform.native_path(input_path), format.to_s, Platform.native_path(output_path)],
|
49
|
+
:chdir => source.base_dir
|
50
|
+
}
|
51
|
+
end
|
27
52
|
else
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
:args => [phantomjs, Platform.native_path(tool_path), '-i', Platform.native_path(input_path), "-#{format.to_s[0]}", Platform.native_path(output_path)],
|
35
|
-
:chdir => source.base_dir
|
36
|
-
}
|
37
|
-
end
|
38
|
-
else
|
39
|
-
if ::Asciidoctor::Diagram::Platform.os == :macosx
|
40
|
-
wavedrom = source.find_command('WaveDromEditor.app', :alt_cmds => ['wavedrom-editor.app'], :attrs => ['WaveDromEditorApp'], :path => ['/Applications'])
|
41
|
-
if wavedrom
|
42
|
-
wavedrom = File.join(wavedrom, 'Contents/MacOS/nwjs')
|
43
|
-
end
|
44
|
-
else
|
45
|
-
wavedrom = source.find_command('WaveDromEditor')
|
46
|
-
end
|
47
|
-
|
48
|
-
generate_file(wavedrom, 'wvd', format.to_s, source.to_s) do |tool_path, input_path, output_path|
|
49
|
-
{
|
50
|
-
:args => [tool_path, 'source', Platform.native_path(input_path), format.to_s, Platform.native_path(output_path)],
|
51
|
-
:chdir => source.base_dir
|
52
|
-
}
|
53
|
-
end
|
53
|
+
phantomjs = source.find_command('phantomjs', :alt_attrs => ['phantomjs_2'])
|
54
|
+
generate_file(wavedrom, 'wvd', format.to_s, source.to_s) do |tool_path, input_path, output_path|
|
55
|
+
{
|
56
|
+
:args => [phantomjs, Platform.native_path(tool_path), '-i', Platform.native_path(input_path), "-#{format.to_s[0]}", Platform.native_path(output_path)],
|
57
|
+
:chdir => source.base_dir
|
58
|
+
}
|
54
59
|
end
|
55
60
|
end
|
56
61
|
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.
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pepijn Van Eeckhoudt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -156,7 +156,7 @@ files:
|
|
156
156
|
- lib/asciidoctor-diagram/diagrams/extension.rb
|
157
157
|
- lib/asciidoctor-diagram/ditaa.rb
|
158
158
|
- lib/asciidoctor-diagram/ditaa/converter.rb
|
159
|
-
- lib/asciidoctor-diagram/ditaa/ditaa-2.
|
159
|
+
- lib/asciidoctor-diagram/ditaa/ditaa-2.1.0.jar
|
160
160
|
- lib/asciidoctor-diagram/ditaa/extension.rb
|
161
161
|
- lib/asciidoctor-diagram/dpic.rb
|
162
162
|
- lib/asciidoctor-diagram/dpic/converter.rb
|
@@ -199,7 +199,7 @@ files:
|
|
199
199
|
- lib/asciidoctor-diagram/plantuml.rb
|
200
200
|
- lib/asciidoctor-diagram/plantuml/converter.rb
|
201
201
|
- lib/asciidoctor-diagram/plantuml/extension.rb
|
202
|
-
- lib/asciidoctor-diagram/plantuml/plantuml-2.
|
202
|
+
- lib/asciidoctor-diagram/plantuml/plantuml-2.1.1.jar
|
203
203
|
- lib/asciidoctor-diagram/salt.rb
|
204
204
|
- lib/asciidoctor-diagram/shaape.rb
|
205
205
|
- lib/asciidoctor-diagram/shaape/converter.rb
|
@@ -211,7 +211,7 @@ files:
|
|
211
211
|
- lib/asciidoctor-diagram/structurizr/converter.rb
|
212
212
|
- lib/asciidoctor-diagram/structurizr/extension.rb
|
213
213
|
- lib/asciidoctor-diagram/structurizr/renderers.rb
|
214
|
-
- lib/asciidoctor-diagram/structurizr/structurizr-2.
|
214
|
+
- lib/asciidoctor-diagram/structurizr/structurizr-2.1.1.jar
|
215
215
|
- lib/asciidoctor-diagram/svgbob.rb
|
216
216
|
- lib/asciidoctor-diagram/svgbob/converter.rb
|
217
217
|
- lib/asciidoctor-diagram/svgbob/extension.rb
|
@@ -221,7 +221,7 @@ files:
|
|
221
221
|
- lib/asciidoctor-diagram/syntrax.rb
|
222
222
|
- lib/asciidoctor-diagram/syntrax/converter.rb
|
223
223
|
- lib/asciidoctor-diagram/syntrax/extension.rb
|
224
|
-
- lib/asciidoctor-diagram/syntrax/syntrax-2.0.
|
224
|
+
- lib/asciidoctor-diagram/syntrax/syntrax-2.1.0.jar
|
225
225
|
- lib/asciidoctor-diagram/tikz.rb
|
226
226
|
- lib/asciidoctor-diagram/tikz/converter.rb
|
227
227
|
- lib/asciidoctor-diagram/tikz/extension.rb
|
@@ -238,7 +238,7 @@ files:
|
|
238
238
|
- lib/asciidoctor-diagram/util/pdf.rb
|
239
239
|
- lib/asciidoctor-diagram/util/platform.rb
|
240
240
|
- lib/asciidoctor-diagram/util/png.rb
|
241
|
-
- lib/asciidoctor-diagram/util/server-2.
|
241
|
+
- lib/asciidoctor-diagram/util/server-2.1.0.jar
|
242
242
|
- lib/asciidoctor-diagram/util/svg.rb
|
243
243
|
- lib/asciidoctor-diagram/util/which.rb
|
244
244
|
- lib/asciidoctor-diagram/vega.rb
|
@@ -253,7 +253,7 @@ licenses:
|
|
253
253
|
- MIT
|
254
254
|
metadata:
|
255
255
|
bug_tracker_uri: https://github.com/asciidoctor/asciidoctor-diagram/issues
|
256
|
-
changelog_uri: https://github.com/asciidoctor/asciidoctor-diagram/blob/
|
256
|
+
changelog_uri: https://github.com/asciidoctor/asciidoctor-diagram/blob/main/CHANGELOG.adoc
|
257
257
|
documentation_uri: https://docs.asciidoctor.org/diagram-extension/latest/
|
258
258
|
homepage_uri: https://github.com/asciidoctor/asciidoctor-diagram
|
259
259
|
source_code_uri: https://github.com/asciidoctor/asciidoctor-diagram.git
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|