asciidoctor-diagram 2.1.1 → 2.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 674abb9267b7d32b26a63f665dff96822efea03927e194109c6301cd14530b51
4
- data.tar.gz: fb94061afb3aefd801ea7c23bdd4e1306e45bffbdaeeeff34fb6f53f5a131324
3
+ metadata.gz: 9c999abc157686ce7101a23d06b8e3cdf83ec0244f1d9697343ec7e9a6afe946
4
+ data.tar.gz: 44349c53eefb7e2eb330348a29e2f1a4ee6b60ed1ec5548dc4b3c99ab6fcab5a
5
5
  SHA512:
6
- metadata.gz: 46b3d4f0ff19bf97ca232f4531fa94d7a56d102de08500254a916fded1e2232c905dc540cc4b3e76279a690f105b42782211dc9f93ea13eb3dce873d54708e1a
7
- data.tar.gz: 17891073b283b12280e2d118cd3b66a253fd8e74f30a41cae7431b47cbb663fd74cf6b80fe9d463410d991b86c0d1d55dd29bc76afd37db1653d3cccb8abe3fe
6
+ metadata.gz: afd079eab9fbfd29a76690012e699c9fa5e45ab14f35b9469defb3a46060e3011b814913af1d5c5365c63157ee8def0101a41ba6b6368d154ad26fe36440ac75
7
+ data.tar.gz: e994d6101f63d0fcfde7b04c4763aa43a9eac167cb19295777124cbc25b3042c132869d47597fd33c107b7da583442697bd80852faa9db641d91155cd8b86edd
data/CHANGELOG.adoc CHANGED
@@ -1,5 +1,15 @@
1
1
  = Asciidoctor-diagram Changelog
2
2
 
3
+ == 2.1.2
4
+
5
+ Enhancements::
6
+
7
+ * Issue #345: Switch to POST requests when URI length becomes too long
8
+
9
+ Bug Fixes::
10
+
11
+ * Issue #348: Rename Syntrax `style` attribute to `style-file` to avoid clashing with the built-in block style attribute.
12
+
3
13
  == 2.1.1
4
14
 
5
15
  Enhancements::
@@ -149,12 +149,20 @@ The attribute name at the document level should be prefixed with the diagram typ
149
149
 
150
150
  ==== Shared Attributes
151
151
 
152
+ The set of shared attributes applies to all diagram types.
153
+ The value for these attributes can be defined at the document level for a single diagram type using the diagram type as prefix or for all diagram types using `diagram` as prefix.
154
+
152
155
  [cols=">,<,<",options="header"]
153
156
  |===
154
- |Name |Default value |Description
155
- |svg-type |unspecified |One of `static`, `inline` or `interactive`.
157
+ |Name |Default value |Description
158
+ |svg-type |unspecified |One of `static`, `inline` or `interactive`.
156
159
  This determines the style of SVG embedding that's used in certain backends.
157
160
  The xref:asciidoc:macros:image-svg.adoc[asciidoc spec] describes this in more detail.
161
+ |server-url |unspecified |External service to render diagram.
162
+ Usage removes the need to depend on external tools to be installed locally.
163
+ |server-type |unspecified |One of `plantuml` or `kroki_io`
164
+ |max-get-size |1024 |The maximum size of the URI path for HTTP GET requests.
165
+ If the maximum size is exceeded, POST requests are used instead
158
166
  |===
159
167
 
160
168
  ==== AsciiToSVG
@@ -298,7 +306,7 @@ No specific attributes.
298
306
  |Name |Default value |Description
299
307
  |heading |unspecifed |Diagram title
300
308
  |scale |1 |A scale factor that is applied to the image.
301
- |style |unspecifed |Path to a style config file to pass to Syntrax.
309
+ |style-file |unspecifed |Path to a style config file to pass to Syntrax.
302
310
  |transparent |false |Makes the background of the image transparent instead of opaque white.
303
311
  |===
304
312
 
