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.
Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.adoc +43 -0
  3. data/docs/antora.yml +1 -1
  4. data/docs/modules/ROOT/pages/index.adoc +1 -1
  5. data/docs/modules/ROOT/partials/advanced.adoc +72 -13
  6. data/docs/modules/ROOT/partials/create_diagram.adoc +45 -42
  7. data/docs/modules/ROOT/partials/uris.adoc +5 -2
  8. data/lib/asciidoctor-diagram/a2s/extension.rb +4 -0
  9. data/lib/asciidoctor-diagram/a2s.rb +1 -0
  10. data/lib/asciidoctor-diagram/barcode/converter.rb +157 -0
  11. data/lib/asciidoctor-diagram/barcode/dependencies.rb +10 -0
  12. data/lib/asciidoctor-diagram/barcode/extension.rb +47 -0
  13. data/lib/asciidoctor-diagram/barcode/svg_outputter.rb +12 -0
  14. data/lib/asciidoctor-diagram/barcode.rb +11 -0
  15. data/lib/asciidoctor-diagram/blockdiag/extension.rb +5 -0
  16. data/lib/asciidoctor-diagram/blockdiag.rb +1 -0
  17. data/lib/asciidoctor-diagram/bpmn/extension.rb +4 -0
  18. data/lib/asciidoctor-diagram/bpmn.rb +1 -0
  19. data/lib/asciidoctor-diagram/bytefield/extension.rb +4 -0
  20. data/lib/asciidoctor-diagram/bytefield.rb +1 -0
  21. data/lib/asciidoctor-diagram/diagram_converter.rb +4 -0
  22. data/lib/asciidoctor-diagram/diagram_processor.rb +62 -6
  23. data/lib/asciidoctor-diagram/diagram_source.rb +23 -7
  24. data/lib/asciidoctor-diagram/diagrams/converter.rb +49 -0
  25. data/lib/asciidoctor-diagram/diagrams/extension.rb +18 -0
  26. data/lib/asciidoctor-diagram/diagrams.rb +8 -0
  27. data/lib/asciidoctor-diagram/ditaa/ditaa-1.3.20.jar +0 -0
  28. data/lib/asciidoctor-diagram/ditaa/extension.rb +4 -0
  29. data/lib/asciidoctor-diagram/ditaa.rb +1 -0
  30. data/lib/asciidoctor-diagram/dpic/extension.rb +4 -0
  31. data/lib/asciidoctor-diagram/dpic.rb +1 -0
  32. data/lib/asciidoctor-diagram/erd/extension.rb +4 -0
  33. data/lib/asciidoctor-diagram/erd.rb +1 -0
  34. data/lib/asciidoctor-diagram/gnuplot/extension.rb +4 -0
  35. data/lib/asciidoctor-diagram/gnuplot.rb +1 -0
  36. data/lib/asciidoctor-diagram/graphviz/extension.rb +4 -0
  37. data/lib/asciidoctor-diagram/graphviz.rb +1 -0
  38. data/lib/asciidoctor-diagram/http/converter.rb +35 -11
  39. data/lib/asciidoctor-diagram/http/server.rb +1 -1
  40. data/lib/asciidoctor-diagram/lilypond/extension.rb +4 -0
  41. data/lib/asciidoctor-diagram/lilypond.rb +1 -0
  42. data/lib/asciidoctor-diagram/meme/extension.rb +14 -16
  43. data/lib/asciidoctor-diagram/meme.rb +1 -0
  44. data/lib/asciidoctor-diagram/mermaid/extension.rb +4 -0
  45. data/lib/asciidoctor-diagram/mermaid.rb +1 -0
  46. data/lib/asciidoctor-diagram/msc/extension.rb +4 -0
  47. data/lib/asciidoctor-diagram/msc.rb +1 -0
  48. data/lib/asciidoctor-diagram/nomnoml/extension.rb +4 -0
  49. data/lib/asciidoctor-diagram/nomnoml.rb +1 -0
  50. data/lib/asciidoctor-diagram/pikchr/extension.rb +4 -0
  51. data/lib/asciidoctor-diagram/pikchr.rb +1 -0
  52. data/lib/asciidoctor-diagram/plantuml/converter.rb +53 -34
  53. data/lib/asciidoctor-diagram/plantuml/extension.rb +8 -0
  54. data/lib/asciidoctor-diagram/plantuml/plantuml-1.3.20.jar +0 -0
  55. data/lib/asciidoctor-diagram/plantuml.rb +1 -0
  56. data/lib/asciidoctor-diagram/salt.rb +1 -0
  57. data/lib/asciidoctor-diagram/shaape/extension.rb +4 -0
  58. data/lib/asciidoctor-diagram/shaape.rb +1 -0
  59. data/lib/asciidoctor-diagram/smcat/extension.rb +4 -0
  60. data/lib/asciidoctor-diagram/smcat.rb +1 -0
  61. data/lib/asciidoctor-diagram/svgbob/extension.rb +4 -0
  62. data/lib/asciidoctor-diagram/svgbob.rb +1 -0
  63. data/lib/asciidoctor-diagram/symbolator/extension.rb +4 -0
  64. data/lib/asciidoctor-diagram/symbolator.rb +1 -0
  65. data/lib/asciidoctor-diagram/syntrax/converter.rb +1 -1
  66. data/lib/asciidoctor-diagram/syntrax/extension.rb +4 -0
  67. data/lib/asciidoctor-diagram/syntrax.rb +1 -0
  68. data/lib/asciidoctor-diagram/tikz/extension.rb +4 -0
  69. data/lib/asciidoctor-diagram/tikz.rb +1 -0
  70. data/lib/asciidoctor-diagram/umlet/extension.rb +4 -0
  71. data/lib/asciidoctor-diagram/umlet.rb +1 -0
  72. data/lib/asciidoctor-diagram/util/cli_generator.rb +9 -7
  73. data/lib/asciidoctor-diagram/util/server-1.3.20.jar +0 -0
  74. data/lib/asciidoctor-diagram/vega/extension.rb +4 -0
  75. data/lib/asciidoctor-diagram/vega.rb +2 -0
  76. data/lib/asciidoctor-diagram/version.rb +1 -1
  77. data/lib/asciidoctor-diagram/wavedrom/extension.rb +4 -0
  78. data/lib/asciidoctor-diagram/wavedrom.rb +1 -0
  79. data/lib/asciidoctor-diagram.rb +2 -0
  80. data/spec/a2s_spec.rb +9 -5
  81. data/spec/barcode_spec.rb +176 -0
  82. data/spec/blockdiag_spec.rb +7 -3
  83. data/spec/bpmn_spec.rb +7 -3
  84. data/spec/bytefield_spec.rb +9 -5
  85. data/spec/diagrams_spec.rb +27 -0
  86. data/spec/ditaa_spec.rb +7 -3
  87. data/spec/dpic_spec.rb +7 -3
  88. data/spec/erd_spec.rb +7 -3
  89. data/spec/gnuplot_spec.rb +14 -10
  90. data/spec/graphviz_spec.rb +7 -3
  91. data/spec/lilypond_spec.rb +7 -3
  92. data/spec/mermaid_spec.rb +7 -3
  93. data/spec/msc_spec.rb +10 -6
  94. data/spec/nomnoml_spec.rb +9 -5
  95. data/spec/pikchr_spec.rb +7 -3
  96. data/spec/plantuml_spec.rb +114 -3
  97. data/spec/shaape_spec.rb +7 -3
  98. data/spec/shared_examples.rb +161 -0
  99. data/spec/smcat_spec.rb +10 -6
  100. data/spec/svgbob_spec.rb +7 -3
  101. data/spec/symbolator_spec.rb +7 -3
  102. data/spec/syntrax_spec.rb +7 -3
  103. data/spec/test_helper.rb +3 -1
  104. data/spec/tikz_spec.rb +8 -4
  105. data/spec/umlet_spec.rb +6 -3
  106. data/spec/vega_spec.rb +11 -6
  107. data/spec/wavedrom_spec.rb +7 -3
  108. metadata +23 -10
  109. data/lib/asciidoctor-diagram/ditaa/ditaa-1.3.17.jar +0 -0
  110. data/lib/asciidoctor-diagram/plantuml/plantuml-1.3.17.jar +0 -0
  111. data/lib/asciidoctor-diagram/util/server-1.3.17.jar +0 -0
