asciidoctor-diagram 1.5.3 → 1.5.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 +11 -0
- data/README.adoc +33 -0
- data/lib/asciidoctor-diagram.rb +1 -0
- data/lib/asciidoctor-diagram/blockdiag/extension.rb +6 -1
- data/lib/asciidoctor-diagram/graphviz/extension.rb +1 -1
- data/lib/asciidoctor-diagram/umlet.rb +8 -0
- data/lib/asciidoctor-diagram/umlet/extension.rb +36 -0
- data/lib/asciidoctor-diagram/version.rb +1 -1
- data/spec/test_helper.rb +16 -0
- data/spec/umlet_spec.rb +85 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d38f932148312e67e4249a2c171c71da2c796a49
|
4
|
+
data.tar.gz: c50317e4443b383f73be0b3e068364185cba7a97
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d8544bb90e946c5b20b9e675268e519cf52f9dd89a3b054b4214a9c1b3dff59d6ce9683569616c3ed9d81441dc089179cb559e1569b1c11e4d586f99d457a41
|
7
|
+
data.tar.gz: d26cbf53122d923276a543f49efe434ba8690fbb85ba0e44ced6c52bd4c24779fb110bcef1c3f03c29f5b731dfc15c4a30c06d78516742987815c70a6d6886ab
|
data/CHANGELOG.adoc
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
= Asciidoctor-diagram Changelog
|
2
2
|
|
3
|
+
== 1.5.4
|
4
|
+
|
5
|
+
Enhancements::
|
6
|
+
|
7
|
+
* Add support for UMLet.
|
8
|
+
* Issue #141: Allow blockdiag fontpath to be specified via attributes
|
9
|
+
|
10
|
+
Bug Fixes::
|
11
|
+
|
12
|
+
* Issue #140: Restore PNG as default format for Graphviz diagrams
|
13
|
+
|
3
14
|
== 1.5.3
|
4
15
|
|
5
16
|
Enhancements::
|
data/README.adoc
CHANGED
@@ -32,6 +32,7 @@ ifndef::env-site[:status:]
|
|
32
32
|
:uri-rackdiag: http://blockdiag.com/en/nwdiag/index.html
|
33
33
|
:uri-seqdiag: http://blockdiag.com/en/seqdiag/index.html
|
34
34
|
:uri-shaape: https://github.com/christiangoltz/shaape
|
35
|
+
:uri-umlet: http://www.umlet.com/
|
35
36
|
:uri-wavedrom: http://wavedrom.com
|
36
37
|
:uri-wavedromeditor: https://github.com/wavedrom/wavedrom.github.io/releases
|
37
38
|
:uri-wavedromcli: https://github.com/wavedrom/cli
|
@@ -119,6 +120,7 @@ The following diagram types and output formats are available:
|
|
119
120
|
|{uri-rackdiag}[rackdiag] | |{check}|{check}|{check}|
|
120
121
|
|{uri-seqdiag}[seqdiag] | |{check}|{check}|{check}|
|
121
122
|
|{uri-shaape}[shaape] | | |{check}|{check}|
|
123
|
+
|{uri-umlet}[umlet] |{check}|{check}|{check}|{check}|
|
122
124
|
|{uri-wavedrom}[wavedrom] | | |{check}|{check}|
|
123
125
|
|===
|
124
126
|
|
@@ -287,6 +289,7 @@ The following table lists the tools that are required for each diagram type, the
|
|
287
289
|
|rackdiag |{uri-nwdiag}[NwDiag] |`rackdiag`
|
288
290
|
|seqdiag |{uri-seqdiag}[SeqDiag] |`seqdiag`
|
289
291
|
|shaape |{uri-shaape}[Shaape] |`shaape`
|
292
|
+
|umlet |{uri-umlet}[Umlet] |`umlet`
|
290
293
|
.2+|wavedrom |{uri-wavedromeditor}[WaveDrom Editor] |`wavedrom`
|
291
294
|
|{uri-wavedromcli}[WaveDrom CLI] and {uri-phantomjs}[PhantomJS] |`wavedrom` and `phantomjs`
|
292
295
|
|===
|
@@ -312,6 +315,36 @@ Occurrences of `\\` surrounded by whitespace are interpreted as line breaks.
|
|
312
315
|
=== Diagram Attributes
|
313
316
|
|
314
317
|
Certain diagram types allow image generation to be customized using attributes.
|
318
|
+
Each attribute can be specified either at the block level or at the document level.
|
319
|
+
This is illustrated for the blockdiag `fontpath` attribute in the example below.
|
320
|
+
|
321
|
+
----
|
322
|
+
= Asciidoctor Diagram
|
323
|
+
:blockdiag-fontpath: /path/to/font.ttf <1>
|
324
|
+
|
325
|
+
[blockdiag] <2>
|
326
|
+
....
|
327
|
+
....
|
328
|
+
|
329
|
+
[blockdiag, fontpath="/path/to/otherfont.ttf"] <3>
|
330
|
+
....
|
331
|
+
....
|
332
|
+
----
|
333
|
+
<1> Block level attributes can be specified at the document level by prefixing them with `<blocktype>-`
|
334
|
+
<2> The first diagram does not specify an explicit value for `fontpath` so the global value will be used
|
335
|
+
<3> The second diagram specifies a `fontpath` value which overrrides the global value
|
336
|
+
|
337
|
+
Each attribute can either be specified at the block level or at the document level.
|
338
|
+
The attribute name at the block level should be prefixed with the name of the diagram type and a dash.
|
339
|
+
|
340
|
+
|
341
|
+
==== Blockdiag
|
342
|
+
|
343
|
+
[cols=">,<,<",options="header"]
|
344
|
+
|===
|
345
|
+
|Name |Default value |Description
|
346
|
+
|fontpath |unspecified |The path to the font that should be used by blockdiag
|
347
|
+
|===
|
315
348
|
|
316
349
|
==== Ditaa
|
317
350
|
|
data/lib/asciidoctor-diagram.rb
CHANGED
@@ -7,4 +7,5 @@ require_relative 'asciidoctor-diagram/mermaid'
|
|
7
7
|
require_relative 'asciidoctor-diagram/plantuml'
|
8
8
|
require_relative 'asciidoctor-diagram/salt'
|
9
9
|
require_relative 'asciidoctor-diagram/shaape'
|
10
|
+
require_relative 'asciidoctor-diagram/umlet'
|
10
11
|
require_relative 'asciidoctor-diagram/wavedrom'
|
@@ -106,8 +106,13 @@ module Asciidoctor
|
|
106
106
|
# a '3' suffix.
|
107
107
|
alt_cmd_name = "#{tool.downcase}3"
|
108
108
|
|
109
|
+
font_path = source.attr('fontpath', nil, tool.downcase)
|
110
|
+
|
109
111
|
generate_stdin(which(parent, cmd_name, :alt_cmds => [alt_cmd_name]), format.to_s, source.to_s) do |tool_path, output_path|
|
110
|
-
[tool_path, '-a', '-o', Platform.native_path(output_path), "-T#{format.to_s}"
|
112
|
+
args = [tool_path, '-a', '-o', Platform.native_path(output_path), "-T#{format.to_s}"]
|
113
|
+
args << "-f#{Platform.native_path(font_path)}" if font_path
|
114
|
+
args << '-'
|
115
|
+
args
|
111
116
|
end
|
112
117
|
end
|
113
118
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require_relative '../extensions'
|
2
|
+
require_relative '../util/cli_generator'
|
3
|
+
require_relative '../util/platform'
|
4
|
+
require_relative '../util/which'
|
5
|
+
|
6
|
+
module Asciidoctor
|
7
|
+
module Diagram
|
8
|
+
# @private
|
9
|
+
module Umlet
|
10
|
+
include CliGenerator
|
11
|
+
include Which
|
12
|
+
|
13
|
+
def self.included(mod)
|
14
|
+
[:svg, :png, :pdf, :gif].each do |f|
|
15
|
+
mod.register_format(f, :image) do |parent, source|
|
16
|
+
umlet(parent, source, f)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def umlet(parent, source, format)
|
22
|
+
generate_file(which(parent, 'umlet'), 'uxf', format.to_s, source.to_s) do |tool_path, input_path, output_path|
|
23
|
+
[tool_path, '-action=convert', "-format=#{format.to_s}", "-filename=#{Platform.native_path(input_path)}", "-output=#{Platform.native_path(output_path)}"]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class UmletBlockProcessor < Extensions::DiagramBlockProcessor
|
29
|
+
include Umlet
|
30
|
+
end
|
31
|
+
|
32
|
+
class UmletBlockMacroProcessor < Extensions::DiagramBlockMacroProcessor
|
33
|
+
include Umlet
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/spec/test_helper.rb
CHANGED
@@ -14,6 +14,7 @@ require_relative '../lib/asciidoctor-diagram/meme/extension'
|
|
14
14
|
require_relative '../lib/asciidoctor-diagram/mermaid/extension'
|
15
15
|
require_relative '../lib/asciidoctor-diagram/plantuml/extension'
|
16
16
|
require_relative '../lib/asciidoctor-diagram/shaape/extension'
|
17
|
+
require_relative '../lib/asciidoctor-diagram/umlet/extension'
|
17
18
|
require_relative '../lib/asciidoctor-diagram/wavedrom/extension'
|
18
19
|
|
19
20
|
require_relative '../lib/asciidoctor-diagram/util/platform'
|
@@ -42,9 +43,24 @@ module Asciidoctor
|
|
42
43
|
options = options.dup
|
43
44
|
options[:trace] = true
|
44
45
|
options[:attributes] ||= {}
|
46
|
+
|
45
47
|
options[:attributes]['phantomjs_19'] = ENV['PHANTOMJS_19']
|
48
|
+
|
46
49
|
options[:attributes]['phantomjs_2'] = ENV['PHANTOMJS_2']
|
50
|
+
|
51
|
+
fontpath = ENV['BLOCKDIAG_FONTPATH']
|
52
|
+
if fontpath
|
53
|
+
options[:attributes]['actdiag-fontpath'] = fontpath
|
54
|
+
options[:attributes]['blockdiag-fontpath'] = fontpath
|
55
|
+
options[:attributes]['seqdiag-fontpath'] = fontpath
|
56
|
+
options[:attributes]['nwdiag-fontpath'] = fontpath
|
57
|
+
options[:attributes]['rackdiag-fontpath'] = fontpath
|
58
|
+
options[:attributes]['packetdiag-fontpath'] = fontpath
|
59
|
+
options[:attributes]['seqdiag-fontpath'] = fontpath
|
60
|
+
end
|
61
|
+
|
47
62
|
options[:attributes]['diagram-on-error'] = 'abort'
|
63
|
+
|
48
64
|
::Asciidoctor.load(StringIO.new(source), options.merge({:trace => true}))
|
49
65
|
end
|
50
66
|
end
|
data/spec/umlet_spec.rb
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
require_relative 'test_helper'
|
2
|
+
|
3
|
+
code = <<-eos
|
4
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
5
|
+
<diagram program="umlet" version="14.2">
|
6
|
+
<zoom_level>10</zoom_level>
|
7
|
+
<element>
|
8
|
+
<id>UMLActor</id>
|
9
|
+
<coordinates>
|
10
|
+
<x>20</x>
|
11
|
+
<y>20</y>
|
12
|
+
<w>60</w>
|
13
|
+
<h>120</h>
|
14
|
+
</coordinates>
|
15
|
+
<panel_attributes>Hello
|
16
|
+
AsciiDoc</panel_attributes>
|
17
|
+
<additional_attributes/>
|
18
|
+
</element>
|
19
|
+
</diagram>
|
20
|
+
eos
|
21
|
+
|
22
|
+
|
23
|
+
describe Asciidoctor::Diagram::UmletBlockMacroProcessor do
|
24
|
+
it "should generate SVG images when format omitted" do
|
25
|
+
File.write('umlet.uxf', code)
|
26
|
+
|
27
|
+
doc = <<-eos
|
28
|
+
= Hello, Umlet!
|
29
|
+
Doc Writer <doc@example.com>
|
30
|
+
|
31
|
+
== First Section
|
32
|
+
|
33
|
+
umlet::umlet.uxf[]
|
34
|
+
eos
|
35
|
+
|
36
|
+
d = load_asciidoc doc
|
37
|
+
expect(d).to_not be_nil
|
38
|
+
|
39
|
+
b = d.find { |bl| bl.context == :image }
|
40
|
+
expect(b).to_not be_nil
|
41
|
+
|
42
|
+
expect(b.content_model).to eq :empty
|
43
|
+
|
44
|
+
target = b.attributes['target']
|
45
|
+
expect(target).to_not be_nil
|
46
|
+
expect(target).to match(/\.svg$/)
|
47
|
+
expect(File.exist?(target)).to be true
|
48
|
+
|
49
|
+
expect(b.attributes['width']).to_not be_nil
|
50
|
+
expect(b.attributes['height']).to_not be_nil
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
describe Asciidoctor::Diagram::UmletBlockProcessor do
|
56
|
+
it "should generate SVG images when format is omitted" do
|
57
|
+
doc = <<-eos
|
58
|
+
= Hello, Umlet!
|
59
|
+
Doc Writer <doc@example.com>
|
60
|
+
|
61
|
+
== First Section
|
62
|
+
|
63
|
+
[umlet]
|
64
|
+
----
|
65
|
+
#{code}
|
66
|
+
----
|
67
|
+
eos
|
68
|
+
|
69
|
+
d = load_asciidoc doc
|
70
|
+
expect(d).to_not be_nil
|
71
|
+
|
72
|
+
b = d.find { |bl| bl.context == :image }
|
73
|
+
expect(b).to_not be_nil
|
74
|
+
|
75
|
+
expect(b.content_model).to eq :empty
|
76
|
+
|
77
|
+
target = b.attributes['target']
|
78
|
+
expect(target).to_not be_nil
|
79
|
+
expect(target).to match(/\.svg$/)
|
80
|
+
expect(File.exist?(target)).to be true
|
81
|
+
|
82
|
+
expect(b.attributes['width']).to_not be_nil
|
83
|
+
expect(b.attributes['height']).to_not be_nil
|
84
|
+
end
|
85
|
+
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: 1.5.
|
4
|
+
version: 1.5.4
|
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: 2017-01-
|
11
|
+
date: 2017-01-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -104,6 +104,8 @@ files:
|
|
104
104
|
- lib/asciidoctor-diagram/salt.rb
|
105
105
|
- lib/asciidoctor-diagram/shaape.rb
|
106
106
|
- lib/asciidoctor-diagram/shaape/extension.rb
|
107
|
+
- lib/asciidoctor-diagram/umlet.rb
|
108
|
+
- lib/asciidoctor-diagram/umlet/extension.rb
|
107
109
|
- lib/asciidoctor-diagram/util/binaryio.rb
|
108
110
|
- lib/asciidoctor-diagram/util/cli.rb
|
109
111
|
- lib/asciidoctor-diagram/util/cli_generator.rb
|
@@ -131,6 +133,7 @@ files:
|
|
131
133
|
- spec/plantuml_spec.rb
|
132
134
|
- spec/shaape_spec.rb
|
133
135
|
- spec/test_helper.rb
|
136
|
+
- spec/umlet_spec.rb
|
134
137
|
- spec/wavedrom_spec.rb
|
135
138
|
homepage: https://github.com/asciidoctor/asciidoctor-diagram
|
136
139
|
licenses:
|
@@ -168,4 +171,5 @@ test_files:
|
|
168
171
|
- spec/plantuml_spec.rb
|
169
172
|
- spec/shaape_spec.rb
|
170
173
|
- spec/test_helper.rb
|
174
|
+
- spec/umlet_spec.rb
|
171
175
|
- spec/wavedrom_spec.rb
|