jekyll-diagrams 0.9.2 → 0.9.3
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/README.md +32 -20
- data/features/blockdiag.feature +1 -2
- data/features/graphviz.feature +58 -6
- data/features/mermaid.feature +1 -2
- data/features/nomnoml.feature +2 -22
- data/features/plantuml.feature +17 -8
- data/features/smcat.feature +10 -15
- data/features/support/env.rb +11 -5
- data/features/syntrax.feature +1 -2
- data/features/vega.feature +24 -12
- data/features/wavedrom.feature +2 -8
- data/lib/jekyll-diagrams.rb +64 -1
- data/lib/jekyll-diagrams/block.rb +33 -8
- data/lib/jekyll-diagrams/blockdiag.rb +8 -6
- data/lib/jekyll-diagrams/erd.rb +7 -1
- data/lib/jekyll-diagrams/errors.rb +25 -0
- data/lib/jekyll-diagrams/graphviz.rb +2 -1
- data/lib/jekyll-diagrams/mermaid.rb +4 -5
- data/lib/jekyll-diagrams/nomnoml.rb +2 -2
- data/lib/jekyll-diagrams/plantuml.rb +3 -4
- data/lib/jekyll-diagrams/rendering.rb +67 -0
- data/lib/jekyll-diagrams/smcat.rb +2 -2
- data/lib/jekyll-diagrams/vega.rb +3 -1
- data/lib/jekyll-diagrams/version.rb +1 -1
- data/test/block_test.rb +6 -0
- data/test/blockdiag_test.rb +28 -0
- data/test/erd_test.rb +5 -2
- data/test/rendering_test.rb +20 -0
- data/test/svgbob_test.rb +22 -0
- data/test/test_helper.rb +12 -3
- metadata +118 -39
- data/.coveralls.yml +0 -1
- data/.github/workflows/test.yml +0 -83
- data/.gitignore +0 -4
- data/.rubocop.yml +0 -22
- data/.simplecov +0 -5
- data/.travis.yml +0 -50
- data/Dockerfile +0 -53
- data/Gemfile +0 -8
- data/Rakefile +0 -28
- data/features/svgbob.feature +0 -22
- data/jekyll-diagrams.gemspec +0 -31
- data/lib/jekyll-diagrams/util.rb +0 -95
- data/test/util_test.rb +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e01b0efc75e18e6fc6eb105f1bdbd31380407a653bdf3972b61f96e69495d2f2
|
4
|
+
data.tar.gz: 8e505b39fa89147623fb456f6e08ba20837b92f77e4f612177f0bb25e7f2aa21
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2cb41b3ca6850ed7be3389369fc928cb52d7b128fef27568858a28d9ba3ade5a3b024dca39828ff875f0e69f0e6b4c0b3f9806b0c39b044f8ebc38cd5b5e7f25
|
7
|
+
data.tar.gz: 7a52d3fdb72daf02efb5ecc89f86f4c791c2ec8281a5787165997385baa9b156d37105fbd973a13ed6d0ad01deea22c553ead6059a80894259f97a10664a15b0
|
data/README.md
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# Jekyll Diagrams
|
2
2
|
|
3
|
-
[](https://rubygems.org/gems/jekyll-diagrams)
|
4
|
-
[](https://github.com/zhustec/jekyll-diagrams/blob/master/LICENSE)
|
3
|
+
[](https://rubygems.org/gems/jekyll-diagrams)
|
4
|
+
[](https://github.com/zhustec/jekyll-diagrams/actions?query=workflow%3ATest)
|
5
|
+
[](https://travis-ci.com/zhustec/jekyll-diagrams)
|
6
|
+
[](https://github.com/zhustec/jekyll-diagrams/actions?query=workflow%3ALinter)
|
7
|
+
[](https://coveralls.io/github/zhustec/jekyll-diagrams)
|
8
|
+
[](https://github.com/zhustec/jekyll-diagrams/blob/master/LICENSE)
|
9
9
|
|
10
10
|
Jekyll Diagrams is a jekyll plugins for creating diagrams, currently support for [**Blockdiag**](http://blockdiag.com/en/), [**Erd**](https://github.com/BurntSushi/erd), [**GraphViz**](http://graphviz.org/), [**Mermaid**](https://mermaid-js.github.io/mermaid/), [**Nomnoml**](http://nomnoml.com/), [**PlantUML**](https://plantuml.com/), [**Svgbob**](https://ivanceras.github.io/svgbob-editor/), [**Syntrax**](https://kevinpt.github.io/syntrax/), [**Vega**](https://vega.github.io/vega/), [**Vega-Lite**](https://vega.github.io/vega-lite/) and [**WaveDrom**](https://wavedrom.com/). More diagrams support will be added in future versions.
|
11
11
|
|
@@ -13,8 +13,7 @@ Jekyll Diagrams is a jekyll plugins for creating diagrams, currently support for
|
|
13
13
|
|
14
14
|
- [Installation](#installation)
|
15
15
|
- [Configurations](#configurations)
|
16
|
-
- [
|
17
|
-
- [Page Configurations](#page-configurations)
|
16
|
+
- [Error Mode](#error-mode)
|
18
17
|
- [Usage](#usage)
|
19
18
|
- [Blockdiag](#blockdiag)
|
20
19
|
- [Erd](#erd)
|
@@ -55,9 +54,7 @@ $ bundle install
|
|
55
54
|
|
56
55
|
## Configurations
|
57
56
|
|
58
|
-
|
59
|
-
|
60
|
-
Site configurations can be set in your site's config file under `jekyll-diagrams` key, e.g:
|
57
|
+
Configurations can be set in your site's config file under `jekyll-diagrams` key as below:
|
61
58
|
|
62
59
|
```yaml
|
63
60
|
jekyll-diagrams:
|
@@ -70,9 +67,7 @@ jekyll-diagrams:
|
|
70
67
|
# and so on
|
71
68
|
```
|
72
69
|
|
73
|
-
|
74
|
-
|
75
|
-
You can set configurations in the front matter of each page, this will overwite global config. e.g.
|
70
|
+
You can override global config in the front matter of each page, e.g.
|
76
71
|
|
77
72
|
```text
|
78
73
|
---
|
@@ -81,14 +76,31 @@ title: Custom configurations per page
|
|
81
76
|
jekyll-diagrams:
|
82
77
|
graphviz:
|
83
78
|
# configurations for graphviz
|
84
|
-
blockdiag:
|
85
|
-
# configurations for blockdiag
|
86
|
-
syntrax:
|
87
|
-
# configurations for syntrax
|
88
|
-
# and so on
|
89
79
|
---
|
90
80
|
|
91
|
-
#
|
81
|
+
# Your content
|
82
|
+
```
|
83
|
+
|
84
|
+
### Error Mode
|
85
|
+
|
86
|
+
You can use `error_mode` to configure how to response to errors. `jekyll-diagrams` respect the global [liquid options](https://jekyllrb.com/docs/configuration/liquid/):
|
87
|
+
|
88
|
+
```yaml
|
89
|
+
liquid:
|
90
|
+
error_mode: 'mode'
|
91
|
+
```
|
92
|
+
|
93
|
+
Avaliable options:
|
94
|
+
|
95
|
+
- `lax`: Ignore all errors
|
96
|
+
- `warn`: Output a warning on the console for each error
|
97
|
+
- `strict`: Output an error message and stop the build
|
98
|
+
|
99
|
+
You can also override it for just `jekyll-diagrams`:
|
100
|
+
|
101
|
+
```yaml
|
102
|
+
jekyll-diagrams:
|
103
|
+
error_mode: 'mode'
|
92
104
|
```
|
93
105
|
|
94
106
|
## Usage
|
data/features/blockdiag.feature
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Feature: Blockdiag
|
2
2
|
|
3
3
|
|
4
|
-
Scenario:
|
4
|
+
Scenario: Basic Rendering
|
5
5
|
Given I have a file 'blockdiag.md' with content:
|
6
6
|
"""
|
7
7
|
---
|
@@ -16,5 +16,4 @@ Feature: Blockdiag
|
|
16
16
|
"""
|
17
17
|
When I run jekyll build
|
18
18
|
Then the file '_site/blockdiag.html' should exist
|
19
|
-
And I should see 'diagrams blockdiag' in '_site/blockdiag.html'
|
20
19
|
And I should see svg output in '_site/blockdiag.html'
|
data/features/graphviz.feature
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Feature: Graphviz
|
2
2
|
|
3
3
|
|
4
|
-
|
4
|
+
Background: I have a file with Graghviz
|
5
5
|
Given I have a file 'graphviz.md' with content:
|
6
6
|
"""
|
7
7
|
---
|
@@ -9,14 +9,66 @@ Feature: Graphviz
|
|
9
9
|
|
10
10
|
{% graphviz %}
|
11
11
|
digraph {
|
12
|
-
|
13
|
-
S -> B;
|
14
|
-
A -> D;
|
15
|
-
B -> D;
|
12
|
+
A -> B;
|
16
13
|
}
|
17
14
|
{% endgraphviz %}
|
18
15
|
"""
|
16
|
+
|
17
|
+
Scenario: Basic Rendering
|
19
18
|
When I run jekyll build
|
20
19
|
Then the file '_site/graphviz.html' should exist
|
21
|
-
And I should see 'diagrams graphviz' in '_site/graphviz.html'
|
22
20
|
And I should see svg output in '_site/graphviz.html'
|
21
|
+
|
22
|
+
Scenario: Remove XML Heading
|
23
|
+
When I run jekyll build
|
24
|
+
Then the file '_site/graphviz.html' should exist
|
25
|
+
And I should not see '<\?xml' in '_site/graphviz.html'
|
26
|
+
And I should not see '<!DOCTYPE' in '_site/graphviz.html'
|
27
|
+
|
28
|
+
Scenario: Global Configugration
|
29
|
+
Given I have a file '_config.yml' with content:
|
30
|
+
"""
|
31
|
+
jekyll-diagrams:
|
32
|
+
graphviz:
|
33
|
+
graph_attributes: bgcolor=red
|
34
|
+
edge_attributes:
|
35
|
+
- color=green
|
36
|
+
node_attributes:
|
37
|
+
color: blue
|
38
|
+
"""
|
39
|
+
When I run jekyll build
|
40
|
+
Then the file '_site/graphviz.html' should exist
|
41
|
+
# Graph
|
42
|
+
And I should see '<polygon fill="#ff0000"' in '_site/graphviz.html'
|
43
|
+
# Edge
|
44
|
+
And I should see '<path .*? stroke="#00ff00"' in '_site/graphviz.html'
|
45
|
+
# Node
|
46
|
+
And I should see '<ellipse .*? stroke="#0000ff"' in '_site/graphviz.html'
|
47
|
+
|
48
|
+
Scenario: Page Configugration Will Overwite Site Configuration
|
49
|
+
Given I have a file '_config.yml' with content:
|
50
|
+
"""
|
51
|
+
jekyll-diagrams:
|
52
|
+
graphviz:
|
53
|
+
edge_attributes:
|
54
|
+
color: blue
|
55
|
+
"""
|
56
|
+
And I have a file 'graphviz.md' with content:
|
57
|
+
"""
|
58
|
+
---
|
59
|
+
jekyll-diagrams:
|
60
|
+
graphviz:
|
61
|
+
edge_attributes:
|
62
|
+
color: red
|
63
|
+
---
|
64
|
+
|
65
|
+
{% graphviz %}
|
66
|
+
digraph {
|
67
|
+
A -> B;
|
68
|
+
}
|
69
|
+
{% endgraphviz %}
|
70
|
+
"""
|
71
|
+
When I run jekyll build
|
72
|
+
Then the file '_site/graphviz.html' should exist
|
73
|
+
And I should see '<path .*? stroke="#ff0000"' in '_site/graphviz.html'
|
74
|
+
And I should not see '<path .*? stroke="#0000ff"' in '_site/graphviz.html'
|
data/features/mermaid.feature
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Feature: Mermaid
|
2
2
|
|
3
3
|
|
4
|
-
Scenario:
|
4
|
+
Scenario: Basic Rendering
|
5
5
|
Given I have a file 'mermaid.md' with content:
|
6
6
|
"""
|
7
7
|
---
|
@@ -17,5 +17,4 @@ Feature: Mermaid
|
|
17
17
|
"""
|
18
18
|
When I run jekyll build
|
19
19
|
Then the file '_site/mermaid.html' should exist
|
20
|
-
And I should see 'diagrams mermaid' in '_site/mermaid.html'
|
21
20
|
And I should see svg output in '_site/mermaid.html'
|
data/features/nomnoml.feature
CHANGED
@@ -1,36 +1,16 @@
|
|
1
1
|
Feature: Nomnoml
|
2
2
|
|
3
3
|
|
4
|
-
Scenario:
|
4
|
+
Scenario: Basic Rendering
|
5
5
|
Given I have a file 'nomnoml.md' with content:
|
6
6
|
"""
|
7
7
|
---
|
8
8
|
---
|
9
9
|
|
10
10
|
{% nomnoml %}
|
11
|
-
[
|
12
|
-
[beard]--[parrot]
|
13
|
-
[beard]-:>[foul mouth]
|
14
|
-
]
|
15
|
-
|
16
|
-
[<abstract>Marauder]<:--[Pirate]
|
17
|
-
[Pirate]- 0..7[mischief]
|
18
|
-
[jollyness]->[Pirate]
|
19
|
-
[jollyness]->[rum]
|
20
|
-
[jollyness]->[singing]
|
21
|
-
[Pirate]-> *[rum|tastiness: Int|swig()]
|
22
|
-
[Pirate]->[singing]
|
23
|
-
[singing]<->[rum]
|
24
|
-
|
25
|
-
[<start>st]->[<state>plunder]
|
26
|
-
[plunder]->[<choice>more loot]
|
27
|
-
[more loot]->[st]
|
28
|
-
[more loot] no ->[<end>e]
|
29
|
-
|
30
|
-
[<actor>Sailor] - [<usecase>shiver me;timbers]
|
11
|
+
[Jekyll Diagrams Feature Test]
|
31
12
|
{% endnomnoml %}
|
32
13
|
"""
|
33
14
|
When I run jekyll build
|
34
15
|
Then the file '_site/nomnoml.html' should exist
|
35
|
-
And I should see 'diagrams nomnoml' in '_site/nomnoml.html'
|
36
16
|
And I should see svg output in '_site/nomnoml.html'
|
data/features/plantuml.feature
CHANGED
@@ -1,24 +1,33 @@
|
|
1
1
|
Feature: PlantUML
|
2
2
|
|
3
3
|
|
4
|
-
|
4
|
+
Background: I have a file with PlantUML
|
5
5
|
Given I have a file 'plantuml.md' with content:
|
6
6
|
"""
|
7
7
|
---
|
8
8
|
---
|
9
9
|
|
10
10
|
{% plantuml %}
|
11
|
-
|
12
|
-
|
11
|
+
Bob->Alice : hello
|
12
|
+
{% endplantuml %}
|
13
|
+
"""
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
|
15
|
+
Scenario: Basic Rendering
|
16
|
+
Given I have a file 'plantuml.md' with content:
|
17
|
+
"""
|
18
|
+
---
|
19
|
+
---
|
17
20
|
|
18
|
-
|
21
|
+
{% plantuml %}
|
22
|
+
Bob->Alice : hello
|
19
23
|
{% endplantuml %}
|
20
24
|
"""
|
21
25
|
When I run jekyll build
|
22
26
|
Then the file '_site/plantuml.html' should exist
|
23
|
-
And I should see 'diagrams plantuml' in '_site/plantuml.html'
|
24
27
|
And I should see svg output in '_site/plantuml.html'
|
28
|
+
|
29
|
+
Scenario: Remove XML Heading
|
30
|
+
When I run jekyll build
|
31
|
+
Then the file '_site/plantuml.html' should exist
|
32
|
+
And I should not see '<\?xml' in '_site/plantuml.html'
|
33
|
+
And I should not see '<!DOCTYPE' in '_site/plantuml.html'
|
data/features/smcat.feature
CHANGED
@@ -1,29 +1,24 @@
|
|
1
1
|
Feature: SMCat
|
2
2
|
|
3
3
|
|
4
|
-
|
4
|
+
Background: I have a file with SMCat
|
5
5
|
Given I have a file 'smcat.md' with content:
|
6
6
|
"""
|
7
7
|
---
|
8
8
|
---
|
9
9
|
|
10
10
|
{% smcat %}
|
11
|
-
initial
|
12
|
-
"tape player off",
|
13
|
-
"tape player on" {
|
14
|
-
stopped => playing : play;
|
15
|
-
playing => stopped : stop;
|
16
|
-
playing => paused : pause;
|
17
|
-
paused => playing : pause;
|
18
|
-
paused => stopped : stop;
|
19
|
-
};
|
20
|
-
|
21
|
-
initial => "tape player off";
|
22
|
-
"tape player off" => stopped : power;
|
23
|
-
"tape player on" => "tape player off" : power;
|
11
|
+
initial => smcat;
|
24
12
|
{% endsmcat %}
|
25
13
|
"""
|
14
|
+
|
15
|
+
Scenario: Basic Rendering
|
26
16
|
When I run jekyll build
|
27
17
|
Then the file '_site/smcat.html' should exist
|
28
|
-
And I should see 'diagrams smcat' in '_site/smcat.html'
|
29
18
|
And I should see svg output in '_site/smcat.html'
|
19
|
+
|
20
|
+
Scenario: Remove XML Heading
|
21
|
+
When I run jekyll build
|
22
|
+
Then the file '_site/smcat.html' should exist
|
23
|
+
And I should not see '<\?xml' in '_site/smcat.html'
|
24
|
+
And I should not see '<!DOCTYPE' in '_site/smcat.html'
|
data/features/support/env.rb
CHANGED
@@ -3,12 +3,14 @@
|
|
3
3
|
lib = File.expand_path('../lib', __dir__)
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
5
|
|
6
|
-
|
7
|
-
|
6
|
+
# Don't use coveralls in Github Actions
|
7
|
+
unless ENV['GITHUB_ACTIONS']
|
8
|
+
require 'coveralls'
|
9
|
+
Coveralls.wear!
|
10
|
+
end
|
8
11
|
|
9
|
-
require 'tmpdir'
|
10
12
|
require 'minitest'
|
11
|
-
require '
|
13
|
+
require 'tmpdir'
|
12
14
|
require 'jekyll-diagrams'
|
13
15
|
|
14
16
|
TEST_DIR = File.join(Dir.tmpdir, 'jekyll-diagrams-features')
|
@@ -27,7 +29,11 @@ After do
|
|
27
29
|
end
|
28
30
|
|
29
31
|
def run_jekyll
|
30
|
-
options = Jekyll.configuration(
|
32
|
+
options = Jekyll.configuration(
|
33
|
+
source: TEST_DIR,
|
34
|
+
quiet: true,
|
35
|
+
liquid: { 'error_mode' => 'strict' }
|
36
|
+
)
|
31
37
|
|
32
38
|
Jekyll::Site.new(options).process
|
33
39
|
end
|
data/features/syntrax.feature
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Feature: Syntrax
|
2
2
|
|
3
3
|
|
4
|
-
Scenario:
|
4
|
+
Scenario: Basic Rendering
|
5
5
|
Given I have a file 'syntrax.md' with content:
|
6
6
|
"""
|
7
7
|
---
|
@@ -18,5 +18,4 @@ Feature: Syntrax
|
|
18
18
|
"""
|
19
19
|
When I run jekyll build
|
20
20
|
Then the file '_site/syntrax.html' should exist
|
21
|
-
And I should see 'diagrams syntrax' in '_site/syntrax.html'
|
22
21
|
And I should see svg output in '_site/syntrax.html'
|
data/features/vega.feature
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Feature: Vega
|
2
2
|
|
3
3
|
|
4
|
-
Scenario:
|
4
|
+
Scenario: Basic Vega Rendering
|
5
5
|
Given I have a file 'vega.md' with content:
|
6
6
|
"""
|
7
7
|
---
|
@@ -9,24 +9,36 @@ Feature: Vega
|
|
9
9
|
|
10
10
|
{% vega %}
|
11
11
|
{
|
12
|
-
"": "https://vega.github.io/schema/vega-lite/v4.json",
|
13
|
-
"description": "A simple bar chart with embedded data.",
|
14
12
|
"data": {
|
15
13
|
"values": [
|
16
|
-
{"a": "A", "b": 28}
|
17
|
-
{"a": "D", "b": 91}, {"a": "E", "b": 81}, {"a": "F", "b": 53},
|
18
|
-
{"a": "G", "b": 19}, {"a": "H", "b": 87}, {"a": "I", "b": 52}
|
14
|
+
{"a": "A", "b": 28}
|
19
15
|
]
|
20
16
|
},
|
21
|
-
"mark": "bar"
|
22
|
-
"encoding": {
|
23
|
-
"x": {"field": "a", "type": "ordinal"},
|
24
|
-
"y": {"field": "b", "type": "quantitative"}
|
25
|
-
}
|
17
|
+
"mark": "bar"
|
26
18
|
}
|
27
19
|
{% endvega %}
|
28
20
|
"""
|
29
21
|
When I run jekyll build
|
30
22
|
Then the file '_site/vega.html' should exist
|
31
|
-
And I should see 'diagrams vega' in '_site/vega.html'
|
32
23
|
And I should see svg output in '_site/vega.html'
|
24
|
+
|
25
|
+
Scenario: Basic Vegalite Rendering
|
26
|
+
Given I have a file 'vegalite.md' with content:
|
27
|
+
"""
|
28
|
+
---
|
29
|
+
---
|
30
|
+
|
31
|
+
{% vegalite %}
|
32
|
+
{
|
33
|
+
"data": {
|
34
|
+
"values": [
|
35
|
+
{"a": "A", "b": 28}
|
36
|
+
]
|
37
|
+
},
|
38
|
+
"mark": "bar"
|
39
|
+
}
|
40
|
+
{% endvegalite %}
|
41
|
+
"""
|
42
|
+
When I run jekyll build
|
43
|
+
Then the file '_site/vegalite.html' should exist
|
44
|
+
And I should see svg output in '_site/vegalite.html'
|
data/features/wavedrom.feature
CHANGED
@@ -1,22 +1,16 @@
|
|
1
1
|
Feature: Wavedrom
|
2
2
|
|
3
3
|
|
4
|
-
Scenario:
|
4
|
+
Scenario: Basic Rendering
|
5
5
|
Given I have a file 'wavedrom.md' with content:
|
6
6
|
"""
|
7
7
|
---
|
8
8
|
---
|
9
9
|
|
10
10
|
{% wavedrom %}
|
11
|
-
{signal: [
|
12
|
-
{name: 'clk', wave: 'p.....|...'},
|
13
|
-
{name: 'dat', wave: 'x.345x|=.x', data: ['head', 'body', 'tail', 'data']},
|
14
|
-
{name: 'req', wave: '0.1..0|1.0'},
|
15
|
-
{name: 'ack', wave: '1.....|01.'}
|
16
|
-
]}
|
11
|
+
{signal: [{wave: '.'}]}
|
17
12
|
{% endwavedrom %}
|
18
13
|
"""
|
19
14
|
When I run jekyll build
|
20
15
|
Then the file '_site/wavedrom.html' should exist
|
21
|
-
And I should see 'diagrams wavedrom' in '_site/wavedrom.html'
|
22
16
|
And I should see svg output in '_site/wavedrom.html'
|