asciidoctor-diagram 2.2.3 → 3.0.0
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 +159 -0
- data/README.adoc +17 -13
- data/lib/asciidoctor-diagram/a2s/converter.rb +7 -2
- data/lib/asciidoctor-diagram/barcode/converter.rb +83 -78
- data/lib/asciidoctor-diagram/blockdiag/converter.rb +12 -2
- data/lib/asciidoctor-diagram/bpmn/converter.rb +4 -1
- data/lib/asciidoctor-diagram/bytefield/converter.rb +4 -1
- data/lib/asciidoctor-diagram/d2/converter.rb +57 -0
- data/lib/asciidoctor-diagram/d2/extension.rb +18 -0
- data/lib/asciidoctor-diagram/d2.rb +8 -0
- data/lib/asciidoctor-diagram/dbml/converter.rb +27 -0
- data/lib/asciidoctor-diagram/dbml/extension.rb +18 -0
- data/lib/asciidoctor-diagram/dbml.rb +8 -0
- data/lib/asciidoctor-diagram/diagram_processor.rb +49 -9
- data/lib/asciidoctor-diagram/diagram_source.rb +35 -33
- data/lib/asciidoctor-diagram/diagrams/converter.rb +4 -1
- data/lib/asciidoctor-diagram/ditaa/converter.rb +15 -7
- data/lib/asciidoctor-diagram/ditaa/ditaa-2.2.0.jar +0 -0
- data/lib/asciidoctor-diagram/dpic/converter.rb +4 -1
- data/lib/asciidoctor-diagram/erd/converter.rb +5 -2
- data/lib/asciidoctor-diagram/gnuplot/converter.rb +7 -1
- data/lib/asciidoctor-diagram/graphviz/converter.rb +4 -1
- data/lib/asciidoctor-diagram/graphviz_py/converter.rb +4 -1
- data/lib/asciidoctor-diagram/http/converter.rb +16 -7
- data/lib/asciidoctor-diagram/http/server.rb +2 -2
- data/lib/asciidoctor-diagram/lilypond/converter.rb +3 -2
- data/lib/asciidoctor-diagram/meme/converter.rb +29 -3
- data/lib/asciidoctor-diagram/mermaid/converter.rb +4 -2
- data/lib/asciidoctor-diagram/msc/converter.rb +6 -2
- data/lib/asciidoctor-diagram/nomnoml/converter.rb +4 -1
- data/lib/asciidoctor-diagram/penrose/converter.rb +53 -0
- data/lib/asciidoctor-diagram/penrose/extension.rb +18 -0
- data/lib/asciidoctor-diagram/penrose.rb +8 -0
- data/lib/asciidoctor-diagram/pikchr/converter.rb +4 -1
- data/lib/asciidoctor-diagram/pintora/converter.rb +60 -0
- data/lib/asciidoctor-diagram/pintora/extension.rb +18 -0
- data/lib/asciidoctor-diagram/pintora.rb +8 -0
- data/lib/asciidoctor-diagram/plantuml/converter.rb +256 -43
- data/lib/asciidoctor-diagram/plantuml/plantuml-2.2.4.jar +0 -0
- data/lib/asciidoctor-diagram/shaape/converter.rb +4 -1
- data/lib/asciidoctor-diagram/smcat/converter.rb +5 -1
- data/lib/asciidoctor-diagram/structurizr/converter.rb +69 -0
- data/lib/asciidoctor-diagram/structurizr/extension.rb +52 -0
- data/lib/asciidoctor-diagram/structurizr/renderers.rb +63 -0
- data/lib/asciidoctor-diagram/structurizr/structurizr-2.2.2.jar +0 -0
- data/lib/asciidoctor-diagram/structurizr.rb +7 -0
- data/lib/asciidoctor-diagram/svgbob/converter.rb +6 -2
- data/lib/asciidoctor-diagram/symbolator/converter.rb +4 -1
- data/lib/asciidoctor-diagram/syntrax/converter.rb +72 -17
- data/lib/asciidoctor-diagram/syntrax/syntrax-2.2.0.jar +0 -0
- data/lib/asciidoctor-diagram/tikz/converter.rb +5 -2
- data/lib/asciidoctor-diagram/umlet/converter.rb +4 -1
- data/lib/asciidoctor-diagram/util/base64.rb +25 -0
- data/lib/asciidoctor-diagram/util/cli.rb +11 -3
- data/lib/asciidoctor-diagram/util/cli_generator.rb +1 -0
- data/lib/asciidoctor-diagram/util/java.rb +15 -7
- data/lib/asciidoctor-diagram/util/java_jruby.rb +14 -0
- data/lib/asciidoctor-diagram/util/java_socket.rb +4 -0
- data/lib/asciidoctor-diagram/util/server-2.2.3.jar +0 -0
- data/lib/asciidoctor-diagram/util/svg.rb +5 -3
- data/lib/asciidoctor-diagram/vega/converter.rb +5 -3
- data/lib/asciidoctor-diagram/version.rb +1 -1
- data/lib/asciidoctor-diagram/wavedrom/converter.rb +38 -24
- data/lib/asciidoctor-diagram.rb +5 -0
- metadata +32 -115
- data/Rakefile +0 -9
- data/docs/antora.yml +0 -3
- data/docs/modules/ROOT/images/asciidoctor-diagram-classes.png +0 -0
- data/docs/modules/ROOT/images/asciidoctor-diagram-process.png +0 -0
- data/docs/modules/ROOT/pages/index.adoc +0 -21
- data/docs/modules/ROOT/partials/advanced.adoc +0 -365
- data/docs/modules/ROOT/partials/create_diagram.adoc +0 -134
- data/docs/modules/ROOT/partials/generate.adoc +0 -15
- data/docs/modules/ROOT/partials/installation.adoc +0 -19
- data/docs/modules/ROOT/partials/uris.adoc +0 -41
- data/examples/Gemfile +0 -3
- data/examples/README.adoc +0 -18
- data/examples/design.adoc +0 -78
- data/examples/features.adoc +0 -189
- data/lib/asciidoctor-diagram/ditaa/ditaa-1.3.21.jar +0 -0
- data/lib/asciidoctor-diagram/plantuml/plantuml-1.3.21.jar +0 -0
- data/lib/asciidoctor-diagram/util/server-1.3.21.jar +0 -0
- data/spec/a2s_spec.rb +0 -33
- data/spec/barcode_spec.rb +0 -176
- data/spec/blockdiag_spec.rb +0 -20
- data/spec/bpmn_spec.rb +0 -60
- data/spec/bytefield_spec.rb +0 -96
- data/spec/diagrams_spec.rb +0 -27
- data/spec/ditaa_spec.rb +0 -191
- data/spec/dpic_spec.rb +0 -23
- data/spec/erd_spec.rb +0 -96
- data/spec/gnuplot_spec.rb +0 -229
- data/spec/graphviz_py_spec.rb +0 -33
- data/spec/graphviz_spec.rb +0 -24
- data/spec/lilypond_spec.rb +0 -17
- data/spec/man.jpg +0 -0
- data/spec/meme_spec.rb +0 -67
- data/spec/mermaid_spec.rb +0 -198
- data/spec/msc_spec.rb +0 -37
- data/spec/nomnoml_spec.rb +0 -36
- data/spec/pikchr_spec.rb +0 -73
- data/spec/plantuml_spec.rb +0 -772
- data/spec/shaape_spec.rb +0 -20
- data/spec/shared_examples.rb +0 -764
- data/spec/smcat_spec.rb +0 -30
- data/spec/svgbob_spec.rb +0 -33
- data/spec/symbolator_spec.rb +0 -27
- data/spec/syntrax_spec.rb +0 -22
- data/spec/test_helper.rb +0 -113
- data/spec/tikz_spec.rb +0 -181
- data/spec/umlet_spec.rb +0 -32
- data/spec/vega_spec.rb +0 -133
- data/spec/wavedrom_spec.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 993b52833cbee514282ba62841b0dfafc69760770884a42ea24843b6e9b58224
|
4
|
+
data.tar.gz: 38d9215b0859313c6610ec6876b65e2fee4437b87bcc1f2a01465c39db8dedc4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15477c98c7d90da97ce45106f2f6159b26eb60caeeb0e9d36a700959e15aba484449334ba31c4d74e1bb6806f3360d477e1c424242ad2c3657dd2135d4d9b89f
|
7
|
+
data.tar.gz: 18b93c67ac75d7916eab56073b92a49c6a22ec52be0bc48bc5431d967d2c2a7968d570146a2c53acbf773452453b67dc76c539b69e5e3c9ce9df2d857d9d9cff
|
data/CHANGELOG.adoc
CHANGED
@@ -1,5 +1,164 @@
|
|
1
1
|
= Asciidoctor-diagram Changelog
|
2
2
|
|
3
|
+
== 3.0.0
|
4
|
+
|
5
|
+
Breaking Changes::
|
6
|
+
|
7
|
+
* Asciidoctor Diagram no longer has a runtime dependency on the https://rubygems.org/gems/asciidoctor-diagram-ditaamini[asciidoctor-diagram-ditaamini] and https://rubygems.org/gems/asciidoctor-diagram-plantuml[asciidoctor-diagram-plantuml] gems.
|
8
|
+
These gems will now have to be installed and required explicitly if necessary.
|
9
|
+
|
10
|
+
Enhancements::
|
11
|
+
|
12
|
+
* Issue #478: Add support for PlantUML native image builds (@fliiiix)
|
13
|
+
|
14
|
+
== 2.3.2
|
15
|
+
|
16
|
+
Enhancements::
|
17
|
+
|
18
|
+
* Issue #465: Add support for https://pintorajs.vercel.app/[Pintora]
|
19
|
+
* Issue #476: Use PlantUML's Smetana layout engine by default if Graphviz cannot be located
|
20
|
+
* Issue #477: Improve support for using plantuml.com as PlantUML rendering server
|
21
|
+
* Add support for Structurizr JSON workspaces
|
22
|
+
* Prefer non-PDF formats when rendering with HTML backend
|
23
|
+
|
24
|
+
== 2.3.1
|
25
|
+
|
26
|
+
Enhancements::
|
27
|
+
|
28
|
+
* Issue #423: Add support for loading JSyntrax via the `asciidoctor-diagram-jsyntrax` gem (@inponomarev)
|
29
|
+
* Issue #464: Remove usage of 'base64' gem to resolve Ruby 3.3+ compatibility issues
|
30
|
+
|
31
|
+
Bugfixes::
|
32
|
+
|
33
|
+
* Issue #459: Fix lookup of `wavedrom-cli` location on Windows
|
34
|
+
|
35
|
+
== 2.3.0
|
36
|
+
|
37
|
+
Enhancements::
|
38
|
+
|
39
|
+
* Issue #457: Relaxed Java version requirement from 11 to 1.8 (for tools that support it)
|
40
|
+
|
41
|
+
== 2.2.18
|
42
|
+
|
43
|
+
Enhancements::
|
44
|
+
|
45
|
+
* Add opt-in support for the PlantUML Smetana layout engine
|
46
|
+
|
47
|
+
== 2.2.17
|
48
|
+
|
49
|
+
Bugfixes::
|
50
|
+
|
51
|
+
* Issue #455: Fix regression in reading of UTF-8 source files introduced in 2.2.15
|
52
|
+
|
53
|
+
== 2.2.16
|
54
|
+
|
55
|
+
Bugfixes::
|
56
|
+
|
57
|
+
* Issue #453: Avoid internal error when WaveDrom cannot be located
|
58
|
+
|
59
|
+
== 2.2.15
|
60
|
+
|
61
|
+
Enhacements::
|
62
|
+
|
63
|
+
* Issue #453: Improve error message when WaveDrom cannot be located
|
64
|
+
|
65
|
+
Bugfixes::
|
66
|
+
|
67
|
+
* Issue #428: Improve support for reading UTF-16 encoded source files
|
68
|
+
* Issue #449: Fix resolving of relative `!include` paths in Structurizr DSL input.
|
69
|
+
|
70
|
+
== 2.2.14
|
71
|
+
|
72
|
+
Bugfixes::
|
73
|
+
|
74
|
+
* Issue #441: Fix regression in Wavedrom integration.
|
75
|
+
|
76
|
+
== 2.2.13
|
77
|
+
|
78
|
+
Enhancements::
|
79
|
+
|
80
|
+
* Issue #436: Allow diagram caching to be disabled using the `nocache` option.
|
81
|
+
|
82
|
+
Bugfixes::
|
83
|
+
|
84
|
+
* Issue #437: Set working directory when generating diagrams.
|
85
|
+
* Issue #439: Resolve errors when using relative imports in D2 diagrams
|
86
|
+
|
87
|
+
== 2.2.12
|
88
|
+
|
89
|
+
Enhancements::
|
90
|
+
|
91
|
+
* Issue #431: Reduce gem file size
|
92
|
+
* Resolve loading errors when loading the PlantUML and Struturizr extensions individually
|
93
|
+
|
94
|
+
== 2.2.11
|
95
|
+
|
96
|
+
Bugfixes::
|
97
|
+
|
98
|
+
* Issue #424: avoid invalid filename characters on Windows
|
99
|
+
|
100
|
+
== 2.2.10
|
101
|
+
|
102
|
+
Enhancements::
|
103
|
+
|
104
|
+
* The location of JSyntrax and Structurizr can now also be specified using Java system properties when using JRuby.
|
105
|
+
* Add initial https://penrose.cs.cmu.edu[Penrose] support
|
106
|
+
|
107
|
+
Bugfixes::
|
108
|
+
|
109
|
+
* Ensure Structurizr themes are loaded when rendering images
|
110
|
+
* Issue #416: Silence Asciidoctor warning when using inline macros
|
111
|
+
* Issue #417: Avoid reusing images when block type is different but source code is identical
|
112
|
+
* Remove usage of LilyPond's 'safe' option since it's no longer supported
|
113
|
+
|
114
|
+
|
115
|
+
== 2.2.9
|
116
|
+
|
117
|
+
Bugfixes::
|
118
|
+
|
119
|
+
* Resolve UTF-8 encoding error when generating SVG for GS1-128 barcodes
|
120
|
+
* Issue #409: Second attempt at fixing handling of the D2 `sketch` attribute
|
121
|
+
* Issue #415: Resolve NoMethodError when using Structurizr blocks
|
122
|
+
|
123
|
+
== 2.2.8
|
124
|
+
|
125
|
+
Enhancements::
|
126
|
+
|
127
|
+
* Add support for reusing JSyntrax subprocess instances to improve performance when rendering many syntax diagrams (@gitrbond, @inponomarev)
|
128
|
+
* Issue #386: Add basic https://structurizr.com[Structurizr] support
|
129
|
+
|
130
|
+
Bugfixes::
|
131
|
+
|
132
|
+
* Issue #409: Fix handling of the D2 `sketch` attribute
|
133
|
+
* Issue #410: Ensure current directory is always set to document base directory when invoking subprocesses
|
134
|
+
|
135
|
+
== 2.2.7
|
136
|
+
|
137
|
+
Enhancements::
|
138
|
+
|
139
|
+
* Issue #407: Add https://d2lang.com[D2] support
|
140
|
+
|
141
|
+
== 2.2.6
|
142
|
+
|
143
|
+
Enhancements::
|
144
|
+
|
145
|
+
* Add support for PlantUML 1.2023.x
|
146
|
+
|
147
|
+
== 2.2.5
|
148
|
+
|
149
|
+
Enhancements::
|
150
|
+
|
151
|
+
* Issue #401: Add passthrough `txt` output format support for A2S, Ditaa, and Svgbob
|
152
|
+
* Issue #402: Add https://github.com/kaishuu0123/erd-go[erd-go] support
|
153
|
+
* Issue #404: Add https://github.com/mscgenjs[mscgenjs] support
|
154
|
+
|
155
|
+
== 2.2.4
|
156
|
+
|
157
|
+
Enhancements::
|
158
|
+
|
159
|
+
* Issue #399: Add support for PlantUML theme attribute
|
160
|
+
* Add DBML support via https://github.com/softwaretechnik-berlin/dbml-renderer[dbml-renderer]
|
161
|
+
|
3
162
|
== 2.2.3
|
4
163
|
|
5
164
|
Enhancements::
|
data/README.adoc
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
Pepijn Van_Eeckhoudt <https://github.com/pepijnve[@pepijnve]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>
|
3
3
|
:description: README for the Asciidoctor Diagram extension for Asciidoctor.
|
4
4
|
|
5
|
-
image:https://github.com/asciidoctor/asciidoctor-diagram/workflows/Linux%20unit%20tests/badge.svg?branch=
|
6
|
-
image:https://github.com/asciidoctor/asciidoctor-diagram/workflows/macOS%20unit%20tests/badge.svg?branch=
|
7
|
-
image:https://github.com/asciidoctor/asciidoctor-diagram/workflows/Windows%20unit%20tests/badge.svg?branch=
|
5
|
+
image:https://github.com/asciidoctor/asciidoctor-diagram/workflows/Linux%20unit%20tests/badge.svg?branch=main["Linux Build Status", link="https://github.com/asciidoctor/asciidoctor-diagram/actions?query=workflow%3A%22Linux+unit+tests%22"]
|
6
|
+
// image:https://github.com/asciidoctor/asciidoctor-diagram/workflows/macOS%20unit%20tests/badge.svg?branch=main["macOS Build Status", link="https://github.com/asciidoctor/asciidoctor-diagram/actions?query=workflow%3A%22macOS+unit+tests%22"]
|
7
|
+
// image:https://github.com/asciidoctor/asciidoctor-diagram/workflows/Windows%20unit%20tests/badge.svg?branch=main["Windows Build Status", link="https://github.com/asciidoctor/asciidoctor-diagram/actions?query=workflow%3A%22Windows+unit+tests%22"]
|
8
8
|
image:https://badge.fury.io/rb/asciidoctor-diagram.svg[Gem Version, link=https://rubygems.org/gems/asciidoctor-diagram]
|
9
9
|
|
10
10
|
Asciidoctor Diagram is a set of Asciidoctor extensions that enable you to add diagrams, which you describe using plain text, to your AsciiDoc document.
|
@@ -23,16 +23,20 @@ The example below shows an embedded Ditaa diagram block.
|
|
23
23
|
---------
|
24
24
|
[ditaa]
|
25
25
|
----
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
26
|
+
+-------------+
|
27
|
+
| Diagram +----------------+
|
28
|
+
| Renderer | |
|
29
|
+
+-------------+ |
|
30
|
+
| Asciidoctor | |
|
31
|
+
| Diagram | |
|
32
|
+
+-------------+ | Image
|
33
|
+
^ |
|
34
|
+
| Diagram source |
|
35
|
+
+---------------+ | v
|
36
|
+
| Asciidoc | +------+------+ /-------+------\
|
37
|
+
| with embedded +------>+ Asciidoctor +------->| Beautiful |
|
38
|
+
| diagram {d}| +-------------+ HTML | Output |
|
39
|
+
+---------------+ \--------------/
|
36
40
|
----
|
37
41
|
---------
|
38
42
|
|
@@ -10,7 +10,7 @@ module Asciidoctor
|
|
10
10
|
include CliGenerator
|
11
11
|
|
12
12
|
def supported_formats
|
13
|
-
[:svg]
|
13
|
+
[:svg, :txt]
|
14
14
|
end
|
15
15
|
|
16
16
|
def collect_options(source)
|
@@ -24,6 +24,8 @@ module Asciidoctor
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def convert(source, format, options)
|
27
|
+
return source.to_s if format == :txt
|
28
|
+
|
27
29
|
sx = options[:sx]
|
28
30
|
sy = options[:sy]
|
29
31
|
scale = options[:scale]
|
@@ -47,7 +49,10 @@ module Asciidoctor
|
|
47
49
|
args << '-f' << font
|
48
50
|
end
|
49
51
|
|
50
|
-
|
52
|
+
{
|
53
|
+
:args => args,
|
54
|
+
:chdir => source.base_dir
|
55
|
+
}
|
51
56
|
end
|
52
57
|
end
|
53
58
|
|
@@ -27,7 +27,7 @@ module Asciidoctor
|
|
27
27
|
include DiagramConverter
|
28
28
|
|
29
29
|
def supported_formats
|
30
|
-
[:
|
30
|
+
[:svg, :png, :txt]
|
31
31
|
end
|
32
32
|
|
33
33
|
def collect_options(source)
|
@@ -52,84 +52,88 @@ module Asciidoctor
|
|
52
52
|
code = source.code
|
53
53
|
type = source.config[:type]
|
54
54
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
55
|
+
begin
|
56
|
+
case type
|
57
|
+
when :bookland
|
58
|
+
require 'barby/barcode/bookland'
|
59
|
+
barcode = Barby::Bookland.new(code)
|
60
|
+
when :codabar
|
61
|
+
require 'barby/barcode/codabar'
|
62
|
+
barcode = Barby::Codabar.new(code)
|
63
|
+
when :code25
|
64
|
+
require 'barby/barcode/code_25'
|
65
|
+
barcode = Barby::Code25.new(code)
|
66
|
+
when :code25iata
|
67
|
+
require 'barby/barcode/code_25_iata'
|
68
|
+
barcode = Barby::Code25IATA.new(code)
|
69
|
+
when :code25interleaved
|
70
|
+
require 'barby/barcode/code_25_interleaved'
|
71
|
+
barcode = Barby::Code25Interleaved.new(code)
|
72
|
+
when :code39
|
73
|
+
require 'barby/barcode/code_39'
|
74
|
+
barcode = Barby::Code39.new(code)
|
75
|
+
when :code93
|
76
|
+
require 'barby/barcode/code_93'
|
77
|
+
barcode = Barby::Code93.new(code)
|
78
|
+
when :code128
|
79
|
+
require 'barby/barcode/code_128'
|
80
|
+
barcode = Barby::Code128.new(code)
|
81
|
+
when :code128a
|
82
|
+
require 'barby/barcode/code_128'
|
83
|
+
barcode = Barby::Code128A.new(code)
|
84
|
+
when :code128b
|
85
|
+
require 'barby/barcode/code_128'
|
86
|
+
barcode = Barby::Code128B.new(code)
|
87
|
+
when :code128c
|
88
|
+
require 'barby/barcode/code_128'
|
89
|
+
barcode = Barby::Code128C.new(code)
|
90
|
+
when :ean8
|
91
|
+
require 'barby/barcode/ean_8'
|
92
|
+
barcode = Barby::EAN8.new(code)
|
93
|
+
when :ean13
|
94
|
+
require 'barby/barcode/ean_13'
|
95
|
+
barcode = Barby::EAN13.new(code)
|
96
|
+
when :gs1_128
|
97
|
+
require 'barby/barcode/code_128'
|
98
|
+
gs1_code = code.gsub /\([^)]+\)/ do |control|
|
99
|
+
case control.upcase
|
100
|
+
when '(FNC1)'
|
101
|
+
Barby::Code128::FNC1
|
102
|
+
when '(FNC2)'
|
103
|
+
Barby::Code128::FNC2
|
104
|
+
when '(FNC3)'
|
105
|
+
Barby::Code128::FNC3
|
106
|
+
when '(FNC4)'
|
107
|
+
Barby::Code128::FNC4
|
108
|
+
when '(CODEA)'
|
109
|
+
Barby::Code128::CODEA
|
110
|
+
when '(CODEB)'
|
111
|
+
Barby::Code128::CODEB
|
112
|
+
when '(CODEC)'
|
113
|
+
Barby::Code128::CODEC
|
114
|
+
when '(SHIFT)'
|
115
|
+
Barby::Code128::SHIFT
|
116
|
+
when '(SP)'
|
117
|
+
' '
|
118
|
+
else
|
119
|
+
control
|
120
|
+
end
|
119
121
|
end
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
122
|
+
gs1_code = gs1_code.gsub(/\s+/, '')
|
123
|
+
gs1_code = gs1_code.prepend(Barby::Code128::FNC1) unless gs1_code[0] == Barby::Code128::FNC1
|
124
|
+
barcode = Barby::Code128.new(gs1_code)
|
125
|
+
when :qrcode
|
126
|
+
BarcodeDependencies::QRCODE_DEPENDENCIES.each_pair { |n, v| source.ensure_gem(n, v) }
|
127
|
+
require 'barby/barcode/qr_code'
|
128
|
+
barcode = Barby::QrCode.new(code)
|
129
|
+
when :upca
|
130
|
+
require 'barby/barcode/ean_13'
|
131
|
+
barcode = Barby::UPCA.new(code)
|
132
|
+
else
|
133
|
+
raise "Unsupported barcode type: #{type}"
|
134
|
+
end
|
135
|
+
rescue ArgumentError
|
136
|
+
raise "Invalid #{type} data"
|
133
137
|
end
|
134
138
|
|
135
139
|
case format
|
@@ -142,6 +146,7 @@ module Asciidoctor
|
|
142
146
|
barcode.to_png(options)
|
143
147
|
when :svg
|
144
148
|
require_relative 'svg_outputter'
|
149
|
+
options[:title] = code
|
145
150
|
options[:foreground] = "##{options[:foreground]}" if options[:foreground] =~ /^[0-9a-f]+$/i
|
146
151
|
options[:background] = "##{options[:background]}" if options[:background] =~ /^[0-9a-f]+$/i
|
147
152
|
barcode.to_svg(options)
|
@@ -13,19 +13,29 @@ module Asciidoctor
|
|
13
13
|
[:png, :pdf, :svg]
|
14
14
|
end
|
15
15
|
|
16
|
+
def collect_options(source)
|
17
|
+
{
|
18
|
+
:font_path => source.attr('fontpath')
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
16
22
|
def convert(source, format, options)
|
17
23
|
# On Debian based systems the Python 3.x packages python3-(act|block|nw|seq)diag executables with
|
18
24
|
# a '3' suffix.
|
19
25
|
cmd_name = self.class.const_get(:TOOL)
|
20
26
|
alt_cmd_name = "#{cmd_name}3"
|
21
27
|
|
22
|
-
font_path =
|
28
|
+
font_path = options[:font_path]
|
23
29
|
|
24
30
|
generate_stdin(source.find_command(cmd_name, :alt_cmds => [alt_cmd_name]), format.to_s, source.to_s) do |tool_path, output_path|
|
25
31
|
args = [tool_path, '-a', '-o', Platform.native_path(output_path), "-T#{format.to_s}"]
|
26
32
|
args << "-f#{Platform.native_path(font_path)}" if font_path
|
27
33
|
args << '-'
|
28
|
-
|
34
|
+
|
35
|
+
{
|
36
|
+
:args => args,
|
37
|
+
:chdir => source.base_dir
|
38
|
+
}
|
29
39
|
end
|
30
40
|
end
|
31
41
|
end
|
@@ -18,7 +18,10 @@ module Asciidoctor
|
|
18
18
|
bytefield_path = source.find_command('bytefield-svg')
|
19
19
|
|
20
20
|
generate_stdin(bytefield_path, format.to_s, source.to_s) do |tool_path, output_path|
|
21
|
-
|
21
|
+
{
|
22
|
+
:args => [tool_path, "--output", Platform.native_path(output_path)],
|
23
|
+
:chdir => source.base_dir
|
24
|
+
}
|
22
25
|
end
|
23
26
|
end
|
24
27
|
end
|
@@ -0,0 +1,57 @@
|
|
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 D2Converter
|
9
|
+
include DiagramConverter
|
10
|
+
include CliGenerator
|
11
|
+
|
12
|
+
def supported_formats
|
13
|
+
[:svg, :png, :pdf]
|
14
|
+
end
|
15
|
+
|
16
|
+
def collect_options(source)
|
17
|
+
{
|
18
|
+
:layout => source.attr('layout'),
|
19
|
+
:theme => source.attr('theme'),
|
20
|
+
:pad => source.attr('pad'),
|
21
|
+
:animate_interval => source.attr('animate-interval'),
|
22
|
+
:sketch => source.attr('sketch'),
|
23
|
+
:font_regular => source.attr('font-regular'),
|
24
|
+
:font_italic => source.attr('font-italic'),
|
25
|
+
:font_bold => source.attr('font-bold')
|
26
|
+
}
|
27
|
+
end
|
28
|
+
|
29
|
+
def convert(source, format, options)
|
30
|
+
generate_stdin(source.find_command('d2'), format.to_s, source.code) do |tool_path, output_path|
|
31
|
+
args = [tool_path, '--browser', 'false']
|
32
|
+
|
33
|
+
options.each_pair do |key, value|
|
34
|
+
flag = "--#{key.to_s.gsub('_', '-')}"
|
35
|
+
|
36
|
+
if key == :sketch && !value.nil? && value != 'false'
|
37
|
+
args << flag
|
38
|
+
elsif key.to_s.start_with?('font') && !value.nil?
|
39
|
+
args << Platform.native_path(value)
|
40
|
+
elsif !value.nil?
|
41
|
+
args << flag
|
42
|
+
args << value
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
args << '-'
|
47
|
+
args << Platform.native_path(output_path)
|
48
|
+
|
49
|
+
{
|
50
|
+
:args => args,
|
51
|
+
:chdir => source.base_dir
|
52
|
+
}
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative 'converter'
|
2
|
+
require_relative '../diagram_processor'
|
3
|
+
|
4
|
+
module Asciidoctor
|
5
|
+
module Diagram
|
6
|
+
class D2BlockProcessor < DiagramBlockProcessor
|
7
|
+
use_converter D2Converter
|
8
|
+
end
|
9
|
+
|
10
|
+
class D2BlockMacroProcessor < DiagramBlockMacroProcessor
|
11
|
+
use_converter D2Converter
|
12
|
+
end
|
13
|
+
|
14
|
+
class D2InlineMacroProcessor < DiagramInlineMacroProcessor
|
15
|
+
use_converter D2Converter
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
require 'asciidoctor/extensions'
|
2
|
+
require_relative 'd2/extension'
|
3
|
+
|
4
|
+
Asciidoctor::Extensions.register do
|
5
|
+
block Asciidoctor::Diagram::D2BlockProcessor, :d2
|
6
|
+
block_macro Asciidoctor::Diagram::D2BlockMacroProcessor, :d2
|
7
|
+
inline_macro Asciidoctor::Diagram::D2InlineMacroProcessor, :d2
|
8
|
+
end
|
@@ -0,0 +1,27 @@
|
|
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 DbmlConverter
|
9
|
+
include DiagramConverter
|
10
|
+
include CliGenerator
|
11
|
+
|
12
|
+
|
13
|
+
def supported_formats
|
14
|
+
[:svg]
|
15
|
+
end
|
16
|
+
|
17
|
+
def convert(source, format, options)
|
18
|
+
generate_stdin_stdout(source.find_command('dbml-renderer'), source.code) do |tool|
|
19
|
+
{
|
20
|
+
:args => [tool],
|
21
|
+
:chdir => source.base_dir
|
22
|
+
}
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative 'converter'
|
2
|
+
require_relative '../diagram_processor'
|
3
|
+
|
4
|
+
module Asciidoctor
|
5
|
+
module Diagram
|
6
|
+
class DbmlBlockProcessor < DiagramBlockProcessor
|
7
|
+
use_converter DbmlConverter
|
8
|
+
end
|
9
|
+
|
10
|
+
class DbmlBlockMacroProcessor < DiagramBlockMacroProcessor
|
11
|
+
use_converter DbmlConverter
|
12
|
+
end
|
13
|
+
|
14
|
+
class DbmlInlineMacroProcessor < DiagramInlineMacroProcessor
|
15
|
+
use_converter DbmlConverter
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
require 'asciidoctor/extensions'
|
2
|
+
require_relative 'dbml/extension'
|
3
|
+
|
4
|
+
Asciidoctor::Extensions.register do
|
5
|
+
block Asciidoctor::Diagram::DbmlBlockProcessor, :dbml
|
6
|
+
block_macro Asciidoctor::Diagram::DbmlBlockMacroProcessor, :dbml
|
7
|
+
inline_macro Asciidoctor::Diagram::DbmlInlineMacroProcessor, :dbml
|
8
|
+
end
|