asciidoctor-diagram 2.1.0 → 2.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.adoc +43 -0
- data/docs/antora.yml +1 -1
- data/docs/modules/ROOT/pages/index.adoc +1 -1
- data/docs/modules/ROOT/partials/advanced.adoc +72 -13
- data/docs/modules/ROOT/partials/create_diagram.adoc +45 -42
- data/docs/modules/ROOT/partials/uris.adoc +5 -2
- data/lib/asciidoctor-diagram/a2s/extension.rb +4 -0
- data/lib/asciidoctor-diagram/a2s.rb +1 -0
- data/lib/asciidoctor-diagram/barcode/converter.rb +157 -0
- data/lib/asciidoctor-diagram/barcode/dependencies.rb +10 -0
- data/lib/asciidoctor-diagram/barcode/extension.rb +47 -0
- data/lib/asciidoctor-diagram/barcode/svg_outputter.rb +12 -0
- data/lib/asciidoctor-diagram/barcode.rb +11 -0
- data/lib/asciidoctor-diagram/blockdiag/extension.rb +5 -0
- data/lib/asciidoctor-diagram/blockdiag.rb +1 -0
- data/lib/asciidoctor-diagram/bpmn/extension.rb +4 -0
- data/lib/asciidoctor-diagram/bpmn.rb +1 -0
- data/lib/asciidoctor-diagram/bytefield/extension.rb +4 -0
- data/lib/asciidoctor-diagram/bytefield.rb +1 -0
- data/lib/asciidoctor-diagram/diagram_converter.rb +4 -0
- data/lib/asciidoctor-diagram/diagram_processor.rb +62 -6
- data/lib/asciidoctor-diagram/diagram_source.rb +23 -7
- data/lib/asciidoctor-diagram/diagrams/converter.rb +49 -0
- data/lib/asciidoctor-diagram/diagrams/extension.rb +18 -0
- data/lib/asciidoctor-diagram/diagrams.rb +8 -0
- data/lib/asciidoctor-diagram/ditaa/ditaa-1.3.20.jar +0 -0
- data/lib/asciidoctor-diagram/ditaa/extension.rb +4 -0
- data/lib/asciidoctor-diagram/ditaa.rb +1 -0
- data/lib/asciidoctor-diagram/dpic/extension.rb +4 -0
- data/lib/asciidoctor-diagram/dpic.rb +1 -0
- data/lib/asciidoctor-diagram/erd/extension.rb +4 -0
- data/lib/asciidoctor-diagram/erd.rb +1 -0
- data/lib/asciidoctor-diagram/gnuplot/extension.rb +4 -0
- data/lib/asciidoctor-diagram/gnuplot.rb +1 -0
- data/lib/asciidoctor-diagram/graphviz/extension.rb +4 -0
- data/lib/asciidoctor-diagram/graphviz.rb +1 -0
- data/lib/asciidoctor-diagram/http/converter.rb +35 -11
- data/lib/asciidoctor-diagram/http/server.rb +1 -1
- data/lib/asciidoctor-diagram/lilypond/extension.rb +4 -0
- data/lib/asciidoctor-diagram/lilypond.rb +1 -0
- data/lib/asciidoctor-diagram/meme/extension.rb +14 -16
- data/lib/asciidoctor-diagram/meme.rb +1 -0
- data/lib/asciidoctor-diagram/mermaid/extension.rb +4 -0
- data/lib/asciidoctor-diagram/mermaid.rb +1 -0
- data/lib/asciidoctor-diagram/msc/extension.rb +4 -0
- data/lib/asciidoctor-diagram/msc.rb +1 -0
- data/lib/asciidoctor-diagram/nomnoml/extension.rb +4 -0
- data/lib/asciidoctor-diagram/nomnoml.rb +1 -0
- data/lib/asciidoctor-diagram/pikchr/extension.rb +4 -0
- data/lib/asciidoctor-diagram/pikchr.rb +1 -0
- data/lib/asciidoctor-diagram/plantuml/converter.rb +53 -34
- data/lib/asciidoctor-diagram/plantuml/extension.rb +8 -0
- data/lib/asciidoctor-diagram/plantuml/plantuml-1.3.20.jar +0 -0
- data/lib/asciidoctor-diagram/plantuml.rb +1 -0
- data/lib/asciidoctor-diagram/salt.rb +1 -0
- data/lib/asciidoctor-diagram/shaape/extension.rb +4 -0
- data/lib/asciidoctor-diagram/shaape.rb +1 -0
- data/lib/asciidoctor-diagram/smcat/extension.rb +4 -0
- data/lib/asciidoctor-diagram/smcat.rb +1 -0
- data/lib/asciidoctor-diagram/svgbob/extension.rb +4 -0
- data/lib/asciidoctor-diagram/svgbob.rb +1 -0
- data/lib/asciidoctor-diagram/symbolator/extension.rb +4 -0
- data/lib/asciidoctor-diagram/symbolator.rb +1 -0
- data/lib/asciidoctor-diagram/syntrax/converter.rb +1 -1
- data/lib/asciidoctor-diagram/syntrax/extension.rb +4 -0
- data/lib/asciidoctor-diagram/syntrax.rb +1 -0
- data/lib/asciidoctor-diagram/tikz/extension.rb +4 -0
- data/lib/asciidoctor-diagram/tikz.rb +1 -0
- data/lib/asciidoctor-diagram/umlet/extension.rb +4 -0
- data/lib/asciidoctor-diagram/umlet.rb +1 -0
- data/lib/asciidoctor-diagram/util/cli_generator.rb +9 -7
- data/lib/asciidoctor-diagram/util/server-1.3.20.jar +0 -0
- data/lib/asciidoctor-diagram/vega/extension.rb +4 -0
- data/lib/asciidoctor-diagram/vega.rb +2 -0
- data/lib/asciidoctor-diagram/version.rb +1 -1
- data/lib/asciidoctor-diagram/wavedrom/extension.rb +4 -0
- data/lib/asciidoctor-diagram/wavedrom.rb +1 -0
- data/lib/asciidoctor-diagram.rb +2 -0
- data/spec/a2s_spec.rb +9 -5
- data/spec/barcode_spec.rb +176 -0
- data/spec/blockdiag_spec.rb +7 -3
- data/spec/bpmn_spec.rb +7 -3
- data/spec/bytefield_spec.rb +9 -5
- data/spec/diagrams_spec.rb +27 -0
- data/spec/ditaa_spec.rb +7 -3
- data/spec/dpic_spec.rb +7 -3
- data/spec/erd_spec.rb +7 -3
- data/spec/gnuplot_spec.rb +14 -10
- data/spec/graphviz_spec.rb +7 -3
- data/spec/lilypond_spec.rb +7 -3
- data/spec/mermaid_spec.rb +7 -3
- data/spec/msc_spec.rb +10 -6
- data/spec/nomnoml_spec.rb +9 -5
- data/spec/pikchr_spec.rb +7 -3
- data/spec/plantuml_spec.rb +114 -3
- data/spec/shaape_spec.rb +7 -3
- data/spec/shared_examples.rb +161 -0
- data/spec/smcat_spec.rb +10 -6
- data/spec/svgbob_spec.rb +7 -3
- data/spec/symbolator_spec.rb +7 -3
- data/spec/syntrax_spec.rb +7 -3
- data/spec/test_helper.rb +3 -1
- data/spec/tikz_spec.rb +8 -4
- data/spec/umlet_spec.rb +6 -3
- data/spec/vega_spec.rb +11 -6
- data/spec/wavedrom_spec.rb +7 -3
- metadata +23 -10
- data/lib/asciidoctor-diagram/ditaa/ditaa-1.3.17.jar +0 -0
- data/lib/asciidoctor-diagram/plantuml/plantuml-1.3.17.jar +0 -0
- data/lib/asciidoctor-diagram/util/server-1.3.17.jar +0 -0
@@ -0,0 +1,10 @@
|
|
1
|
+
module Asciidoctor
|
2
|
+
module Diagram
|
3
|
+
module BarcodeDependencies
|
4
|
+
BARCODE_DEPENDENCIES = {'barby' => '~> 0.6.8'}
|
5
|
+
PNG_DEPENDENCIES = {'chunky_png' => '~> 1.4'}
|
6
|
+
QRCODE_DEPENDENCIES = {'rqrcode' => '~> 2.0'}
|
7
|
+
ALL_DEPENDENCIES = {}.merge(BARCODE_DEPENDENCIES).merge(PNG_DEPENDENCIES).merge(QRCODE_DEPENDENCIES)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require_relative 'converter'
|
2
|
+
require_relative '../diagram_processor'
|
3
|
+
|
4
|
+
module Asciidoctor
|
5
|
+
module Diagram
|
6
|
+
module BarcodeProcessor
|
7
|
+
def self.check_config(config = {})
|
8
|
+
type = config[:type]
|
9
|
+
raise "Barcode type not specified in config" if type.nil?
|
10
|
+
raise "Unsupported barcode type: '#{type}'" unless BarcodeConverter::BARCODE_TYPES.include?(type)
|
11
|
+
end
|
12
|
+
|
13
|
+
def initialize(name = nil, config = {})
|
14
|
+
super
|
15
|
+
BarcodeProcessor.check_config(config)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
module BarcodeMacroProcessor
|
20
|
+
def create_source(parent, target, attributes)
|
21
|
+
if attributes['external']
|
22
|
+
super
|
23
|
+
else
|
24
|
+
code = parent.sub_attributes(target, :attribute_missing => 'warn')
|
25
|
+
::Asciidoctor::Diagram::ReaderSource.new(self, parent, code, attributes)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class BarcodeBlockProcessor < DiagramBlockProcessor
|
31
|
+
use_converter BarcodeConverter
|
32
|
+
include BarcodeProcessor
|
33
|
+
end
|
34
|
+
|
35
|
+
class BarcodeBlockMacroProcessor < DiagramBlockMacroProcessor
|
36
|
+
use_converter BarcodeConverter
|
37
|
+
include BarcodeProcessor
|
38
|
+
include BarcodeMacroProcessor
|
39
|
+
end
|
40
|
+
|
41
|
+
class BarcodeInlineMacroProcessor < DiagramInlineMacroProcessor
|
42
|
+
use_converter BarcodeConverter
|
43
|
+
include BarcodeProcessor
|
44
|
+
include BarcodeMacroProcessor
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'barby/outputter/svg_outputter'
|
2
|
+
|
3
|
+
module Barby
|
4
|
+
class SvgOutputter
|
5
|
+
# Monkey patch to fix foreground color in SVG output
|
6
|
+
def bars_to_path(opts={})
|
7
|
+
with_options opts do
|
8
|
+
%Q|<path stroke="#{foreground}" stroke-width="#{xdim}" d="#{bars_to_path_data(opts)}" />|
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'asciidoctor/extensions'
|
2
|
+
require_relative 'barcode/extension'
|
3
|
+
require_relative 'barcode/converter'
|
4
|
+
|
5
|
+
Asciidoctor::Extensions.register do
|
6
|
+
Asciidoctor::Diagram::BarcodeConverter::BARCODE_TYPES.each do |type|
|
7
|
+
block Asciidoctor::Diagram::BarcodeBlockProcessor, type, :type => type
|
8
|
+
block_macro Asciidoctor::Diagram::BarcodeBlockMacroProcessor, type, :type => type
|
9
|
+
inline_macro Asciidoctor::Diagram::BarcodeInlineMacroProcessor, type, :type => type
|
10
|
+
end
|
11
|
+
end
|
@@ -13,6 +13,11 @@ module Asciidoctor
|
|
13
13
|
use_converter ::Asciidoctor::Diagram.const_get("#{tool}Converter")
|
14
14
|
end
|
15
15
|
::Asciidoctor::Diagram.const_set("#{tool}BlockMacroProcessor", block_macro)
|
16
|
+
|
17
|
+
inline_macro = Class.new(DiagramInlineMacroProcessor) do
|
18
|
+
use_converter ::Asciidoctor::Diagram.const_get("#{tool}Converter")
|
19
|
+
end
|
20
|
+
::Asciidoctor::Diagram.const_set("#{tool}InlineMacroProcessor", inline_macro)
|
16
21
|
end
|
17
22
|
end
|
18
23
|
end
|
@@ -5,5 +5,6 @@ Asciidoctor::Extensions.register do
|
|
5
5
|
['BlockDiag', 'SeqDiag', 'ActDiag', 'NwDiag', 'RackDiag', 'PacketDiag'].each do |tool|
|
6
6
|
block ::Asciidoctor::Diagram.const_get("#{tool}BlockProcessor"), tool.downcase.to_sym
|
7
7
|
block_macro ::Asciidoctor::Diagram.const_get("#{tool}BlockMacroProcessor"), tool.downcase.to_sym
|
8
|
+
inline_macro ::Asciidoctor::Diagram.const_get("#{tool}InlineMacroProcessor"), tool.downcase.to_sym
|
8
9
|
end
|
9
10
|
end
|
@@ -4,4 +4,5 @@ require_relative 'bytefield/extension'
|
|
4
4
|
Asciidoctor::Extensions.register do
|
5
5
|
block Asciidoctor::Diagram::BytefieldBlockProcessor, :bytefield
|
6
6
|
block_macro Asciidoctor::Diagram::BytefieldBlockMacroProcessor, :bytefield
|
7
|
+
inline_macro Asciidoctor::Diagram::BytefieldInlineMacroProcessor, :bytefield
|
7
8
|
end
|
@@ -50,6 +50,8 @@ module Asciidoctor
|
|
50
50
|
}
|
51
51
|
}
|
52
52
|
|
53
|
+
TEXT_FORMATS = [:txt, :atxt, :utxt]
|
54
|
+
|
53
55
|
# Processes the diagram block or block macro by converting it into an image or literal block.
|
54
56
|
#
|
55
57
|
# @param parent [Asciidoctor::AbstractBlock] the parent asciidoc block of the block or block macro being processed
|
@@ -57,17 +59,22 @@ module Asciidoctor
|
|
57
59
|
# target value of a block macro
|
58
60
|
# @param attributes [Hash] the attributes of the block or block macro
|
59
61
|
# @return [Asciidoctor::AbstractBlock] a new block that replaces the original block or block macro
|
62
|
+
|
60
63
|
def process(parent, reader_or_target, attributes)
|
61
64
|
location = parent.document.reader.cursor_at_mark
|
62
65
|
|
63
66
|
normalised_attributes = attributes.inject({}) { |h, (k, v)| h[normalise_attribute_name(k)] = v; h }
|
64
|
-
source = create_source(parent, reader_or_target, normalised_attributes)
|
65
|
-
|
66
67
|
converter = config[:converter].new
|
67
68
|
|
68
|
-
supported_formats = converter
|
69
|
+
supported_formats = supported_formats(converter)
|
70
|
+
|
71
|
+
source = create_source(parent, reader_or_target, normalised_attributes)
|
72
|
+
# memorize current code here for error message to avoid calling wrapped source's code method later
|
73
|
+
code = source.code
|
69
74
|
|
70
75
|
begin
|
76
|
+
source = converter.wrap_source(source)
|
77
|
+
|
71
78
|
format = source.attributes.delete('format') || source.global_attr('format', supported_formats[0])
|
72
79
|
format = format.to_sym if format.respond_to?(:to_sym)
|
73
80
|
|
@@ -80,7 +87,7 @@ module Asciidoctor
|
|
80
87
|
caption = source.attributes.delete 'caption'
|
81
88
|
|
82
89
|
case format
|
83
|
-
when
|
90
|
+
when *TEXT_FORMATS
|
84
91
|
block = create_literal_block(parent, source, format, converter)
|
85
92
|
else
|
86
93
|
block = create_image_block(parent, source, format, converter)
|
@@ -103,7 +110,7 @@ module Asciidoctor
|
|
103
110
|
logger.error message_with_context warn_msg, source_location: location
|
104
111
|
|
105
112
|
text << "\n"
|
106
|
-
text <<
|
113
|
+
text << code
|
107
114
|
Asciidoctor::Block.new parent, :listing, :source => text, :attributes => attributes
|
108
115
|
end
|
109
116
|
|
@@ -129,6 +136,10 @@ module Asciidoctor
|
|
129
136
|
|
130
137
|
private
|
131
138
|
|
139
|
+
def supported_formats(converter)
|
140
|
+
converter.supported_formats
|
141
|
+
end
|
142
|
+
|
132
143
|
def normalise_attribute_name(k)
|
133
144
|
case k
|
134
145
|
when String
|
@@ -227,9 +238,17 @@ module Asciidoctor
|
|
227
238
|
use_absolute_path = source.attr('data-uri', nil, true)
|
228
239
|
|
229
240
|
if format == :svg
|
230
|
-
|
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
|
+
|
231
249
|
case svg_type
|
232
250
|
when nil, 'static'
|
251
|
+
# Nothing to do
|
233
252
|
when 'inline', 'interactive'
|
234
253
|
node.set_option(svg_type)
|
235
254
|
use_absolute_path = true
|
@@ -371,5 +390,42 @@ module Asciidoctor
|
|
371
390
|
FileSource.new(self, parent, apply_target_subs(parent, target), attributes)
|
372
391
|
end
|
373
392
|
end
|
393
|
+
|
394
|
+
# Base class for diagram inline macro processors.
|
395
|
+
class DiagramInlineMacroProcessor < Asciidoctor::Extensions::InlineMacroProcessor
|
396
|
+
include DiagramProcessor
|
397
|
+
|
398
|
+
def self.inherited(subclass)
|
399
|
+
subclass.name_positional_attributes ['format']
|
400
|
+
end
|
401
|
+
|
402
|
+
def apply_target_subs(parent, target)
|
403
|
+
if target
|
404
|
+
parent.normalize_system_path(parent.sub_attributes(target, :attribute_missing => 'warn'))
|
405
|
+
else
|
406
|
+
nil
|
407
|
+
end
|
408
|
+
end
|
409
|
+
|
410
|
+
alias_method(:generate_block,:process)
|
411
|
+
|
412
|
+
def process(parent, reader_or_target, attributes)
|
413
|
+
block = generate_block(parent, reader_or_target, attributes)
|
414
|
+
attrs = block.attributes.dup
|
415
|
+
target = attrs.delete('target')
|
416
|
+
create_inline(parent, :image, nil, :type => 'image', :target => target, :attributes => attrs).convert
|
417
|
+
end
|
418
|
+
|
419
|
+
def supported_formats(converter)
|
420
|
+
converter.supported_formats.reject { |f| TEXT_FORMATS.include?(f) }
|
421
|
+
end
|
422
|
+
|
423
|
+
# Creates a FileSource using target as the file name.
|
424
|
+
#
|
425
|
+
# @return [FileSource] a FileSource
|
426
|
+
def create_source(parent, target, attributes)
|
427
|
+
FileSource.new(self, parent, apply_target_subs(parent, target), attributes)
|
428
|
+
end
|
429
|
+
end
|
374
430
|
end
|
375
431
|
end
|
@@ -19,6 +19,10 @@ module Asciidoctor
|
|
19
19
|
# @return [String] the String representation of the source code for the diagram
|
20
20
|
# @abstract
|
21
21
|
def code
|
22
|
+
@code ||= load_code
|
23
|
+
end
|
24
|
+
|
25
|
+
def load_code
|
22
26
|
raise NotImplementedError.new
|
23
27
|
end
|
24
28
|
|
@@ -134,6 +138,22 @@ module Asciidoctor
|
|
134
138
|
cmd_path
|
135
139
|
end
|
136
140
|
|
141
|
+
def ensure_gem(name, version)
|
142
|
+
begin
|
143
|
+
gem_var = "gem-#{name}"
|
144
|
+
unless config.key? gem_var
|
145
|
+
gem(name, version)
|
146
|
+
config[gem_var] = true
|
147
|
+
end
|
148
|
+
rescue Gem::LoadError => e
|
149
|
+
msg = "You are using functionality that requires the optional gem dependency `#{e.name}` which could not be loaded. Add `gem '#{e.name}', '#{e.requirement}'` to your Gemfile."
|
150
|
+
err = Gem::LoadError.new(msg)
|
151
|
+
err.name = e.name
|
152
|
+
err.requirement = e.requirement
|
153
|
+
raise err
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
137
157
|
def resolve_path target, start = base_dir
|
138
158
|
raise NotImplementedError.new
|
139
159
|
end
|
@@ -233,8 +253,8 @@ module Asciidoctor
|
|
233
253
|
@reader = reader
|
234
254
|
end
|
235
255
|
|
236
|
-
def
|
237
|
-
@
|
256
|
+
def load_code
|
257
|
+
@parent_block.apply_subs(@reader.lines, resolve_diagram_subs).join("\n")
|
238
258
|
end
|
239
259
|
end
|
240
260
|
|
@@ -267,11 +287,7 @@ module Asciidoctor
|
|
267
287
|
(@file_name && File.mtime(@file_name) > File.mtime(image_file)) || super
|
268
288
|
end
|
269
289
|
|
270
|
-
def
|
271
|
-
@code ||= read_code
|
272
|
-
end
|
273
|
-
|
274
|
-
def read_code
|
290
|
+
def load_code
|
275
291
|
if @file_name
|
276
292
|
lines = File.readlines(@file_name)
|
277
293
|
lines = prepare_source_array(lines)
|
@@ -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 DiagramsConverter
|
9
|
+
include DiagramConverter
|
10
|
+
include CliGenerator
|
11
|
+
|
12
|
+
|
13
|
+
def supported_formats
|
14
|
+
[:png, :svg, :pdf]
|
15
|
+
end
|
16
|
+
|
17
|
+
def convert(source, format, options)
|
18
|
+
python_path = source.find_command('python3', :attrs => ['diagrams-python'], :alt_cmds => ['python'])
|
19
|
+
|
20
|
+
code = source.to_s
|
21
|
+
|
22
|
+
match_data = /Diagram\((.*?)\)/.match(code)
|
23
|
+
raise "Could not find Diagram constructor" unless match_data
|
24
|
+
|
25
|
+
args = match_data[1].strip
|
26
|
+
|
27
|
+
target_file = Tempfile.new('diagrams')
|
28
|
+
|
29
|
+
diagram = 'Diagram('
|
30
|
+
diagram << args
|
31
|
+
diagram << ',' unless args.empty?
|
32
|
+
diagram << "filename=\"#{target_file.path}\""
|
33
|
+
diagram << ",outformat=\"#{format}\""
|
34
|
+
diagram << ')'
|
35
|
+
|
36
|
+
code = match_data.pre_match + diagram + match_data.post_match
|
37
|
+
|
38
|
+
begin
|
39
|
+
target_file.close
|
40
|
+
generate_stdin_file(python_path, code, target_file.path + ".#{format}") do |tool|
|
41
|
+
[tool, '-']
|
42
|
+
end
|
43
|
+
ensure
|
44
|
+
target_file.unlink
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative 'converter'
|
2
|
+
require_relative '../diagram_processor'
|
3
|
+
|
4
|
+
module Asciidoctor
|
5
|
+
module Diagram
|
6
|
+
class DiagramsBlockProcessor < DiagramBlockProcessor
|
7
|
+
use_converter DiagramsConverter
|
8
|
+
end
|
9
|
+
|
10
|
+
class DiagramsBlockMacroProcessor < DiagramBlockMacroProcessor
|
11
|
+
use_converter DiagramsConverter
|
12
|
+
end
|
13
|
+
|
14
|
+
class DiagramsInlineMacroProcessor < DiagramInlineMacroProcessor
|
15
|
+
use_converter DiagramsConverter
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
require 'asciidoctor/extensions'
|
2
|
+
require_relative 'diagrams/extension'
|
3
|
+
|
4
|
+
Asciidoctor::Extensions.register do
|
5
|
+
block Asciidoctor::Diagram::DiagramsBlockProcessor, :diagrams
|
6
|
+
block_macro Asciidoctor::Diagram::DiagramsBlockMacroProcessor, :diagrams
|
7
|
+
inline_macro Asciidoctor::Diagram::DiagramsInlineMacroProcessor, :diagrams
|
8
|
+
end
|
Binary file
|
@@ -4,4 +4,5 @@ require_relative 'ditaa/extension'
|
|
4
4
|
Asciidoctor::Extensions.register do
|
5
5
|
block Asciidoctor::Diagram::DitaaBlockProcessor, :ditaa
|
6
6
|
block_macro Asciidoctor::Diagram::DitaaBlockMacroProcessor, :ditaa
|
7
|
+
inline_macro Asciidoctor::Diagram::DitaaInlineMacroProcessor, :ditaa
|
7
8
|
end
|