@@ -4,4 +4,5 @@ require_relative 'dpic/extension'
4
4
  Asciidoctor::Extensions.register do
5
5
  block Asciidoctor::Diagram::DpicBlockProcessor, :dpic
6
6
  block_macro Asciidoctor::Diagram::DpicBlockMacroProcessor, :dpic
7
+ inline_macro Asciidoctor::Diagram::DpicInlineMacroProcessor, :dpic
7
8
  end
@@ -10,5 +10,9 @@ module Asciidoctor
10
10
  class ErdBlockMacroProcessor < DiagramBlockMacroProcessor
11
11
  use_converter ErdConverter
12
12
  end
13
+
14
+ class ErdInlineMacroProcessor < DiagramInlineMacroProcessor
15
+ use_converter ErdConverter
16
+ end
13
17
  end
14
18
  end
@@ -4,4 +4,5 @@ require_relative 'erd/extension'
4
4
  Asciidoctor::Extensions.register do
5
5
  block Asciidoctor::Diagram::ErdBlockProcessor, :erd
6
6
  block_macro Asciidoctor::Diagram::ErdBlockMacroProcessor, :erd
7
+ inline_macro Asciidoctor::Diagram::ErdInlineMacroProcessor, :erd
7
8
  end
@@ -10,5 +10,9 @@ module Asciidoctor
10
10
  class GnuplotBlockMacroProcessor < DiagramBlockMacroProcessor