@@ -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
@@ -19,7 +19,7 @@ module Asciidoctor
19
19
  :heading => source.attr('heading'),
20
20
  :scale => source.attr('scale'),
21
21
  :transparent => source.attr('transparent'),
22
- :style => source.attr('style')
22
+ :style => source.attr('style-file')
23
23
  }
24
24
  end
25
25
 
@@ -1,5 +1,5 @@
1
1
  module Asciidoctor
2
2
  module Diagram
3
- VERSION = "2.1.1"
3
+ VERSION = "2.1.2"
4
4
  end
5
5
  end
data/spec/a2s_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ A2S_CODE = <<-eos
4
4
  .--. .---. .---. .---. .---. .---. .---.
5
5
  | | OS API '---' '---' '---' '---' '---' '---'
6
6
  v | | | | | | |
@@ -21,9 +21,9 @@ code = <<-eos
21
21
  eos
22
22
 
23
23
  describe Asciidoctor::Diagram::AsciiToSvgBlockMacroProcessor do
24
- include_examples "block_macro", :a2s, code, [:svg]
24
+ include_examples "block_macro", :a2s, A2S_CODE, [:svg]
25
25
  end
26
26
 
27
27
  describe Asciidoctor::Diagram::AsciiToSvgBlockProcessor do
28
- include_examples "block", :svgbob, code, [:svg]
28
+ include_examples "block", :svgbob, A2S_CODE, [:svg]
29
29
  end
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ BLOCKDIAG_CODE = <<-eos
4
4
  blockdiag {
5
5
  A -> B -> C -> D;
6
6
  A -> E -> F -> G;
@@ -8,9 +8,9 @@ blockdiag {
8
8
  eos
9
9
 
10
10
  describe Asciidoctor::Diagram::BlockDiagBlockMacroProcessor do
11
- include_examples "block_macro", :blockdiag, code, [:png, :svg, :pdf]
11
+ include_examples "block_macro", :blockdiag, BLOCKDIAG_CODE, [:png, :svg, :pdf]
12
12
  end
13
13
 
14
14
  describe Asciidoctor::Diagram::BlockDiagBlockProcessor do
15
- include_examples "block", :blockdiag, code, [:png, :svg, :pdf]
15
+ include_examples "block", :blockdiag, BLOCKDIAG_CODE, [:png, :svg, :pdf]
16
16
  end
data/spec/bpmn_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<EOF
3
+ BPNM_CODE = <<EOF
4
4
  <?xml version="1.0" encoding="UTF-8"?>
5
5
  <bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0zt4mn9" targetNamespace="http://bpmn.io/schema/bpmn" exporter="bpmn-js (https://demo.bpmn.io)" exporterVersion="5.1.2">
6
6
  <bpmn:process id="Process_081h9u7" isExecutable="false">
@@ -48,9 +48,9 @@ code = <<EOF
48
48
  EOF
49
49
 
50
50
  describe Asciidoctor::Diagram::BpmnBlockMacroProcessor do
51
- include_examples "block_macro", :bpmn, code, [:png, :svg, :pdf]
51
+ include_examples "block_macro", :bpmn, BPNM_CODE, [:png, :svg, :pdf]
52
52
  end
53
53
 
54
54
  describe Asciidoctor::Diagram::BpmnBlockProcessor do
55
- include_examples "block", :bpmn, code, [:png, :svg, :pdf]
55
+ include_examples "block", :bpmn, BPNM_CODE, [:png, :svg, :pdf]
56
56
  end
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ BYTEFIELD_CODE = <<-eos
4
4
  ;; This the source for the sample diagram illustrated in the project Read Me.
5
5
 
6
6
  ;; Some nice default background colors, used to distinguish header sections.
@@ -84,9 +84,9 @@ code = <<-eos
84
84
  eos
85
85
 
86
86
  describe Asciidoctor::Diagram::BytefieldBlockMacroProcessor do
87
- include_examples "block_macro", :bytefield, code, [:svg]
87
+ include_examples "block_macro", :bytefield, BYTEFIELD_CODE, [:svg]
88
88
  end
89
89
 
90
90
  describe Asciidoctor::Diagram::BytefieldBlockProcessor do
91
- include_examples "block", :bytefield, code, [:svg]
91
+ include_examples "block", :bytefield, BYTEFIELD_CODE, [:svg]
92
92
  end
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ DIAGRAMS_CODE = <<-eos
4
4
  from diagrams import Diagram
5
5
  from diagrams.aws.compute import EC2
6
6
  from diagrams.aws.database import RDS
@@ -15,9 +15,9 @@ with Diagram("Grouped Workers", show=False, direction="TB"):
15
15
  eos
16
16
 
17
17
  describe Asciidoctor::Diagram::DiagramsBlockMacroProcessor do
18
- include_examples "block_macro", :diagrams, code, [:png, :svg]
18
+ include_examples "block_macro", :diagrams, DIAGRAMS_CODE, [:png, :svg]
19
19
  end
20
20
 
21
21
  describe Asciidoctor::Diagram::DiagramsBlockProcessor do
22
- include_examples "block", :diagrams, code, [:png, :svg]
22
+ include_examples "block", :diagrams, DIAGRAMS_CODE, [:png, :svg]
23
23
  end
data/spec/ditaa_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ DITAA_CODE = <<-eos
4
4
  +--------+ +-------+ +-------+
5
5
  | | --+ ditaa +--> | |
6
6
  | Text | +-------+ |diagram|
@@ -13,11 +13,11 @@ code = <<-eos
13
13
  eos
14
14
 
15
15
  describe Asciidoctor::Diagram::DitaaBlockMacroProcessor do
16
- include_examples "block_macro", :ditaa, code, [:png, :svg]
16
+ include_examples "block_macro", :ditaa, DITAA_CODE, [:png, :svg]
17
17
  end
18
18
 
19
19
  describe Asciidoctor::Diagram::DitaaBlockProcessor do
20
- include_examples "block", :ditaa, code, [:png, :svg]
20
+ include_examples "block", :ditaa, DITAA_CODE, [:png, :svg]
21
21
 
22
22
  it "should support ditaa options as attributes" do
23
23
  doc = <<-eos
data/spec/dpic_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ DPIC_CODE = <<-eos
4
4
  arrow "$u$" above
5
5
  S: circle rad 10/72.27 # 10 pt
6
6
  line right 0.35
@@ -11,9 +11,9 @@ G: box "$G(s)$"
11
11
  eos
12
12
 
13
13
  describe Asciidoctor::Diagram::DpicBlockMacroProcessor, :broken_on_windows do
14
- include_examples "block_macro", :dpic, code, [:svg]
14
+ include_examples "block_macro", :dpic, DPIC_CODE, [:svg]
15
15
  end
16
16
 
17
17
  describe Asciidoctor::Diagram::DpicBlockProcessor, :broken_on_windows do
18
- include_examples "block", :dpic, code, [:svg]
18
+ include_examples "block", :dpic, DPIC_CODE, [:svg]
19
19
  end
data/spec/erd_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ ERD_CODE = <<-eos
4
4
  title {label: "nfldb Entity-Relationship diagram (condensed)", size: "20"}
5
5
 
6
6
  # Entities
@@ -84,9 +84,9 @@ player 1--* play_player
84
84
  eos
85
85
 
86
86
  describe Asciidoctor::Diagram::ErdBlockMacroProcessor, :broken_on_windows do
87
- include_examples "block_macro", :erd, code, [:png, :svg]
87
+ include_examples "block_macro", :erd, ERD_CODE, [:png, :svg]
88
88
  end
89
89
 
90
90
  describe Asciidoctor::Diagram::ErdBlockProcessor, :broken_on_windows do
91
- include_examples "block", :erd, code, [:png, :svg]
91
+ include_examples "block", :erd, ERD_CODE, [:png, :svg]
92
92
  end
data/spec/gnuplot_spec.rb CHANGED
@@ -1,15 +1,15 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ GNUPLOT_CODE = <<-eos
4
4
  plot [0:5][0:20] x**2 title 'O(n^2)'
5
5
  eos
6
6
 
7
7
  describe Asciidoctor::Diagram::GnuplotBlockMacroProcessor do
8
- include_examples "block_macro", :gnuplot, code, [:png, :svg, :gif, :txt]
8
+ include_examples "block_macro", :gnuplot, GNUPLOT_CODE, [:png, :svg, :gif, :txt]
9
9
  end
10
10
 
11
11
  describe Asciidoctor::Diagram::GnuplotBlockProcessor do
12
- include_examples "block", :gnuplot, code, [:png, :svg, :gif, :txt]
12
+ include_examples "block", :gnuplot, GNUPLOT_CODE, [:png, :svg, :gif, :txt]
13
13
 
14
14
  it "should generate images with user defined size" do
15
15
  doc = <<-eos
@@ -20,7 +20,7 @@ Doc Writer <doc@example.com>
20
20
 
21
21
  [gnuplot, format="png",width="800", height="600"]
22
22
  ----
23
- #{code}
23
+ #{GNUPLOT_CODE}
24
24
  ----
25
25
  eos
26
26
 
@@ -50,7 +50,7 @@ Doc Writer <doc@example.com>
50
50
 
51
51
  [gnuplot, format="png", crop=false, transparent=false]
52
52
  ----
53
- #{code}
53
+ #{GNUPLOT_CODE}
54
54
  ----
55
55
  eos
56
56
 
@@ -80,7 +80,7 @@ Doc Writer <doc@example.com>
80
80
 
81
81
  [gnuplot, format="png", crop=true, transparent=true]
82
82
  ----
83
- #{code}
83
+ #{GNUPLOT_CODE}
84
84
  ----
85
85
  eos
86
86
 
@@ -110,7 +110,7 @@ Doc Writer <doc@example.com>
110
110
 
111
111
  [gnuplot, format="png", font="Arial"]
112
112
  ----
113
- #{code}
113
+ #{GNUPLOT_CODE}
114
114
  ----
115
115
  eos
116
116
 
@@ -140,7 +140,7 @@ Doc Writer <doc@example.com>
140
140
 
141
141
  [gnuplot, format="png", font="Arial,11"]
142
142
  ----
143
- #{code}
143
+ #{GNUPLOT_CODE}
144
144
  ----
145
145
  eos
146
146
 
@@ -170,7 +170,7 @@ Doc Writer <doc@example.com>
170
170
 
171
171
  [gnuplot, format="png", font="Arial", scale="0.5"]
172
172
  ----
173
- #{code}
173
+ #{GNUPLOT_CODE}
174
174
  ----
175
175
  eos
176
176
 
@@ -200,7 +200,7 @@ Doc Writer <doc@example.com>
200
200
 
201
201
  [gnuplot, format="png", background="red"]
202
202
  ----
203
- #{code}
203
+ #{GNUPLOT_CODE}
204
204
  ----
205
205
  eos
206
206
 
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ DOT_CODE = <<-eos
4
4
  digraph foo {
5
5
  node [style=rounded]
6
6
  node1 [shape=box]
@@ -12,9 +12,9 @@ digraph foo {
12
12
  eos
13
13
 
14
14
  describe Asciidoctor::Diagram::GraphvizBlockMacroProcessor do
15
- include_examples "block_macro", :graphviz, code, [:png, :svg]
15
+ include_examples "block_macro", :graphviz, DOT_CODE, [:png, :svg]
16
16
  end
17
17
 
18
18
  describe Asciidoctor::Diagram::GraphvizBlockProcessor do
19
- include_examples "block", :graphviz, code, [:png, :svg]
19
+ include_examples "block", :graphviz, DOT_CODE, [:png, :svg]
20
20
  end
@@ -1,13 +1,13 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ 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
7
  describe Asciidoctor::Diagram::LilypondBlockMacroProcessor do
8
- include_examples "block_macro", :lilypond, code, [:png]
8
+ include_examples "block_macro", :lilypond, LILYPOND_CODE, [:png]
9
9
  end
10
10
 
11
11
  describe Asciidoctor::Diagram::LilypondBlockProcessor do
12
- include_examples "block", :lilypond, code, [:png]
12
+ include_examples "block", :lilypond, LILYPOND_CODE, [:png]
13
13
  end
data/spec/mermaid_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ MERMAID_CODE = <<-eos
4
4
  graph LR
5
5
  A[Square Rect] -- Link text --> B((Circle))
6
6
  A --> C(Round Rect)
@@ -9,7 +9,7 @@ graph LR
9
9
  eos
10
10
 
11
11
  describe Asciidoctor::Diagram::MermaidBlockMacroProcessor do
12
- include_examples "block_macro", :mermaid, code, [:png, :svg]
12
+ include_examples "block_macro", :mermaid, MERMAID_CODE, [:png, :svg]
13
13
 
14
14
  it "should respect the sequenceConfig attribute" do
15
15
  seq_diag = <<-eos
@@ -135,7 +135,7 @@ mermaid::mermaid.txt[target="without_config"]
135
135
  end
136
136
 
137
137
  describe Asciidoctor::Diagram::MermaidBlockProcessor do
138
- include_examples "block", :mermaid, code, [:png, :svg]
138
+ include_examples "block", :mermaid, MERMAID_CODE, [:png, :svg]
139
139
 
140
140
  it "should work with kroki.io" do
141
141
  doc = <<-eos
data/spec/msc_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ MSC_CODE = <<-eos
4
4
  # MSC for some fictional process
5
5
  msc {
6
6
  hscale = "2";
@@ -25,9 +25,9 @@ msc {
25
25
  eos
26
26
 
27
27
  describe Asciidoctor::Diagram::MscBlockMacroProcessor do
28
- include_examples "block_macro", :msc, code, [:png, :svg]
28
+ include_examples "block_macro", :msc, MSC_CODE, [:png, :svg]
29
29
  end
30
30
 
31
31
  describe Asciidoctor::Diagram::MscBlockProcessor do
32
- include_examples "block", :msc, code, [:png, :svg]
32
+ include_examples "block", :msc, MSC_CODE, [:png, :svg]
33
33
  end
data/spec/nomnoml_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ NOMNOML_CODE = <<-eos
4
4
  [Pirate
5
5
  [beard]--[parrot]
6
6
  [beard]-:>[foul mouth]
@@ -24,9 +24,9 @@ code = <<-eos
24
24
  eos
25
25
 
26
26
  describe Asciidoctor::Diagram::NomnomlBlockMacroProcessor do
27
- include_examples "block_macro", :nomnoml, code, [:svg]
27
+ include_examples "block_macro", :nomnoml, NOMNOML_CODE, [:svg]
28
28
  end
29
29
 
30
30
  describe Asciidoctor::Diagram::NomnomlBlockProcessor do
31
- include_examples "block", :nomnoml, code, [:svg]
31
+ include_examples "block", :nomnoml, NOMNOML_CODE, [:svg]
32
32
  end
data/spec/pikchr_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ PIKCHR_CODE = <<-eos
4
4
  # Change from the original:
5
5
  # * Expand the macro by hand, as Pikchr does not support
6
6
  # macros
@@ -43,11 +43,11 @@ box invis wid 2*boxwid "ndtable:" with .e at Start.w
43
43
  eos
44
44
 
45
45
  describe Asciidoctor::Diagram::PikchrBlockMacroProcessor, :broken_on_windows do
46
- include_examples "block_macro", :pikchr, code, [:svg]
46
+ include_examples "block_macro", :pikchr, PIKCHR_CODE, [:svg]
47
47
  end
48
48
 
49
49
  describe Asciidoctor::Diagram::PikchrBlockProcessor, :broken_on_windows do
50
- include_examples "block", :pikchr, code, [:svg]
50
+ include_examples "block", :pikchr, PIKCHR_CODE, [:svg]
51
51
 
52
52
  it "should report syntax errors" do
53
53
  doc = <<-eos
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ PLANTUML_CODE = <<-eos
4
4
  User -> (Start)
5
5
  User --> (Use the application) : Label
6
6
 
@@ -8,7 +8,7 @@ User --> (Use the application) : Label
8
8
  eos
9
9
 
10
10
  describe Asciidoctor::Diagram::PlantUmlBlockMacroProcessor do
11
- include_examples "block_macro", :plantuml, code, [:png, :svg, :txt]
11
+ include_examples "block_macro", :plantuml, PLANTUML_CODE, [:png, :svg, :txt]
12
12
 
13
13
  it 'should support substitutions in diagram code' do
14
14
  code = <<-eos
@@ -156,7 +156,39 @@ plantuml::dir/plantuml.txt[format="svg", subs=attributes+]
156
156
  end
157
157
 
158
158
  describe Asciidoctor::Diagram::PlantUmlBlockProcessor do
159
- include_examples "block", :plantuml, code, [:png, :svg, :txt]
159
+ include_examples "block", :plantuml, PLANTUML_CODE, [:png, :svg, :txt]
160
+
161
+ it "should work with plantuml.com" do
162
+ doc = <<-eos
163
+ = Hello, kroki!
164
+ :diagram-server-url: http://plantuml.com/plantuml
165
+ :diagram-server-type: plantuml
166
+ Doc Writer <doc@example.com>
167
+
168
+ == First Section
169
+
170
+ [plantuml, format=svg]
171
+ ----
172
+ #{PLANTUML_CODE}
173
+ ----
174
+ eos
175
+
176
+ d = load_asciidoc doc
177
+ expect(d).to_not be_nil
178
+
179
+ b = d.find { |bl| bl.context == :image }
180
+ expect(b).to_not be_nil
181
+
182
+ expect(b.content_model).to eq :empty
183
+
184
+ target = b.attributes['target']
185
+ expect(target).to_not be_nil
186
+ expect(target).to match(/\.svg$/)
187
+ expect(File.exist?(target)).to be true
188
+
189
+ expect(b.attributes['width']).to_not be_nil
190
+ expect(b.attributes['height']).to_not be_nil
191
+ end
160
192
 
161
193
  it 'should use plantuml configuration when specified as a document attribute' do
162
194
  doc = <<-eos
data/spec/shaape_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ SHAAPE_CODE = <<-eos
4
4
  +-->
5
5
  / /\
6
6
  >---+---->+ +
@@ -8,9 +8,9 @@ code = <<-eos
8
8
  eos
9
9
 
10
10
  describe Asciidoctor::Diagram::ShaapeBlockMacroProcessor, :broken_on_osx, :broken_on_github, :broken_on_windows do
11
- include_examples "block_macro", :shaape, code, [:png, :svg]
11
+ include_examples "block_macro", :shaape, SHAAPE_CODE, [:png, :svg]
12
12
  end
13
13
 
14
14
  describe Asciidoctor::Diagram::ShaapeBlockProcessor, :broken_on_osx, :broken_on_github, :broken_on_windows do
15
- include_examples "block", :shaape, code, [:png, :svg]
15
+ include_examples "block", :shaape, SHAAPE_CODE, [:png, :svg]
16
16
  end
data/spec/smcat_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ SMCAT_CODE = <<-eos
4
4
  initial,
5
5
  doing: entry/ write unit test
6
6
  do/ write code
@@ -18,9 +18,9 @@ testing => final : test ok;
18
18
  eos
19
19
 
20
20
  describe Asciidoctor::Diagram::SmcatBlockMacroProcessor do
21
- include_examples "block_macro", :smcat, code, [:svg]
21
+ include_examples "block_macro", :smcat, SMCAT_CODE, [:svg]
22
22
  end
23
23
 
24
24
  describe Asciidoctor::Diagram::SmcatBlockProcessor do
25
- include_examples "block", :smcat, code, [:svg]
25
+ include_examples "block", :smcat, SMCAT_CODE, [:svg]
26
26
  end
data/spec/svgbob_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ SVGBOB_CODE = <<-eos
4
4
  .--. .---. .---. .---. .---. .---. .---.
5
5
  | | OS API '---' '---' '---' '---' '---' '---'
6
6
  v | | | | | | |
@@ -21,9 +21,9 @@ code = <<-eos
21
21
  eos
22
22
 
23
23
  describe Asciidoctor::Diagram::SvgBobBlockMacroProcessor do
24
- include_examples "block_macro", :svgbob, code, [:svg]
24
+ include_examples "block_macro", :svgbob, SVGBOB_CODE, [:svg]
25
25
  end
26
26
 
27
27
  describe Asciidoctor::Diagram::SvgBobBlockProcessor do
28
- include_examples "block", :svgbob, code, [:svg]
28
+ include_examples "block", :svgbob, SVGBOB_CODE, [:svg]
29
29
  end
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ SYMBOLATOR_CODE = <<-eos
4
4
  library ieee;
5
5
  use ieee.std_logic_1164.all;
6
6
 
@@ -15,9 +15,9 @@ end package;
15
15
  eos
16
16
 
17
17
  describe Asciidoctor::Diagram::SymbolatorBlockMacroProcessor, :broken_on_windows do
18
- include_examples "block_macro", :symbolator, code, [:png, :svg, :pdf]
18
+ include_examples "block_macro", :symbolator, SYMBOLATOR_CODE, [:png, :svg, :pdf]
19
19
  end
20
20
 
21
21
  describe Asciidoctor::Diagram::SymbolatorBlockProcessor, :broken_on_windows do
22
- include_examples "block", :symbolator, code, [:png, :svg, :pdf]
22
+ include_examples "block", :symbolator, SYMBOLATOR_CODE, [:png, :svg, :pdf]
23
23
  end
data/spec/syntrax_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ SYNTRAX_CODE = <<-eos
4
4
  indentstack(10,
5
5
  line(opt('-'), choice('0', line('1-9', loop(None, '0-9'))),
6
6
  opt('.', loop('0-9', None))),
@@ -10,9 +10,9 @@ indentstack(10,
10
10
  eos
11
11
 
12
12
  describe Asciidoctor::Diagram::SyntraxBlockMacroProcessor, :broken_on_windows do
13
- include_examples "block_macro", :syntrax, code, [:png, :svg]
13
+ include_examples "block_macro", :syntrax, SYNTRAX_CODE, [:png, :svg]
14
14
  end
15
15
 
16
16
  describe Asciidoctor::Diagram::SyntraxBlockProcessor, :broken_on_windows do
17
- include_examples "block", :syntrax, code, [:png, :svg]
17
+ include_examples "block", :syntrax, SYNTRAX_CODE, [:png, :svg]
18
18
  end
data/spec/tikz_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-'eos'
3
+ TIKZ_CODE = <<-'eos'
4
4
  \begin{tikzpicture}[font=\LARGE]
5
5
 
6
6
  % Figure parameters (tta and k needs to have the same sign)
@@ -99,14 +99,14 @@ code = <<-'eos'
99
99
  eos
100
100
 
101
101
  describe Asciidoctor::Diagram::TikZBlockMacroProcessor, :broken_on_windows do
102
- include_examples "block_macro", :tikz, code, [:pdf]
102
+ include_examples "block_macro", :tikz, TIKZ_CODE, [:pdf]
103
103
  end
104
104
 
105
105
  describe Asciidoctor::Diagram::TikZBlockProcessor, :broken_on_windows do
106
- include_examples "block", :tikz, code, [:pdf]
106
+ include_examples "block", :tikz, TIKZ_CODE, [:pdf]
107
107
 
108
108
  it "should support the preamble attribute" do
109
- File.write("tikz.txt", code)
109
+ File.write("tikz.txt", TIKZ_CODE)
110
110
 
111
111
  doc = <<'eos'
112
112
  = Hello, tikz!
data/spec/umlet_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ CODE = <<-eos
4
4
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
5
5
  <diagram program="umlet" version="14.2">
6
6
  <zoom_level>10</zoom_level>
@@ -21,9 +21,9 @@ eos
21
21
 
22
22
 
23
23
  describe Asciidoctor::Diagram::UmletBlockMacroProcessor do
24
- include_examples "block_macro", :umlet, code, [:svg]
24
+ include_examples "block_macro", :umlet, CODE, [:svg]
25
25
  end
26
26
 
27
27
  describe Asciidoctor::Diagram::UmletBlockProcessor do
28
- include_examples "block", :umlet, code, [:svg]
28
+ include_examples "block", :umlet, CODE, [:svg]
29
29
  end
data/spec/vega_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- vega_code = <<-eos
3
+ VEGA_CODE = <<-eos
4
4
  {
5
5
  "$schema": "https://vega.github.io/schema/vega/v3.json",
6
6
  "width": 400,
@@ -98,7 +98,7 @@ vega_code = <<-eos
98
98
  }
99
99
  eos
100
100
 
101
- vegalite_code = <<-eos
101
+ VEGALITE_CODE = <<-eos
102
102
  {
103
103
  "$schema": "https://vega.github.io/schema/vega-lite/v2.json",
104
104
  "description": "A simple bar chart with embedded data.",
@@ -118,11 +118,11 @@ vegalite_code = <<-eos
118
118
  eos
119
119
 
120
120
  describe Asciidoctor::Diagram::VegaBlockMacroProcessor, :broken_on_windows do
121
- include_examples "block_macro", :vega, vega_code, [:svg]
122
- # include_examples "block_macro", :vegalite, vegalite_code, [:svg]
121
+ include_examples "block_macro", :vega, VEGA_CODE, [:svg]
122
+ # include_examples "block_macro", :vegalite, VEGALITE_CODE, [:svg]
123
123
  end
124
124
 
125
125
  describe Asciidoctor::Diagram::VegaBlockProcessor, :broken_on_windows do
126
- include_examples "block", :vega, vega_code, [:svg]
127
- # include_examples "block", :vegalite, vegalite_code, [:svg]
126
+ include_examples "block", :vega, VEGA_CODE, [:svg]
127
+ # include_examples "block", :vegalite, VEGALITE_CODE, [:svg]
128
128
  end
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- code = <<-eos
3
+ WAVEDROM_CODE = <<-eos
4
4
  { signal : [
5
5
  { name: "clk", wave: "p......" },
6
6
  { name: "bus", wave: "x.34.5x", data: "head body tail" },
@@ -9,9 +9,9 @@ code = <<-eos
9
9
  eos
10
10
 
11
11
  describe Asciidoctor::Diagram::WavedromBlockMacroProcessor, :broken_on_windows do
12
- include_examples "block_macro", :wavedrom, code, [:png, :svg]
12
+ include_examples "block_macro", :wavedrom, WAVEDROM_CODE, [:png, :svg]
13
13
  end
14
14
 
15
15
  describe Asciidoctor::Diagram::WavedromBlockProcessor, :broken_on_windows do
16
- include_examples "block", :wavedrom, code, [:png, :svg]
16
+ include_examples "block", :wavedrom, WAVEDROM_CODE, [:png, :svg]
17
17
  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.1.1
4
+ version: 2.1.2
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: 2021-03-23 00:00:00.000000000 Z
11
+ date: 2021-04-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -287,7 +287,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
287
287
  - !ruby/object:Gem::Version
288
288
  version: '0'
289
289
  requirements: []
290
- rubygems_version: 3.0.3
290
+ rubygems_version: 3.1.2
291
291
  signing_key:
292
292
  specification_version: 4
293
293
  summary: A family of Asciidoctor extensions that generate images from a broad range