jekyll-diagrams 0.9.1 → 0.9.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 +4 -4
- data/.github/workflows/test.yml +83 -0
- data/.gitignore +4 -5
- data/.rubocop.yml +22 -0
- data/.simplecov +5 -0
- data/.travis.yml +48 -1
- data/Dockerfile +14 -12
- data/Gemfile +4 -1
- data/README.md +49 -21
- data/Rakefile +20 -2
- data/features/blockdiag.feature +20 -0
- data/features/graphviz.feature +22 -0
- data/features/mermaid.feature +21 -0
- data/features/nomnoml.feature +36 -0
- data/features/plantuml.feature +24 -0
- data/features/smcat.feature +29 -0
- data/features/step_definitions/jekyll-diagrams.rb +25 -0
- data/features/support/env.rb +33 -0
- data/features/svgbob.feature +22 -0
- data/features/syntrax.feature +22 -0
- data/features/vega.feature +32 -0
- data/features/wavedrom.feature +22 -0
- data/jekyll-diagrams.gemspec +13 -7
- data/lib/jekyll-diagrams.rb +3 -2
- data/lib/jekyll-diagrams/block.rb +5 -4
- data/lib/jekyll-diagrams/blockdiag.rb +9 -7
- data/lib/jekyll-diagrams/erd.rb +9 -6
- data/lib/jekyll-diagrams/graphviz.rb +12 -17
- data/lib/jekyll-diagrams/mermaid.rb +21 -18
- data/lib/jekyll-diagrams/nomnoml.rb +6 -4
- data/lib/jekyll-diagrams/plantuml.rb +8 -4
- data/lib/jekyll-diagrams/smcat.rb +10 -7
- data/lib/jekyll-diagrams/svgbob.rb +6 -4
- data/lib/jekyll-diagrams/syntrax.rb +8 -6
- data/lib/jekyll-diagrams/util.rb +78 -11
- data/lib/jekyll-diagrams/vega.rb +8 -5
- data/lib/jekyll-diagrams/version.rb +4 -2
- data/lib/jekyll-diagrams/wavedrom.rb +6 -4
- data/test/erd_test.rb +22 -0
- data/test/test_helper.rb +4 -7
- data/test/util_test.rb +20 -0
- metadata +54 -11
- data/lib/jekyll-diagrams/renderer.rb +0 -53
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70d7e4b5b99f04cfb2ec1220c4f123948bf4079aac701b914017764d3dcab1cf
|
4
|
+
data.tar.gz: 1ed3c24302bdb6382c27809f3aad1b4b9c061d83843edd09adb107e2c2d26bb0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fba79417016f438fc537b513c70c0885777f4e32b98e89ba9b9668c1d30fc4f8a9ab489819ca9b05265d316bccd8e303e34cf6667634395b70373358db437251
|
7
|
+
data.tar.gz: edbaca323b8ff81769e9c9fedd4dee495a87c5ed8e1af8cb28001b8f4c8b140b32437a3b6014c630dc10d8f44813ee4401244ed7760188a57269e7263142949d
|
@@ -0,0 +1,83 @@
|
|
1
|
+
name: Test
|
2
|
+
|
3
|
+
on:
|
4
|
+
- push
|
5
|
+
- pull_request
|
6
|
+
|
7
|
+
jobs:
|
8
|
+
build:
|
9
|
+
runs-on: ubuntu-18.04
|
10
|
+
|
11
|
+
strategy:
|
12
|
+
matrix:
|
13
|
+
ruby:
|
14
|
+
- 2.5
|
15
|
+
- 2.6
|
16
|
+
- 2.7
|
17
|
+
|
18
|
+
steps:
|
19
|
+
- name: Checkout reposity
|
20
|
+
uses: actions/checkout@v2
|
21
|
+
|
22
|
+
- name: Set up Ruby ${{ matrix.ruby }}
|
23
|
+
uses: actions/setup-ruby@v1
|
24
|
+
with:
|
25
|
+
ruby-version: ${{ matrix.ruby }}
|
26
|
+
|
27
|
+
- name: Install APT stuffs
|
28
|
+
run: |
|
29
|
+
sudo apt-get -qq update
|
30
|
+
sudo apt-get -yqq install cabal-install \
|
31
|
+
cargo \
|
32
|
+
graphviz \
|
33
|
+
default-jre-headless \
|
34
|
+
npm \
|
35
|
+
python3 \
|
36
|
+
python3-pip \
|
37
|
+
python3-setuptools
|
38
|
+
|
39
|
+
# Install packages to "$HOME/.cargo/bin"
|
40
|
+
- name: Install Cargo stuffs
|
41
|
+
run: |
|
42
|
+
cargo install svgbob_cli
|
43
|
+
|
44
|
+
# Install packages to "$HOME/.npm"
|
45
|
+
- name: Install NPM stuffs
|
46
|
+
run: |
|
47
|
+
# Dependencies of mermaid
|
48
|
+
sudo apt-get -yqq install libatk1.0-0 \
|
49
|
+
libatk-bridge2.0-0 \
|
50
|
+
libgtk-3-0 \
|
51
|
+
libx11-xcb1 \
|
52
|
+
libxcomposite1 \
|
53
|
+
libxrandr2 \
|
54
|
+
libxss1
|
55
|
+
npm config set prefix "$HOME/.npm"
|
56
|
+
npm install -g mermaid.cli \
|
57
|
+
nomnoml \
|
58
|
+
state-machine-cat \
|
59
|
+
vega-cli \
|
60
|
+
vega-lite \
|
61
|
+
wavedrom-cli
|
62
|
+
|
63
|
+
# Install packages to "$HOME/.local/bin"
|
64
|
+
- name: Install Pip stuffs
|
65
|
+
run: |
|
66
|
+
# Dependencies of syntrax
|
67
|
+
sudo apt-get -yqq install libpango1.0-dev \
|
68
|
+
libpython3-dev \
|
69
|
+
python3-cairo \
|
70
|
+
python3-gi \
|
71
|
+
python3-gi-cairo
|
72
|
+
pip3 install blockdiag seqdiag actdiag nwdiag syntrax
|
73
|
+
|
74
|
+
- name: Run Test with Rake
|
75
|
+
run: |
|
76
|
+
export PATH="$HOME/.local/bin:$HOME/.npm/bin:$HOME/.cargo/bin:$PATH"
|
77
|
+
bundle install --jobs 4 --retry 3
|
78
|
+
bundle exec rake
|
79
|
+
|
80
|
+
# - name: Coveralls
|
81
|
+
# uses: coverallsapp/github-action@master
|
82
|
+
# with:
|
83
|
+
# github-token: ${{ secrets.GITHUB_TOKEN }}
|
data/.gitignore
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
.
|
3
|
-
|
4
|
-
pkg
|
5
|
-
Gemfile.lock
|
1
|
+
/.bundle
|
2
|
+
/Gemfile.lock
|
3
|
+
/coverage
|
4
|
+
/pkg
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Layout/LineLength:
|
2
|
+
Max: 85
|
3
|
+
|
4
|
+
Metrics/MethodLength:
|
5
|
+
Max: 20
|
6
|
+
|
7
|
+
Naming/FileName:
|
8
|
+
Exclude:
|
9
|
+
- lib/jekyll-diagrams.rb
|
10
|
+
- features/step_definitions/jekyll-diagrams.rb
|
11
|
+
|
12
|
+
Style/Documentation:
|
13
|
+
Enabled: false
|
14
|
+
|
15
|
+
Style/HashEachMethods:
|
16
|
+
Enabled: true
|
17
|
+
|
18
|
+
Style/HashTransformKeys:
|
19
|
+
Enabled: true
|
20
|
+
|
21
|
+
Style/HashTransformValues:
|
22
|
+
Enabled: true
|
data/.simplecov
ADDED
data/.travis.yml
CHANGED
@@ -1,3 +1,50 @@
|
|
1
1
|
language: ruby
|
2
2
|
|
3
|
-
dist: bionic
|
3
|
+
dist: bionic
|
4
|
+
|
5
|
+
cache:
|
6
|
+
- apt
|
7
|
+
- bundler
|
8
|
+
- npm
|
9
|
+
|
10
|
+
rvm:
|
11
|
+
- 2.5
|
12
|
+
- 2.6
|
13
|
+
- 2.7
|
14
|
+
|
15
|
+
addons:
|
16
|
+
apt:
|
17
|
+
update: true
|
18
|
+
packages:
|
19
|
+
- build-essential
|
20
|
+
- git
|
21
|
+
- cabal-install
|
22
|
+
- cargo
|
23
|
+
- default-jre-headless
|
24
|
+
- graphviz
|
25
|
+
- npm
|
26
|
+
- libatk1.0-0
|
27
|
+
- libatk-bridge2.0-0
|
28
|
+
- libgif-dev
|
29
|
+
- libgtk-3-0
|
30
|
+
- libx11-xcb1
|
31
|
+
- libxcomposite1
|
32
|
+
- libxrandr2
|
33
|
+
- libxss1
|
34
|
+
- libpango1.0-dev
|
35
|
+
- libpython3-dev
|
36
|
+
- python3-pip
|
37
|
+
- python3-setuptools
|
38
|
+
- python3-cairo
|
39
|
+
- python3-gi
|
40
|
+
- python3-gi-cairo
|
41
|
+
- ruby-full
|
42
|
+
|
43
|
+
before_install:
|
44
|
+
- sudo cargo install --root /usr/local svgbob_cli
|
45
|
+
- gem update --no-document --system
|
46
|
+
- gem install --no-document bundler
|
47
|
+
- npm install -g --silent mermaid.cli nomnoml state-machine-cat vega-cli vega-lite wavedrom-cli
|
48
|
+
- pip3 install syntrax blockdiag seqdiag actdiag nwdiag
|
49
|
+
|
50
|
+
script: bundle exec rake
|
data/Dockerfile
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
FROM ubuntu:bionic
|
2
2
|
|
3
|
-
RUN
|
4
|
-
apt-get update; \
|
3
|
+
RUN apt-get -qq update && \
|
5
4
|
apt-get install -y --no-install-recommends \
|
6
5
|
build-essential \
|
7
6
|
git \
|
@@ -20,23 +19,22 @@ RUN set -eux; \
|
|
20
19
|
libpango1.0-dev \
|
21
20
|
libpython3-dev \
|
22
21
|
python3-pip \
|
22
|
+
python3-setuptools \
|
23
23
|
python3-cairo \
|
24
24
|
python3-gi \
|
25
|
-
python3-
|
26
|
-
ruby
|
27
|
-
ruby-dev
|
25
|
+
python3-gi-cairo \
|
26
|
+
ruby-full
|
28
27
|
|
29
|
-
RUN
|
30
|
-
|
31
|
-
gem
|
32
|
-
gem install -N bundler; \
|
28
|
+
RUN cargo install --root /usr/local svgbob_cli && \
|
29
|
+
gem update --no-document --system && \
|
30
|
+
gem install --no-document bundler && \
|
33
31
|
npm install -g --silent \
|
34
32
|
mermaid.cli \
|
35
33
|
nomnoml \
|
36
34
|
state-machine-cat \
|
37
35
|
vega-cli \
|
38
36
|
vega-lite \
|
39
|
-
wavedrom-cli
|
37
|
+
wavedrom-cli && \
|
40
38
|
pip3 install \
|
41
39
|
blockdiag \
|
42
40
|
seqdiag \
|
@@ -44,8 +42,12 @@ RUN set -eux; \
|
|
44
42
|
nwdiag \
|
45
43
|
syntrax
|
46
44
|
|
45
|
+
EXPOSE 4000
|
46
|
+
|
47
47
|
WORKDIR /app
|
48
48
|
|
49
|
-
|
49
|
+
COPY . .
|
50
|
+
|
51
|
+
RUN bundle install
|
50
52
|
|
51
|
-
|
53
|
+
RUN bundle exec rake
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,16 +1,20 @@
|
|
1
1
|
# Jekyll Diagrams
|
2
2
|
|
3
3
|
[](https://rubygems.org/gems/jekyll-diagrams)
|
4
|
-
[](https://travis-ci.com/zhustec/jekyll-diagrams)
|
5
4
|
[](https://depfu.com/repos/zhustec/jekyll-diagrams)
|
6
|
-
[](https://github.com/zhustec/jekyll-diagrams/actions?query=workflow%3ATest)
|
6
|
+
[](https://travis-ci.com/zhustec/jekyll-diagrams)
|
7
|
+
[](https://coveralls.io/github/zhustec/jekyll-diagrams?branch=master)
|
8
|
+
[](https://github.com/zhustec/jekyll-diagrams/blob/master/LICENSE)
|
7
9
|
|
8
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.
|
9
11
|
|
10
12
|
**NOTICE:** This plugin render **SVG** format image and directly **embed into html file**, so you don't need to worry about where to store the image. But, please feel free to tell me if you **unlikely** want other image format.
|
11
13
|
|
12
14
|
- [Installation](#installation)
|
13
|
-
- [
|
15
|
+
- [Configurations](#configurations)
|
16
|
+
- [Site Configurations](#site-configurations)
|
17
|
+
- [Page Configurations](#page-configurations)
|
14
18
|
- [Usage](#usage)
|
15
19
|
- [Blockdiag](#blockdiag)
|
16
20
|
- [Erd](#erd)
|
@@ -49,9 +53,11 @@ Finally run:
|
|
49
53
|
$ bundle install
|
50
54
|
```
|
51
55
|
|
52
|
-
##
|
56
|
+
## Configurations
|
57
|
+
|
58
|
+
### Site Configurations
|
53
59
|
|
54
|
-
|
60
|
+
Site configurations can be set in your site's config file under `jekyll-diagrams` key, e.g:
|
55
61
|
|
56
62
|
```yaml
|
57
63
|
jekyll-diagrams:
|
@@ -64,6 +70,27 @@ jekyll-diagrams:
|
|
64
70
|
# and so on
|
65
71
|
```
|
66
72
|
|
73
|
+
### Page Configurations
|
74
|
+
|
75
|
+
You can set configurations in the front matter of each page, this will overwite global config. e.g.
|
76
|
+
|
77
|
+
```text
|
78
|
+
---
|
79
|
+
title: Custom configurations per page
|
80
|
+
|
81
|
+
jekyll-diagrams:
|
82
|
+
graphviz:
|
83
|
+
# configurations for graphviz
|
84
|
+
blockdiag:
|
85
|
+
# configurations for blockdiag
|
86
|
+
syntrax:
|
87
|
+
# configurations for syntrax
|
88
|
+
# and so on
|
89
|
+
---
|
90
|
+
|
91
|
+
# your content
|
92
|
+
```
|
93
|
+
|
67
94
|
## Usage
|
68
95
|
|
69
96
|
### Blockdiag
|
@@ -155,11 +182,11 @@ Person *--1 `Birth Place`
|
|
155
182
|
|
156
183
|
#### Configurations
|
157
184
|
|
158
|
-
| Config | Default | Description
|
159
|
-
| ------------ | ----------- |
|
160
|
-
| `config` | unspecified | Configuration file
|
161
|
-
| `edge` | unspecified | Select one type of edge: compound, noedge, ortho, poly, spline
|
162
|
-
| `dot-entity` | unspecified | When set, output will consist of regular dot tables instead of HTML tables
|
185
|
+
| Config | Default | Description |
|
186
|
+
| ------------ | ----------- | -------------------------------------------------------------------------- |
|
187
|
+
| `config` | unspecified | Configuration file |
|
188
|
+
| `edge` | unspecified | Select one type of edge: compound, noedge, ortho, poly, spline |
|
189
|
+
| `dot-entity` | unspecified | When set, output will consist of regular dot tables instead of HTML tables |
|
163
190
|
|
164
191
|
### Graphviz
|
165
192
|
|
@@ -188,12 +215,13 @@ digraph {
|
|
188
215
|
|
189
216
|
#### Configurations
|
190
217
|
|
191
|
-
| Config | Default | Description
|
192
|
-
| ------------------ | ----------- |
|
193
|
-
| `default_layout` | dot | Set
|
194
|
-
| `graph_attributes` | unspecified | Set default graph
|
195
|
-
| `node_attributes` | unspecified | Set default node
|
196
|
-
| `edge_attributes` | unspecified | Set default edge
|
218
|
+
| Config | Default | Description |
|
219
|
+
| ------------------ | ----------- | ---------------------------- |
|
220
|
+
| `default_layout` | dot | Set layout engine |
|
221
|
+
| `graph_attributes` | unspecified | Set default graph attributes |
|
222
|
+
| `node_attributes` | unspecified | Set default node attributes |
|
223
|
+
| `edge_attributes` | unspecified | Set default edge attributes |
|
224
|
+
| `encoding` | utf-8 | Set default SVG encoding |
|
197
225
|
|
198
226
|
**NOTICE:** attributes can be `String`(when just one attribute), `Array` or `Hash`.
|
199
227
|
|
@@ -225,10 +253,10 @@ sequenceDiagram
|
|
225
253
|
|
226
254
|
| Config | Default | Description |
|
227
255
|
| ----------------- | ------- | ------------------------------------------------------------- |
|
228
|
-
| `theme` | default | Theme of the chart, could be default, forest, dark or neutral |
|
229
256
|
| `width` | 800 | Width of the page |
|
230
257
|
| `height` | 600 | Height of the page |
|
231
258
|
| `backgroundColor` | white | Background color. Example: transparent, red, '#F0F0F0' |
|
259
|
+
| `theme` | default | Theme of the chart, could be default, forest, dark or neutral |
|
232
260
|
|
233
261
|
### Nomnoml
|
234
262
|
|
@@ -325,9 +353,9 @@ initial => "tape player off";
|
|
325
353
|
|
326
354
|
| Config | Default | Description |
|
327
355
|
| ------------ | ---------- | ----------------------------------------------------------------------------------- |
|
328
|
-
| `input-type` | `smcat` | Input type. `smcat
|
329
|
-
| `engine` | `dot` | Layout engine to use. `dot
|
330
|
-
| `direction` | `top-down` | Direction of the state machine diagram. `top-down
|
356
|
+
| `input-type` | `smcat` | Input type. `smcat scxml json` |
|
357
|
+
| `engine` | `dot` | Layout engine to use. `dot circo fdp neato osage twopi` |
|
358
|
+
| `direction` | `top-down` | Direction of the state machine diagram. `top-down bottom-top left-right right-left` |
|
331
359
|
|
332
360
|
### Svgbob
|
333
361
|
|
@@ -466,4 +494,4 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/zhuste
|
|
466
494
|
|
467
495
|
## License
|
468
496
|
|
469
|
-
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
497
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
data/Rakefile
CHANGED
@@ -1,5 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'bundler/gem_tasks'
|
2
|
-
|
4
|
+
|
5
|
+
require 'rake/testtask'
|
3
6
|
|
4
7
|
Rake::TestTask.new(:test) do |t|
|
5
8
|
t.libs << 'test'
|
@@ -7,4 +10,19 @@ Rake::TestTask.new(:test) do |t|
|
|
7
10
|
t.test_files = FileList['test/**/*_test.rb']
|
8
11
|
end
|
9
12
|
|
10
|
-
|
13
|
+
desc 'Run test and show coverage'
|
14
|
+
task :coverage do
|
15
|
+
system 'bundle exec coveralls report'
|
16
|
+
end
|
17
|
+
|
18
|
+
desc 'Run features tests'
|
19
|
+
task :features do
|
20
|
+
system 'bundle exec cucumber --format summary'
|
21
|
+
end
|
22
|
+
|
23
|
+
desc 'Run rubocop'
|
24
|
+
task :rubocop do
|
25
|
+
system 'bundle exec rubocop'
|
26
|
+
end
|
27
|
+
|
28
|
+
task default: %i[test features]
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Feature: Blockdiag
|
2
|
+
|
3
|
+
|
4
|
+
Scenario: Default configuration
|
5
|
+
Given I have a file 'blockdiag.md' with content:
|
6
|
+
"""
|
7
|
+
---
|
8
|
+
---
|
9
|
+
|
10
|
+
{% blockdiag %}
|
11
|
+
blockdiag {
|
12
|
+
A -> B -> C -> D;
|
13
|
+
A -> E -> F -> G;
|
14
|
+
}
|
15
|
+
{% endblockdiag %}
|
16
|
+
"""
|
17
|
+
When I run jekyll build
|
18
|
+
Then the file '_site/blockdiag.html' should exist
|
19
|
+
And I should see 'diagrams blockdiag' in '_site/blockdiag.html'
|
20
|
+
And I should see svg output in '_site/blockdiag.html'
|
@@ -0,0 +1,22 @@
|
|
1
|
+
Feature: Graphviz
|
2
|
+
|
3
|
+
|
4
|
+
Scenario: Default configuration
|
5
|
+
Given I have a file 'graphviz.md' with content:
|
6
|
+
"""
|
7
|
+
---
|
8
|
+
---
|
9
|
+
|
10
|
+
{% graphviz %}
|
11
|
+
digraph {
|
12
|
+
S -> A;
|
13
|
+
S -> B;
|
14
|
+
A -> D;
|
15
|
+
B -> D;
|
16
|
+
}
|
17
|
+
{% endgraphviz %}
|
18
|
+
"""
|
19
|
+
When I run jekyll build
|
20
|
+
Then the file '_site/graphviz.html' should exist
|
21
|
+
And I should see 'diagrams graphviz' in '_site/graphviz.html'
|
22
|
+
And I should see svg output in '_site/graphviz.html'
|