11
11
  use_converter GnuplotConverter
12
12
  end
13
+
14
+ class GnuplotInlineMacroProcessor < DiagramInlineMacroProcessor
15
+ use_converter GnuplotConverter
16
+ end
13
17
  end
14
18
  end
@@ -4,4 +4,5 @@ require_relative 'gnuplot/extension'
4
4
  Asciidoctor::Extensions.register do
5
5
  block Asciidoctor::Diagram::GnuplotBlockProcessor, :gnuplot
6
6
  block_macro Asciidoctor::Diagram::GnuplotBlockMacroProcessor, :gnuplot
7
+ inline_macro Asciidoctor::Diagram::GnuplotInlineMacroProcessor, :gnuplot
7
8
  end
@@ -10,5 +10,9 @@ module Asciidoctor
10
10
  class GraphvizBlockMacroProcessor < DiagramBlockMacroProcessor
11
11
  use_converter GraphvizConverter
12
12
  end
13
+
14
+ class GraphvizInlineMacroProcessor < DiagramInlineMacroProcessor
15
+ use_converter GraphvizConverter
16
+ end
13
17
  end
14
18
  end
@@ -4,4 +4,5 @@ require_relative 'graphviz/extension'
4
4
  Asciidoctor::Extensions.register do
5
5
  block Asciidoctor::Diagram::GraphvizBlockProcessor, :graphviz
6
6
  block_macro Asciidoctor::Diagram::GraphvizBlockMacroProcessor, :graphviz
7
+ inline_macro Asciidoctor::Diagram::GraphvizInlineMacroProcessor, :graphviz
7
8
  end
@@ -11,6 +11,8 @@ module Asciidoctor
11
11
  module Diagram
12
12
  # @private
13
13
  class HttpConverter
14
+ DEFAULT_MAX_GET_SIZE = 1024
15
+
14
16
  include DiagramConverter
15
17
 
16
18
  def initialize(base_uri, type, converter)
@@ -23,6 +25,14 @@ module Asciidoctor
23
25
  @converter.supported_formats
24
26
  end
25
27
 
28
+ def collect_options(source)
29
+ options = {}
30
+
31
+ options[:max_get_size] = source.global_attr('max-get-size', DEFAULT_MAX_GET_SIZE).to_i
32
+
33
+ options
34
+ end
35
+
26
36
  def convert(source, format, options)
27
37
  code = source.code
28
38
 
@@ -41,37 +51,49 @@ module Asciidoctor
41
51
  encoded = Base64.urlsafe_encode64(compressed)
42
52
  data = '0A' + encoded
43
53
 
44
- path = uri.path
54
+ path = uri.path.dup
45
55
  path << '/' unless path.end_with? '/'
46
56
  path << format.to_s
47
- path << '/' << data
48
- uri.path = path
49
57
  when :kroki_io
50
58
  compressed = Zlib.deflate(code, Zlib::BEST_COMPRESSION)
51
59
  data = Base64.urlsafe_encode64(compressed)
52
60
 
53
- path = uri.path
61
+ path = uri.path.dup
54
62
  path << '/' unless path.end_with? '/'
55
63
  path << source.diagram_type.to_s
56
64
  path << '/' << format.to_s
57
- path << '/' << data
58
- uri.path = path
59
65
  else
60
66
  raise "Unsupported server type: " + @type
61
67
  end
62
68
 
