asciidoctor-diagram 1.5.18 → 2.0.4
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 +75 -0
- data/README.adoc +98 -23
- data/examples/features.adoc +2 -2
- data/lib/asciidoctor-diagram.rb +8 -0
- data/lib/asciidoctor-diagram/a2s/converter.rb +59 -0
- data/lib/asciidoctor-diagram/a2s/extension.rb +6 -52
- data/lib/asciidoctor-diagram/blockdiag/converter.rb +37 -0
- data/lib/asciidoctor-diagram/blockdiag/extension.rb +9 -116
- data/lib/asciidoctor-diagram/bpmn.rb +7 -0
- data/lib/asciidoctor-diagram/bpmn/converter.rb +62 -0
- data/lib/asciidoctor-diagram/bpmn/extension.rb +14 -0
- data/lib/asciidoctor-diagram/bytefield.rb +7 -0
- data/lib/asciidoctor-diagram/bytefield/converter.rb +26 -0
- data/lib/asciidoctor-diagram/bytefield/extension.rb +14 -0
- data/lib/asciidoctor-diagram/diagram_converter.rb +23 -0
- data/lib/asciidoctor-diagram/diagram_processor.rb +357 -0
- data/lib/asciidoctor-diagram/diagram_source.rb +322 -0
- data/lib/asciidoctor-diagram/ditaa/converter.rb +90 -0
- data/lib/asciidoctor-diagram/ditaa/extension.rb +6 -71
- data/lib/asciidoctor-diagram/dpic.rb +7 -0
- data/lib/asciidoctor-diagram/dpic/converter.rb +30 -0
- data/lib/asciidoctor-diagram/dpic/extension.rb +14 -0
- data/lib/asciidoctor-diagram/erd/converter.rb +31 -0
- data/lib/asciidoctor-diagram/erd/extension.rb +6 -35
- data/lib/asciidoctor-diagram/gnuplot.rb +7 -0
- data/lib/asciidoctor-diagram/gnuplot/converter.rb +63 -0
- data/lib/asciidoctor-diagram/gnuplot/extension.rb +14 -0
- data/lib/asciidoctor-diagram/graphviz/converter.rb +32 -0
- data/lib/asciidoctor-diagram/graphviz/extension.rb +6 -35
- data/lib/asciidoctor-diagram/http/converter.rb +99 -0
- data/lib/asciidoctor-diagram/http/server.rb +132 -0
- data/lib/asciidoctor-diagram/lilypond.rb +7 -0
- data/lib/asciidoctor-diagram/lilypond/converter.rb +54 -0
- data/lib/asciidoctor-diagram/lilypond/extension.rb +14 -0
- data/lib/asciidoctor-diagram/meme/converter.rb +122 -0
- data/lib/asciidoctor-diagram/meme/extension.rb +5 -107
- data/lib/asciidoctor-diagram/mermaid/converter.rb +179 -0
- data/lib/asciidoctor-diagram/mermaid/extension.rb +6 -159
- data/lib/asciidoctor-diagram/msc/converter.rb +35 -0
- data/lib/asciidoctor-diagram/msc/extension.rb +6 -36
- data/lib/asciidoctor-diagram/nomnoml/converter.rb +25 -0
- data/lib/asciidoctor-diagram/nomnoml/extension.rb +6 -28
- data/lib/asciidoctor-diagram/pikchr.rb +7 -0
- data/lib/asciidoctor-diagram/pikchr/converter.rb +26 -0
- data/lib/asciidoctor-diagram/pikchr/extension.rb +14 -0
- data/lib/asciidoctor-diagram/plantuml/converter.rb +117 -0
- data/lib/asciidoctor-diagram/plantuml/extension.rb +10 -119
- data/lib/asciidoctor-diagram/shaape/converter.rb +25 -0
- data/lib/asciidoctor-diagram/shaape/extension.rb +6 -28
- data/lib/asciidoctor-diagram/smcat.rb +7 -0
- data/lib/asciidoctor-diagram/smcat/converter.rb +44 -0
- data/lib/asciidoctor-diagram/smcat/extension.rb +14 -0
- data/lib/asciidoctor-diagram/svgbob/converter.rb +49 -0
- data/lib/asciidoctor-diagram/svgbob/extension.rb +6 -28
- data/lib/asciidoctor-diagram/symbolator.rb +7 -0
- data/lib/asciidoctor-diagram/symbolator/converter.rb +23 -0
- data/lib/asciidoctor-diagram/symbolator/extension.rb +14 -0
- data/lib/asciidoctor-diagram/syntrax/converter.rb +58 -0
- data/lib/asciidoctor-diagram/syntrax/extension.rb +6 -51
- data/lib/asciidoctor-diagram/tikz/converter.rb +56 -0
- data/lib/asciidoctor-diagram/tikz/extension.rb +6 -60
- data/lib/asciidoctor-diagram/umlet/converter.rb +24 -0
- data/lib/asciidoctor-diagram/umlet/extension.rb +6 -28
- data/lib/asciidoctor-diagram/util/cli.rb +14 -3
- data/lib/asciidoctor-diagram/util/cli_generator.rb +19 -1
- data/lib/asciidoctor-diagram/util/gif.rb +2 -2
- data/lib/asciidoctor-diagram/util/java.rb +1 -1
- data/lib/asciidoctor-diagram/util/java_socket.rb +7 -9
- data/lib/asciidoctor-diagram/util/pdf.rb +2 -2
- data/lib/asciidoctor-diagram/util/png.rb +2 -2
- data/lib/asciidoctor-diagram/util/svg.rb +46 -19
- data/lib/asciidoctor-diagram/util/which.rb +0 -29
- data/lib/asciidoctor-diagram/vega/converter.rb +47 -0
- data/lib/asciidoctor-diagram/vega/extension.rb +6 -44
- data/lib/asciidoctor-diagram/version.rb +1 -1
- data/lib/asciidoctor-diagram/wavedrom/converter.rb +50 -0
- data/lib/asciidoctor-diagram/wavedrom/extension.rb +6 -46
- data/lib/ditaa-1.3.15.jar +0 -0
- data/lib/ditaamini-0.12.jar +0 -0
- data/lib/plantuml-1.3.15.jar +0 -0
- data/lib/plantuml.jar +0 -0
- data/lib/server-1.3.15.jar +0 -0
- data/spec/a2s_spec.rb +2 -140
- data/spec/blockdiag_spec.rb +2 -200
- data/spec/bpmn_spec.rb +56 -0
- data/spec/bytefield_spec.rb +92 -0
- data/spec/ditaa_spec.rb +37 -143
- data/spec/dpic_spec.rb +19 -0
- data/spec/erd_spec.rb +2 -199
- data/spec/gnuplot_spec.rb +225 -0
- data/spec/graphviz_spec.rb +6 -145
- data/spec/lilypond_spec.rb +13 -0
- data/spec/mermaid_spec.rb +35 -200
- data/spec/msc_spec.rb +2 -199
- data/spec/nomnoml_spec.rb +4 -142
- data/spec/pikchr_spec.rb +51 -0
- data/spec/plantuml_spec.rb +24 -507
- data/spec/shaape_spec.rb +9 -221
- data/spec/shared_examples.rb +552 -0
- data/spec/smcat_spec.rb +26 -0
- data/spec/svgbob_spec.rb +2 -140
- data/spec/symbolator_spec.rb +23 -0
- data/spec/syntrax_spec.rb +5 -215
- data/spec/test_helper.rb +1 -18
- data/spec/tikz_spec.rb +4 -24
- data/spec/umlet_spec.rb +2 -58
- data/spec/vega_spec.rb +4 -117
- data/spec/wavedrom_spec.rb +2 -199
- metadata +73 -11
- data/lib/asciidoctor-diagram/extensions.rb +0 -568
- data/lib/ditaa-1.3.13.jar +0 -0
- data/lib/ditaamini-0.11.jar +0 -0
- data/lib/plantuml-1.3.13.jar +0 -0
- data/lib/server-1.3.13.jar +0 -0
@@ -1,131 +1,22 @@
|
|
1
|
-
require_relative '
|
2
|
-
require_relative '../
|
3
|
-
require 'uri'
|
1
|
+
require_relative 'converter'
|
2
|
+
require_relative '../diagram_processor'
|
4
3
|
|
5
4
|
module Asciidoctor
|
6
5
|
module Diagram
|
7
|
-
|
8
|
-
|
9
|
-
include Which
|
10
|
-
|
11
|
-
private
|
12
|
-
|
13
|
-
JARS = [
|
14
|
-
'plantuml-1.3.13.jar',
|
15
|
-
'plantuml.jar',
|
16
|
-
'jlatexmath-minimal-1.0.5.jar',
|
17
|
-
'batik-all-1.10.jar'
|
18
|
-
].map do |jar|
|
19
|
-
File.expand_path File.join('../..', jar), File.dirname(__FILE__)
|
20
|
-
end
|
21
|
-
Java.classpath.concat JARS
|
22
|
-
|
23
|
-
def plantuml(parent_block, source, tag, mime_type)
|
24
|
-
Java.load
|
25
|
-
|
26
|
-
inherit_prefix = name
|
27
|
-
code = preprocess_code(parent_block, source, tag)
|
28
|
-
|
29
|
-
headers = {
|
30
|
-
'Accept' => mime_type
|
31
|
-
}
|
32
|
-
|
33
|
-
config_file = source.attr('plantumlconfig', nil, true) || source.attr('config', nil, inherit_prefix)
|
34
|
-
if config_file
|
35
|
-
headers['X-PlantUML-Config'] = File.expand_path(config_file, source.attr('docdir', nil, true))
|
36
|
-
end
|
37
|
-
|
38
|
-
dot = which(parent_block, 'dot', :alt_attrs => ['graphvizdot'], :raise_on_error => false)
|
39
|
-
if dot
|
40
|
-
headers['X-Graphviz'] = ::Asciidoctor::Diagram::Platform.host_os_path(dot)
|
41
|
-
end
|
42
|
-
|
43
|
-
response = Java.send_request(
|
44
|
-
:url => '/plantuml',
|
45
|
-
:body => code,
|
46
|
-
:headers => headers
|
47
|
-
)
|
48
|
-
|
49
|
-
unless response[:code] == 200
|
50
|
-
raise Java.create_error("PlantUML image generation failed", response)
|
51
|
-
end
|
52
|
-
|
53
|
-
response[:body]
|
54
|
-
end
|
55
|
-
|
56
|
-
def preprocess_code(parent, source, tag)
|
57
|
-
code = source.to_s
|
58
|
-
base_dir = source.base_dir
|
59
|
-
|
60
|
-
code = "@start#{tag}\n#{code}\n@end#{tag}" unless code.index("@start") && code.index("@end")
|
61
|
-
|
62
|
-
code.gsub!(/(?<=<img:)[^>]+(?=>)/) do |match|
|
63
|
-
resolve_path(match, parent, parent.attr('imagesdir'))
|
64
|
-
end
|
65
|
-
|
66
|
-
code.gsub!(/(?:(?<=!include\s)|(?<=!includesub\s))\s*[^<][^!\n\r]+/) do |match|
|
67
|
-
resolve_path(match.lstrip, parent, base_dir)
|
68
|
-
end
|
69
|
-
|
70
|
-
code
|
71
|
-
end
|
72
|
-
|
73
|
-
def resolve_path(path, parent, base_dir)
|
74
|
-
if path =~ ::URI::ABS_URI
|
75
|
-
uri = ::URI.parse(path)
|
76
|
-
if uri.scheme == 'file'
|
77
|
-
parent.normalize_system_path(uri.path, base_dir)
|
78
|
-
else
|
79
|
-
parent.normalize_web_path(path)
|
80
|
-
end
|
81
|
-
else
|
82
|
-
parent.normalize_system_path(path, base_dir)
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
def self.included(mod)
|
87
|
-
mod.register_format(:png, :image) do |parent_block, source|
|
88
|
-
plantuml(parent_block, source, mod.tag, 'image/png')
|
89
|
-
end
|
90
|
-
mod.register_format(:svg, :image) do |parent_block, source|
|
91
|
-
plantuml(parent_block, source, mod.tag, 'image/svg+xml')
|
92
|
-
end
|
93
|
-
mod.register_format(:txt, :literal) do |parent_block, source|
|
94
|
-
plantuml(parent_block, source, mod.tag, 'text/plain;charset=utf-8')
|
95
|
-
end
|
96
|
-
end
|
6
|
+
class PlantUmlBlockProcessor < DiagramBlockProcessor
|
7
|
+
use_converter UmlConverter
|
97
8
|
end
|
98
9
|
|
99
|
-
class
|
100
|
-
|
101
|
-
'uml'
|
102
|
-
end
|
103
|
-
|
104
|
-
include PlantUml
|
10
|
+
class PlantUmlBlockMacroProcessor < DiagramBlockMacroProcessor
|
11
|
+
use_converter UmlConverter
|
105
12
|
end
|
106
13
|
|
107
|
-
class
|
108
|
-
|
109
|
-
'uml'
|
110
|
-
end
|
111
|
-
|
112
|
-
include PlantUml
|
14
|
+
class SaltBlockProcessor < DiagramBlockProcessor
|
15
|
+
use_converter SaltConverter
|
113
16
|
end
|
114
17
|
|
115
|
-
class
|
116
|
-
|
117
|
-
'salt'
|
118
|
-
end
|
119
|
-
|
120
|
-
include PlantUml
|
121
|
-
end
|
122
|
-
|
123
|
-
class SaltBlockMacroProcessor < Extensions::DiagramBlockMacroProcessor
|
124
|
-
def self.tag
|
125
|
-
'salt'
|
126
|
-
end
|
127
|
-
|
128
|
-
include PlantUml
|
18
|
+
class SaltBlockMacroProcessor < DiagramBlockMacroProcessor
|
19
|
+
use_converter SaltConverter
|
129
20
|
end
|
130
21
|
end
|
131
22
|
end
|
@@ -0,0 +1,25 @@
|
|
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 ShaapeConverter
|
9
|
+
include DiagramConverter
|
10
|
+
include CliGenerator
|
11
|
+
|
12
|
+
|
13
|
+
def supported_formats
|
14
|
+
[:png, :svg]
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
def convert(source, format, options)
|
19
|
+
generate_stdin(source.find_command('shaape'), format.to_s, source.to_s) do |tool_path, output_path|
|
20
|
+
[tool_path, '-o', Platform.native_path(output_path), '-t', format.to_s, '-']
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -1,36 +1,14 @@
|
|
1
|
-
require_relative '
|
2
|
-
require_relative '../
|
3
|
-
require_relative '../util/platform'
|
4
|
-
require_relative '../util/which'
|
1
|
+
require_relative 'converter'
|
2
|
+
require_relative '../diagram_processor'
|
5
3
|
|
6
4
|
module Asciidoctor
|
7
5
|
module Diagram
|
8
|
-
|
9
|
-
|
10
|
-
include CliGenerator
|
11
|
-
include Which
|
12
|
-
|
13
|
-
def self.included(mod)
|
14
|
-
[:png, :svg].each do |f|
|
15
|
-
mod.register_format(f, :image) do |parent, source|
|
16
|
-
shaape(parent, source, f)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def shaape(parent, source, format)
|
22
|
-
generate_stdin(which(parent, 'shaape'), format.to_s, source.to_s) do |tool_path, output_path|
|
23
|
-
[tool_path, '-o', Platform.native_path(output_path), '-t', format.to_s, '-']
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
class ShaapeBlockProcessor < Extensions::DiagramBlockProcessor
|
29
|
-
include Shaape
|
6
|
+
class ShaapeBlockProcessor < DiagramBlockProcessor
|
7
|
+
use_converter ShaapeConverter
|
30
8
|
end
|
31
9
|
|
32
|
-
class ShaapeBlockMacroProcessor <
|
33
|
-
|
10
|
+
class ShaapeBlockMacroProcessor < DiagramBlockMacroProcessor
|
11
|
+
use_converter ShaapeConverter
|
34
12
|
end
|
35
13
|
end
|
36
14
|
end
|
@@ -0,0 +1,44 @@
|
|
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 SmcatConverter
|
9
|
+
include DiagramConverter
|
10
|
+
include CliGenerator
|
11
|
+
|
12
|
+
|
13
|
+
def supported_formats
|
14
|
+
[:svg]
|
15
|
+
end
|
16
|
+
|
17
|
+
def collect_options(source)
|
18
|
+
{
|
19
|
+
:direction => source.attr('direction'),
|
20
|
+
:engine => source.attr('engine')
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
def convert(source, format, options)
|
25
|
+
direction = options[:direction]
|
26
|
+
engine = options[:engine]
|
27
|
+
|
28
|
+
generate_stdin(source.find_command('smcat'), format.to_s, source.to_s) do |tool_path, output_path|
|
29
|
+
args = [tool_path, '-o', Platform.native_path(output_path), '-T', format.to_s]
|
30
|
+
if direction
|
31
|
+
args << '-d' << direction
|
32
|
+
end
|
33
|
+
|
34
|
+
if engine
|
35
|
+
args << '-E' << engine
|
36
|
+
end
|
37
|
+
|
38
|
+
args << '-'
|
39
|
+
args
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require_relative 'converter'
|
2
|
+
require_relative '../diagram_processor'
|
3
|
+
|
4
|
+
module Asciidoctor
|
5
|
+
module Diagram
|
6
|
+
class SmcatBlockProcessor < DiagramBlockProcessor
|
7
|
+
use_converter SmcatConverter
|
8
|
+
end
|
9
|
+
|
10
|
+
class SmcatBlockMacroProcessor < DiagramBlockMacroProcessor
|
11
|
+
use_converter SmcatConverter
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,49 @@
|
|
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 SvgbobConverter
|
9
|
+
include DiagramConverter
|
10
|
+
include CliGenerator
|
11
|
+
|
12
|
+
|
13
|
+
def supported_formats
|
14
|
+
[:svg]
|
15
|
+
end
|
16
|
+
|
17
|
+
OPTIONS = {
|
18
|
+
:font_family => lambda { |o, v| o << '--font-family' << v if v },
|
19
|
+
:font_size => lambda { |o, v| o << '--font-size' << v if v },
|
20
|
+
:stroke_width => lambda { |o, v| o << '--stroke-width' << v if v },
|
21
|
+
:scale => lambda { |o, v| o << '--scale' << v if v }
|
22
|
+
}
|
23
|
+
|
24
|
+
def collect_options(source)
|
25
|
+
options = {}
|
26
|
+
|
27
|
+
OPTIONS.keys.each do |option|
|
28
|
+
attr_name = option.to_s.tr('_', '-')
|
29
|
+
options[option] = source.attr(attr_name) || source.attr(attr_name, nil, 'svgbob-option')
|
30
|
+
end
|
31
|
+
|
32
|
+
options
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
def convert(source, format, options)
|
37
|
+
|
38
|
+
flags = []
|
39
|
+
options.each do |option, value|
|
40
|
+
OPTIONS[option].call(flags, value)
|
41
|
+
end
|
42
|
+
|
43
|
+
generate_stdin(source.find_command('svgbob'), format.to_s, source.to_s) do |tool_path, output_path|
|
44
|
+
([tool_path, '-o', Platform.native_path(output_path)] + flags)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -1,36 +1,14 @@
|
|
1
|
-
require_relative '
|
2
|
-
require_relative '../
|
3
|
-
require_relative '../util/platform'
|
4
|
-
require_relative '../util/which'
|
1
|
+
require_relative 'converter'
|
2
|
+
require_relative '../diagram_processor'
|
5
3
|
|
6
4
|
module Asciidoctor
|
7
5
|
module Diagram
|
8
|
-
|
9
|
-
|
10
|
-
include CliGenerator
|
11
|
-
include Which
|
12
|
-
|
13
|
-
def self.included(mod)
|
14
|
-
[:svg].each do |f|
|
15
|
-
mod.register_format(f, :image) do |parent, source|
|
16
|
-
svgbob(parent, source, f)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def svgbob(parent, source, format)
|
22
|
-
generate_stdin(which(parent, 'svgbob'), format.to_s, source.to_s) do |tool_path, output_path|
|
23
|
-
[tool_path, '-o', Platform.native_path(output_path)]
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
class SvgBobBlockProcessor < Extensions::DiagramBlockProcessor
|
29
|
-
include Svgbob
|
6
|
+
class SvgBobBlockProcessor < DiagramBlockProcessor
|
7
|
+
use_converter SvgbobConverter
|
30
8
|
end
|
31
9
|
|
32
|
-
class SvgBobBlockMacroProcessor <
|
33
|
-
|
10
|
+
class SvgBobBlockMacroProcessor < DiagramBlockMacroProcessor
|
11
|
+
use_converter SvgbobConverter
|
34
12
|
end
|
35
13
|
end
|
36
14
|
end
|
@@ -0,0 +1,23 @@
|
|
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 SymbolatorConverter
|
9
|
+
include DiagramConverter
|
10
|
+
include CliGenerator
|
11
|
+
|
12
|
+
def supported_formats
|
13
|
+
[:png, :pdf, :svg]
|
14
|
+
end
|
15
|
+
|
16
|
+
def convert(source, format, options)
|
17
|
+
generate_stdin(source.find_command('symbolator'), format.to_s, source.to_s) do |tool_path, output_path|
|
18
|
+
[tool_path, "-i-", "-o#{Platform.native_path(output_path)}", "-f#{format.to_s}"]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require_relative '../diagram_processor'
|
2
|
+
require_relative 'converter'
|
3
|
+
|
4
|
+
module Asciidoctor
|
5
|
+
module Diagram
|
6
|
+
class SymbolatorBlockProcessor < DiagramBlockProcessor
|
7
|
+
use_converter SymbolatorConverter
|
8
|
+
end
|
9
|
+
|
10
|
+
class SymbolatorBlockMacroProcessor < DiagramBlockMacroProcessor
|
11
|
+
use_converter SymbolatorConverter
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,58 @@
|
|
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 SyntraxConverter
|
9
|
+
include DiagramConverter
|
10
|
+
include CliGenerator
|
11
|
+
|
12
|
+
|
13
|
+
def supported_formats
|
14
|
+
[:png, :svg]
|
15
|
+
end
|
16
|
+
|
17
|
+
def collect_options(source)
|
18
|
+
{
|
19
|
+
:heading => source.attr('heading'),
|
20
|
+
:scale => source.attr('scale'),
|
21
|
+
:transparent => source.attr('transparent'),
|
22
|
+
:style => source.attr('style')
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
26
|
+
def convert(source, format, options)
|
27
|
+
generate_file(source.find_command('syntrax'), 'spec', format.to_s, source.to_s) do |tool_path, input_path, output_path|
|
28
|
+
args = [tool_path, '-i', Platform.native_path(input_path), '-o', Platform.native_path(output_path)]
|
29
|
+
|
30
|
+
title = options[:heading]
|
31
|
+
if title
|
32
|
+
args << '--title' << title
|
33
|
+
end
|
34
|
+
|
35
|
+
scale = options[:scale]
|
36
|
+
if scale
|
37
|
+
args << '--scale' << scale
|
38
|
+
end
|
39
|
+
|
40
|
+
transparent = options[:transparent]
|
41
|
+
if transparent == 'true'
|
42
|
+
args << '--transparent'
|
43
|
+
end
|
44
|
+
style = options[:style]
|
45
|
+
if style
|
46
|
+
args << '--style' << style
|
47
|
+
end
|
48
|
+
|
49
|
+
args
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def native_scaling?
|
54
|
+
true
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|