63
- get_uri(uri)
69
+ get_path = path.dup << '/' << data
70
+
71
+ if get_path.length > options[:max_get_size]
72
+ uri.path = path
73
+ get_uri(uri, code, 'text/plain; charset=utf-8')
74
+ else
75
+ uri.path = get_path
76
+ get_uri(uri)
77
+ end
64
78
  end
65
79
 
66
80
  private
67
81
 
68
- def get_uri(uri, attempt = 1)
82
+ def get_uri(uri, post_data = nil, post_content_type = nil, attempt = 1)
69
83
  if attempt >= 10
70
84
  raise "Too many redirects"
71
85
  end
72
86
 
87
+ if post_data.nil?
88
+ request = Net::HTTP::Get.new(uri.path)
89
+ else
90
+ request = Net::HTTP::Post.new(uri.path)
91
+ request.body = post_data
92
+ request.set_content_type(post_content_type) if post_content_type
93
+ end
94
+
73
95
  Net::HTTP.start(uri.hostname, uri.port, :use_ssl => uri.scheme.downcase == 'https') do |http|
74
- response = http.request_get uri.path
96
+ response = http.request(request)
75
97
  case response
76
98
  when Net::HTTPSuccess
77
99
  response.body
@@ -79,10 +101,12 @@ module Asciidoctor
79
101
  location = response['Location']
80
102
  new_uri = URI.parse(location)
81
103
  if new_uri.relative?
82
- get_uri(uri + location, attempt + 1)
104
+ resolved_uri = uri + location
83
105
  else
84
- get_uri(new_uri, attempt + 1)
106
+ resolved_uri = new_uri
85
107
  end
108
+
109
+ get_uri(resolved_uri, post_data, post_content_type, attempt + 1)
86
110
  else
87
111
  response.value
88
112
  end
@@ -104,7 +104,7 @@ module Asciidoctor
104
104
  nil
105
105
  end
106
106
 
107
- def code
107
+ def load_code
108
108
  @source
109
109
  end
110
110
 
@@ -10,5 +10,9 @@ module Asciidoctor
10
10
  class LilypondBlockMacroProcessor < DiagramBlockMacroProcessor
11
11
  use_converter LilypondConverter
12
12
  end
13
+
14
+ class LilypondInlineMacroProcessor < DiagramInlineMacroProcessor
15
+ use_converter LilypondConverter
16
+ end
13
17
  end
14
18
  end
@@ -4,4 +4,5 @@ require_relative 'lilypond/extension'
4
4
  Asciidoctor::Extensions.register do
5
5
  block Asciidoctor::Diagram::LilypondBlockProcessor, :lilypond
6
6
  block_macro Asciidoctor::Diagram::LilypondBlockMacroProcessor, :lilypond
7
+ inline_macro Asciidoctor::Diagram::LilypondInlineMacroProcessor, :lilypond
7
8
  end
@@ -3,26 +3,24 @@ require_relative '../diagram_processor'
3
3
 
4
4
  module Asciidoctor
5
5
  module Diagram
6
- class MemeBlockMacroProcessor < DiagramBlockMacroProcessor
7
- use_converter MemeConverter
8
-
9
- class StringReader
10
- def initialize(str)
11
- @str = str
12
- end
13
-
14
- def lines
15
- @str.lines.map { |l| l.rstrip }
16
- end
17
- end
18
-
19
- name_positional_attributes %w(top bottom target format)
20
-
6
+ module MemeProcessor
21
7
  def create_source(parent, target, attributes)
22
8
  attributes = attributes.dup
23
9
  attributes['background'] = apply_target_subs(parent, target)
24
- ::Asciidoctor::Diagram::ReaderSource.new(self, parent, StringReader.new(''), attributes)
10
+ ::Asciidoctor::Diagram::ReaderSource.new(self, parent, '', attributes)
25
11
  end
26
12
  end
13
+
14
+ class MemeBlockMacroProcessor < DiagramBlockMacroProcessor
15
+ use_converter MemeConverter
16
+ name_positional_attributes %w(top bottom target format)
17
+ include MemeProcessor
18
+ end
19
+
20
+ class MemeInlineMacroProcessor < DiagramInlineMacroProcessor
21
+ use_converter MemeConverter
22
+ name_positional_attributes %w(top bottom target format)
23
+ include MemeProcessor
24
+ end
27
25
  end
28
26
  end
@@ -3,4 +3,5 @@ require_relative 'meme/extension'
3
3
 
4
4
  Asciidoctor::Extensions.register do
5
5
  block_macro Asciidoctor::Diagram::MemeBlockMacroProcessor, :meme
6
+ inline_macro Asciidoctor::Diagram::MemeInlineMacroProcessor, :meme
6
7
  end
@@ -10,5 +10,9 @@ module Asciidoctor
10
10
  class MermaidBlockMacroProcessor < DiagramBlockMacroProcessor
11
11
  use_converter MermaidConverter
12
12
  end
13
+
14
+ class MermaidInlineMacroProcessor < DiagramInlineMacroProcessor
15
+ use_converter MermaidConverter
16
+ end
13
17
  end
14
18
  end
@@ -4,4 +4,5 @@ require_relative 'mermaid/extension'
4
4
  Asciidoctor::Extensions.register do
5
5
  block Asciidoctor::Diagram::MermaidBlockProcessor, :mermaid
6
6
  block_macro Asciidoctor::Diagram::MermaidBlockMacroProcessor, :mermaid
7
+ inline_macro Asciidoctor::Diagram::MermaidInlineMacroProcessor, :mermaid
7
8
  end
@@ -10,5 +10,9 @@ module Asciidoctor
10
10
  class MscBlockMacroProcessor < DiagramBlockMacroProcessor
11
11
  use_converter MscgenConverter
12
12
  end
13
+
14
+ class MscInlineMacroProcessor < DiagramInlineMacroProcessor
15
+ use_converter MscgenConverter
16
+ end
13
17
  end
14
18
  end
@@ -4,4 +4,5 @@ require_relative 'msc/extension'
4
4
  Asciidoctor::Extensions.register do
5
5
  block Asciidoctor::Diagram::MscBlockProcessor, :msc
6
6
  block_macro Asciidoctor::Diagram::MscBlockMacroProcessor, :msc
7
+ inline_macro Asciidoctor::Diagram::MscInlineMacroProcessor, :msc
7
8
  end
@@ -10,5 +10,9 @@ module Asciidoctor
10
10
  class NomnomlBlockMacroProcessor < DiagramBlockMacroProcessor
11
11
  use_converter NomnomlConverter
12
12
  end
13
+
14
+ class NomnomlInlineMacroProcessor < DiagramInlineMacroProcessor
15
+ use_converter NomnomlConverter
16
+ end
13
17
  end
14
18
  end
@@ -4,4 +4,5 @@ require_relative 'nomnoml/extension'
4
4
  Asciidoctor::Extensions.register do
5
5
  block Asciidoctor::Diagram::NomnomlBlockProcessor, :nomnoml
6
6
  block_macro Asciidoctor::Diagram::NomnomlBlockMacroProcessor, :nomnoml
7
+ inline_macro Asciidoctor::Diagram::NomnomlInlineMacroProcessor, :nomnoml
7
8
  end
@@ -10,5 +10,9 @@ module Asciidoctor
10
10
  class PikchrBlockMacroProcessor < DiagramBlockMacroProcessor
11
11
  use_converter PikchrConverter
12
12
  end
13
+
14
+ class PikchrInlineMacroProcessor < DiagramInlineMacroProcessor
15
+ use_converter PikchrConverter
16
+ end
13
17
  end
14
18
  end
@@ -4,4 +4,5 @@ require_relative 'pikchr/extension'
4
4
  Asciidoctor::Extensions.register do
5
5
  block Asciidoctor::Diagram::PikchrBlockProcessor, :pikchr
6
6
  block_macro Asciidoctor::Diagram::PikchrBlockMacroProcessor, :pikchr
7
+ inline_macro Asciidoctor::Diagram::PikchrInlineMacroProcessor, :pikchr
7
8
  end
@@ -1,4 +1,5 @@
1
1
  require_relative '../diagram_converter'
2
+ require 'delegate'
2
3
  require 'uri'
3
4
 
4
5
  module Asciidoctor
@@ -23,20 +24,24 @@ module Asciidoctor
23
24
  Java.classpath.concat Dir[File.join(File.dirname(__FILE__), '*.jar')].freeze
24
25
  Java.classpath.concat PLANTUML_JARS
25
26
 
27
+ def wrap_source(source)
28
+ PlantUMLPreprocessedSource.new(source, self.class.tag)
29
+ end
30
+
26
31
  def supported_formats
27
32
  [:png, :svg, :txt, :atxt, :utxt]
28
33
  end
29
34
 
30
35
  def collect_options(source)
31
36
  {
32
- :config => source.attr('plantumlconfig', nil, true) || source.attr('config')
37
+ :size_limit => source.attr('size-limit', '4096')
33
38
  }
34
39
  end
35
40
 
36
41
  def convert(source, format, options)
37
42
  Java.load
38
43
 
39
- code = preprocess_code(source, self.class.tag)
44
+ code = source.code
40
45
 
41
46
  case format
42
47
  when :png
@@ -55,9 +60,9 @@ module Asciidoctor
55
60
  'Accept' => mime_type
56
61
  }
57
62
 
58
- config_file = options[:config]
59
- if config_file
60
- headers['X-PlantUML-Config'] = File.expand_path(config_file, source.base_dir)
63
+ size_limit = options[:size_limit]
64
+ if size_limit
65
+ headers['X-PlantUML-SizeLimit'] = size_limit
61
66
  end
62
67
 
63
68
  dot = source.find_command('dot', :alt_attrs => ['graphvizdot'], :raise_on_error => false)
@@ -77,35 +82,6 @@ module Asciidoctor
77
82
 
78
83
  response[:body]
79
84
  end
80
-
81
- def preprocess_code(source, tag)
82
- code = source.to_s
83
-
84
- code = "@start#{tag}\n#{code}\n@end#{tag}" unless code.index("@start") && code.index("@end")
85
-
86
- code.gsub!(/(?<=<img:)[^>]+(?=>)/) do |match|
87
- resolve_path(match, source, source.attr('imagesdir', nil, false))
88
- end
89
-
90
- code.gsub!(/(?:(?<=!include\s)|(?<=!includesub\s))\s*[^<][^!\n\r]+/) do |match|
91
- resolve_path(match.lstrip, source, source.base_dir)
92
- end
93
-
94
- code
95
- end
96
-
97
- def resolve_path(path, source, base_dir)
98
- if path =~ ::URI::ABS_URI
99
- uri = ::URI.parse(path)
100
- if uri.scheme == 'file'
101
- source.resolve_path(uri.path, base_dir)
102
- else
103
- path
104
- end
105
- else
106
- source.resolve_path(path, base_dir)
107
- end
108
- end
109
85
  end
110
86
 
111
87
  class UmlConverter < PlantUmlConverter
@@ -119,5 +95,48 @@ module Asciidoctor
119
95
  'salt'
120
96
  end
121
97
  end
98
+
99
+ class PlantUMLPreprocessedSource < SimpleDelegator
100
+ def initialize(source, tag)
101
+ super(source)
102
+ @tag = tag
103
+ end
104
+
105
+ def code
106
+ @code ||= load_code
107
+ end
108
+
109
+ def load_code
110
+ Java.load
111
+
112
+ code = __getobj__.code
113
+
114
+ code = "@start#{@tag}\n#{code}\n@end#{@tag}" unless code.index("@start") && code.index("@end")
115
+
116
+ headers = {}
117
+
118
+ config_file = attr('plantumlconfig', nil, true) || attr('config')
119
+ if config_file
120
+ headers['X-PlantUML-Config'] = File.expand_path(config_file, base_dir)
121
+ end
122
+
123
+ headers['X-PlantUML-Basedir'] = Platform.native_path(File.expand_path(base_dir))
124
+
125
+ response = Java.send_request(
126
+ :url => '/plantumlpreprocessor',
127
+ :body => code,
128
+ :headers => headers
129
+ )
130
+
131
+ unless response[:code] == 200
132
+ raise Java.create_error("PlantUML preprocessing failed", response)
133
+ end
134
+
135
+ code = response[:body]
136
+ code.force_encoding(Encoding::UTF_8)
137
+
138
+ code
139
+ end
140
+ end
122
141
  end
123
142
  end
@@ -11,6 +11,10 @@ module Asciidoctor
11
11
  use_converter UmlConverter
12
12
  end
13
13
 
14
+ class PlantUmlInlineMacroProcessor < DiagramInlineMacroProcessor
15
+ use_converter UmlConverter
16
+ end
17
+
14
18
  class SaltBlockProcessor < DiagramBlockProcessor
15
19
  use_converter SaltConverter
16
20
  end
@@ -18,5 +22,9 @@ module Asciidoctor
18
22
  class SaltBlockMacroProcessor < DiagramBlockMacroProcessor
19
23
  use_converter SaltConverter
20
24
  end
25
+
26
+ class SaltInlineMacroProcessor < DiagramInlineMacroProcessor
27
+ use_converter SaltConverter
28
+ end
21
29
  end
22
30
  end