rsyntaxtree 1.3.0 → 1.3.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/Dockerfile +2 -2
- data/README.md +24 -4
- data/Rakefile +43 -9
- data/bin/rsyntaxtree +1 -1
- data/docs/_examples/016.md +1 -1
- data/docs/_examples/053.md +34 -0
- data/docs/_layouts/default.html +1 -1
- data/docs/assets/img/005.png +0 -0
- data/docs/assets/img/011.png +0 -0
- data/docs/assets/img/012.png +0 -0
- data/docs/assets/img/013.png +0 -0
- data/docs/assets/img/026.png +0 -0
- data/docs/assets/img/027.png +0 -0
- data/docs/assets/img/033.png +0 -0
- data/docs/assets/img/040.png +0 -0
- data/docs/assets/img/053.png +0 -0
- data/docs/assets/svg/005.svg +17 -17
- data/docs/assets/svg/011.svg +19 -19
- data/docs/assets/svg/012.svg +17 -17
- data/docs/assets/svg/013.svg +76 -76
- data/docs/assets/svg/026.svg +15 -15
- data/docs/assets/svg/027.svg +46 -46
- data/docs/assets/svg/040.svg +63 -63
- data/docs/assets/svg/053.svg +81 -0
- data/lib/rsyntaxtree/base_graph.rb +1 -1
- data/lib/rsyntaxtree/element.rb +16 -10
- data/lib/rsyntaxtree/elementlist.rb +1 -1
- data/lib/rsyntaxtree/markup_parser.rb +2 -1
- data/lib/rsyntaxtree/string_parser.rb +35 -27
- data/lib/rsyntaxtree/svg_graph.rb +2 -2
- data/lib/rsyntaxtree/utils.rb +4 -2
- data/lib/rsyntaxtree/version.rb +1 -1
- data/lib/rsyntaxtree.rb +16 -15
- data/test/markup_parser_test.rb +7 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b1d293f1051661467a4b39531bb7868073256fc6a40e60affa4dee8daa45187f
|
4
|
+
data.tar.gz: 79ececb16b1b9394f5027ccec1f4dcba9d4cd541fe8829276eb9c18d5a377c24
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd4e3ceb0efc58a58b87b4273525aa9456e6050c5b7dfe41bcc0b790018240d2e1c1a0f34a42c45f78faf6913441f41a57aef30f60daab8ce7cfc24182a8b3ce
|
7
|
+
data.tar.gz: 76b44cc2c343a43714ab9cfe52c3a04c524fc81296e901796e0b2aa7b8205b73de4b2a88001d269a5fa834a9267e62e3d2a034b2fbde7d7ca471be90d41524ae
|
data/Dockerfile
CHANGED
data/README.md
CHANGED
@@ -10,6 +10,7 @@ Documentation is currently available in the following languages:
|
|
10
10
|
- [日本語ドキュメント](https://yohasebe.github.io/rsyntaxtree/documentation_ja)
|
11
11
|
|
12
12
|
- [Example Gallery](https://yohasebe.github.io/rsyntaxtree/examples)
|
13
|
+
|
13
14
|
## Web Interface
|
14
15
|
|
15
16
|
<img src='https://github.com/yohasebe/rsyntaxtree/blob/master/img/rsyntaxtree-web-screenshot.png?raw=true' width='700px'/>
|
@@ -56,9 +57,27 @@ See [RSyntaxTree Example Gallery](https://yohasebe.github.io/rsyntaxtree/example
|
|
56
57
|
|
57
58
|
## Installation
|
58
59
|
|
59
|
-
|
60
|
+
```
|
61
|
+
gem install rsyntaxtree
|
62
|
+
```
|
63
|
+
|
64
|
+
### macOS Installation Notice
|
65
|
+
|
66
|
+
**Important for macOS users:** If you are installing the RSyntaxTree gem directly on macOS, you might encounter build errors for some native extensions (specifically for `gobject-introspection`, `cairo-gobject`, and `gio2`). These errors occur due to macOS linker requirements for dynamic symbol resolution. To work around this issue, please run the following commands in your terminal **before** installing RSyntaxTree:
|
67
|
+
|
68
|
+
```bash
|
69
|
+
gem install gobject-introspection -- --with-ldflags="-Wl,-undefined,dynamic_lookup"
|
70
|
+
gem install cairo-gobject -- --with-ldflags="-Wl,-undefined,dynamic_lookup"
|
71
|
+
gem install gio2 -- --with-ldflags="-Wl,-undefined,dynamic_lookup"
|
72
|
+
```
|
73
|
+
|
74
|
+
After executing these commands, you can install RSyntaxTree normally:
|
75
|
+
|
76
|
+
```bash
|
77
|
+
gem install rsyntaxtree
|
78
|
+
```
|
60
79
|
|
61
|
-
|
80
|
+
Alternatively, if you prefer a smoother installation process, consider using the [Docker image](https://hub.docker.com/r/yohasebe/rsyntaxtree) or the [web interface](https://yohasebe.com/rsyntaxtree).
|
62
81
|
|
63
82
|
## Usage
|
64
83
|
|
@@ -74,6 +93,7 @@ Usage:
|
|
74
93
|
2) rsyntaxtree [options] "/path/to/text/file"
|
75
94
|
where [options] are:
|
76
95
|
-o, --outdir=<s> Output directory (default: ./)
|
96
|
+
-u, --outfilename=<s> Output file base name (default: syntree)
|
77
97
|
-f, --format=<s> Output format: png, gif, jpg, pdf, or svg (default: png)
|
78
98
|
-l, --leafstyle=<s> visual style of tree leaves: auto, triangle, bar, or nothing (default: auto)
|
79
99
|
-n, --fontstyle=<s> Font style (available when ttf font is specified): sans, serif, cjk, mono (default: sans)
|
@@ -97,11 +117,11 @@ See the [documentation](https://yohasebe.github.io/rsyntaxtree/documentation) fo
|
|
97
117
|
Please use the following BibTeX entry when referring to RSyntaxTree.
|
98
118
|
|
99
119
|
```
|
100
|
-
@misc{
|
120
|
+
@misc{rsyntaxtree_2024,
|
101
121
|
author = {Yoichiro Hasebe},
|
102
122
|
title = {RSyntaxTree: A graphical syntax tree image generator}
|
103
123
|
url = {https://yohasebe.com/rsyntaxtree},
|
104
|
-
year = {
|
124
|
+
year = {2024}
|
105
125
|
}
|
106
126
|
```
|
107
127
|
|
data/Rakefile
CHANGED
@@ -9,24 +9,58 @@ require_relative 'lib/rsyntaxtree/utils'
|
|
9
9
|
# task default: "test"
|
10
10
|
|
11
11
|
Rake::TestTask.new do |task|
|
12
|
-
|
13
|
-
|
12
|
+
task.pattern = "test/*_test.rb"
|
13
|
+
task.warning = false
|
14
14
|
end
|
15
15
|
|
16
16
|
desc "Generate SVG and PNG example images locally"
|
17
17
|
task :generate do
|
18
|
-
|
18
|
+
require_relative "dev/generate_examples"
|
19
19
|
end
|
20
20
|
|
21
21
|
desc "Docker image Build"
|
22
22
|
task :docker_build do
|
23
|
-
|
23
|
+
`docker build ./ -t rsyntaxtree_devel`
|
24
24
|
end
|
25
25
|
|
26
|
-
desc "Generate SVG and PNG example images using Docker
|
26
|
+
desc "Generate SVG and PNG example images using Docker image"
|
27
27
|
task :docker_generate do
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
docpath = File.expand_path(File.join(__dir__, "docs"))
|
29
|
+
`docker build ./ -t rsyntaxtree_devel`
|
30
|
+
`docker run --rm -v #{docpath}:/rsyntaxtree/hostdocs rsyntaxtree_devel ruby /rsyntaxtree/dev/generate_examples.rb /rsyntaxtree/hostdocs`
|
31
|
+
`cat #{docpath}/generate_examples.log`
|
32
|
+
end
|
33
|
+
|
34
|
+
# Add new task for macOS environment configuration
|
35
|
+
|
36
|
+
desc "Configure Bundler build options for macOS"
|
37
|
+
task :setup_macos do
|
38
|
+
require "rbconfig"
|
39
|
+
host_os = RbConfig::CONFIG['host_os']
|
40
|
+
|
41
|
+
# Check if the host OS is macOS (Darwin)
|
42
|
+
|
43
|
+
if host_os =~ /darwin/
|
44
|
+
puts "macOS detected. Setting up build options for native extensions..."
|
45
|
+
|
46
|
+
gems_with_options = {
|
47
|
+
"gobject-introspection" => '--with-ldflags=-Wl,-undefined,dynamic_lookup',
|
48
|
+
"cairo-gobject" => '--with-ldflags=-Wl,-undefined,dynamic_lookup',
|
49
|
+
"gio2" => '--with-ldflags=-Wl,-undefined,dynamic_lookup'
|
50
|
+
}
|
51
|
+
|
52
|
+
# Configure each gem with the necessary ldflags option using Bundler config command
|
53
|
+
|
54
|
+
gems_with_options.each do |gem_name, flags|
|
55
|
+
command = "bundle config build.#{gem_name} \"#{flags}\""
|
56
|
+
puts "Executing: #{command}"
|
57
|
+
unless system(command)
|
58
|
+
abort("Failed to execute command: #{command}")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
puts "macOS setup complete. Please run 'bundle install' after this."
|
63
|
+
else
|
64
|
+
puts "This setup task is intended for macOS environments. Current OS: #{host_os}"
|
65
|
+
end
|
32
66
|
end
|
data/bin/rsyntaxtree
CHANGED
@@ -7,7 +7,7 @@ require_relative '../lib/rsyntaxtree'
|
|
7
7
|
require_relative '../lib/rsyntaxtree/utils'
|
8
8
|
|
9
9
|
opts = Optimist.options do
|
10
|
-
version "RSyntaxTree #{RSyntaxTree::VERSION} (c)
|
10
|
+
version "RSyntaxTree #{RSyntaxTree::VERSION} (c) 2024 Yoichiro Hasebe"
|
11
11
|
banner <<~BANNER
|
12
12
|
RSyntaxTree, (linguistic) syntax tree generator written in Ruby.
|
13
13
|
|
data/docs/_examples/016.md
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
---
|
2
|
+
name: "053"
|
3
|
+
color: "on"
|
4
|
+
caption: "Escaping square brackets"
|
5
|
+
category: "Miscellaneous"
|
6
|
+
polyline: "off"
|
7
|
+
symmetrization: "off"
|
8
|
+
connector: "auto"
|
9
|
+
connector_height: "3.0"
|
10
|
+
linewidth: "1"
|
11
|
+
hide_default_connectors: "off"
|
12
|
+
font: "Noto Serif"
|
13
|
+
---
|
14
|
+
```
|
15
|
+
[expr
|
16
|
+
[id x]
|
17
|
+
[suffix
|
18
|
+
\[
|
19
|
+
[id 2 ]
|
20
|
+
\]
|
21
|
+
[suffix
|
22
|
+
\[
|
23
|
+
[id 3 ]
|
24
|
+
\]
|
25
|
+
[suffix
|
26
|
+
\[
|
27
|
+
[id 4 ]
|
28
|
+
\]
|
29
|
+
]
|
30
|
+
]
|
31
|
+
]
|
32
|
+
]
|
33
|
+
|
34
|
+
```
|
data/docs/_layouts/default.html
CHANGED
@@ -35,7 +35,7 @@
|
|
35
35
|
{{ content }}
|
36
36
|
|
37
37
|
<footer class="site-footer" style='border-top-width: 0; text-align: center;'>
|
38
|
-
<div> <span class="site-footer-credits">© Yoichiro HASEBE 2009-
|
38
|
+
<div> <span class="site-footer-credits">© Yoichiro HASEBE 2009-2024</span></div>
|
39
39
|
{% include social_media_links.html %}
|
40
40
|
</footer>
|
41
41
|
</main>
|
data/docs/assets/img/005.png
CHANGED
Binary file
|
data/docs/assets/img/011.png
CHANGED
Binary file
|
data/docs/assets/img/012.png
CHANGED
Binary file
|
data/docs/assets/img/013.png
CHANGED
Binary file
|
data/docs/assets/img/026.png
CHANGED
Binary file
|
data/docs/assets/img/027.png
CHANGED
Binary file
|
data/docs/assets/img/033.png
CHANGED
Binary file
|
data/docs/assets/img/040.png
CHANGED
Binary file
|
Binary file
|
data/docs/assets/svg/005.svg
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<?xml version="1.0" standalone="no"?>
|
2
2
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3
|
-
<svg width="
|
3
|
+
<svg width="472.0" height="545.75" viewBox="-16.8, 0, 488.8, 557.0" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
4
4
|
<defs>
|
5
5
|
<marker id="arrow" markerUnits="userSpaceOnUse" viewBox="0 0 10 10" refX="10" refY="5" markerWidth="16.8" markerHeight="16.8" orient="auto">
|
6
6
|
<path d="M 0 0 L 10 5 L 0 10" fill="black"/>
|
@@ -24,27 +24,27 @@
|
|
24
24
|
<line x1="0" y="0" x2="0" y2="10" stroke="black" stroke-width="4"></line>
|
25
25
|
</pattern>
|
26
26
|
</defs>
|
27
|
-
<rect x="-16.8" y="0" width="
|
28
|
-
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='
|
29
|
-
<tspan x='
|
27
|
+
<rect x="-16.8" y="0" width="488.8" height="557.0" stroke="none" fill="white" />"
|
28
|
+
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='140.6625' y='67.5'><tspan x='140.6625' y='67.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">X</tspan>
|
29
|
+
<tspan x='162.6625' y='57.25' style="font-size: 70%; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">max</tspan>
|
30
30
|
</text>
|
31
|
-
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='16.
|
31
|
+
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='16.799999999999997' y='218.0'><tspan x='16.799999999999997' y='218.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">[Y−X]</tspan>
|
32
32
|
</text>
|
33
|
-
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='
|
33
|
+
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='270.525' y='218.0'><tspan x='270.525' y='218.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">YP</tspan>
|
34
34
|
</text>
|
35
|
-
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='
|
36
|
-
<tspan x='
|
35
|
+
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='168.0' y='368.5'><tspan x='168.0' y='368.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">Spec</tspan>
|
36
|
+
<tspan x='241.0' y='372.5' style="font-size: 70%; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">1</tspan>
|
37
37
|
</text>
|
38
|
-
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='
|
38
|
+
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='358.54999999999995' y='368.5'><tspan x='358.54999999999995' y='368.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">Y'</tspan>
|
39
39
|
</text>
|
40
|
-
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='
|
40
|
+
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='320.20000000000005' y='519.0'><tspan x='320.20000000000005' y='519.0' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">t</tspan>
|
41
41
|
</text>
|
42
|
-
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='
|
42
|
+
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='399.4' y='519.0'><tspan x='399.4' y='519.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">ZP</tspan>
|
43
43
|
</text>
|
44
|
-
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='
|
45
|
-
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='
|
46
|
-
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='
|
47
|
-
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='
|
48
|
-
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='
|
49
|
-
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='
|
44
|
+
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='58.8' y1='161.75' x2='175.1625' y2='95.625' />
|
45
|
+
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='291.525' y1='161.75' x2='175.1625' y2='95.625' />
|
46
|
+
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='210.5' y1='312.25' x2='291.525' y2='246.125' />
|
47
|
+
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='372.54999999999995' y1='312.25' x2='291.525' y2='246.125' />
|
48
|
+
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='326.20000000000005' y1='462.75' x2='372.54999999999995' y2='396.625' />
|
49
|
+
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='418.9' y1='462.75' x2='372.54999999999995' y2='396.625' />
|
50
50
|
</svg>
|
data/docs/assets/svg/011.svg
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<?xml version="1.0" standalone="no"?>
|
2
2
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3
|
-
<svg width="
|
3
|
+
<svg width="577.0" height="614.25" viewBox="-16.8, 0, 593.8, 625.5" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
4
4
|
<defs>
|
5
5
|
<marker id="arrow" markerUnits="userSpaceOnUse" viewBox="0 0 10 10" refX="10" refY="5" markerWidth="16.8" markerHeight="16.8" orient="auto">
|
6
6
|
<path d="M 0 0 L 10 5 L 0 10" fill="black"/>
|
@@ -24,35 +24,35 @@
|
|
24
24
|
<line x1="0" y="0" x2="0" y2="10" stroke="black" stroke-width="4"></line>
|
25
25
|
</pattern>
|
26
26
|
</defs>
|
27
|
-
<rect x="-16.8" y="0" width="
|
28
|
-
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='
|
29
|
-
<tspan x='
|
27
|
+
<rect x="-16.8" y="0" width="593.8" height="625.5" stroke="none" fill="white" />"
|
28
|
+
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='266.47499999999997' y='67.5'><tspan x='266.47499999999997' y='67.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S</tspan>
|
29
|
+
<tspan x='269.72499999999997' y='112.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif"><</tspan>
|
30
30
|
</text>
|
31
31
|
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='100.14999999999998' y='283.5'><tspan x='100.14999999999998' y='283.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">NP</tspan>
|
32
32
|
<tspan x='116.39999999999998' y='328.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">></tspan>
|
33
33
|
</text>
|
34
|
-
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='16.
|
35
|
-
<tspan x='31.
|
34
|
+
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='16.799999999999983' y='499.5'><tspan x='16.799999999999983' y='499.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">NP/N</tspan>
|
35
|
+
<tspan x='31.299999999999983' y='589.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">the</tspan>
|
36
36
|
</text>
|
37
37
|
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='159.99999999999997' y='499.5'><tspan x='176.49999999999997' y='499.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">N</tspan>
|
38
38
|
<tspan x='159.99999999999997' y='589.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">dog</tspan>
|
39
39
|
</text>
|
40
|
-
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='
|
41
|
-
<tspan x='
|
40
|
+
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='398.29999999999995' y='283.5'><tspan x='398.29999999999995' y='283.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S\NP</tspan>
|
41
|
+
<tspan x='423.04999999999995' y='328.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">></tspan>
|
42
42
|
</text>
|
43
43
|
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='284.19999999999993' y='499.5'><tspan x='284.19999999999993' y='499.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">(S\NP)\NP</tspan>
|
44
|
-
<tspan x='
|
44
|
+
<tspan x='326.69999999999993' y='589.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">bit</tspan>
|
45
45
|
</text>
|
46
|
-
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='
|
47
|
-
<tspan x='
|
46
|
+
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='476.4' y='499.5'><tspan x='488.4' y='499.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">NP</tspan>
|
47
|
+
<tspan x='476.4' y='589.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">John</tspan>
|
48
48
|
</text>
|
49
|
-
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='121.64999999999998' y1='227.25' x2='
|
50
|
-
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='
|
51
|
-
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='54.
|
49
|
+
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='121.64999999999998' y1='227.25' x2='274.97499999999997' y2='140.625' />
|
50
|
+
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='428.29999999999995' y1='227.25' x2='274.97499999999997' y2='140.625' />
|
51
|
+
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='54.79999999999998' y1='443.25' x2='121.64999999999998' y2='356.625' />
|
52
52
|
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='188.49999999999997' y1='443.25' x2='121.64999999999998' y2='356.625' />
|
53
|
-
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='
|
54
|
-
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='
|
55
|
-
<line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="16.
|
53
|
+
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='346.69999999999993' y1='443.25' x2='428.29999999999995' y2='356.625' />
|
54
|
+
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='509.9' y1='443.25' x2='428.29999999999995' y2='356.625' />
|
55
|
+
<line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="16.799999999999983" y1="533.25" x2="92.79999999999998" y2="533.25"></line>
|
56
56
|
<line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="159.99999999999997" y1="533.25" x2="216.99999999999997" y2="533.25"></line>
|
57
|
-
<line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="284.19999999999993" y1="533.25" x2="
|
58
|
-
<line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="
|
57
|
+
<line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="284.19999999999993" y1="533.25" x2="409.19999999999993" y2="533.25"></line>
|
58
|
+
<line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="476.4" y1="533.25" x2="543.4" y2="533.25"></line></svg>
|
data/docs/assets/svg/012.svg
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<?xml version="1.0" standalone="no"?>
|
2
2
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3
|
-
<svg width="
|
3
|
+
<svg width="585.9999999999999" height="1046.25" viewBox="-16.8, 0, 602.7999999999998, 1057.5" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
4
4
|
<defs>
|
5
5
|
<marker id="arrow" markerUnits="userSpaceOnUse" viewBox="0 0 10 10" refX="10" refY="5" markerWidth="16.8" markerHeight="16.8" orient="auto">
|
6
6
|
<path d="M 0 0 L 10 5 L 0 10" fill="black"/>
|
@@ -24,15 +24,15 @@
|
|
24
24
|
<line x1="0" y="0" x2="0" y2="10" stroke="black" stroke-width="4"></line>
|
25
25
|
</pattern>
|
26
26
|
</defs>
|
27
|
-
<rect x="-16.8" y="0" width="
|
28
|
-
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='
|
29
|
-
<tspan x='
|
27
|
+
<rect x="-16.8" y="0" width="602.7999999999998" height="1057.5" stroke="none" fill="white" />"
|
28
|
+
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='369.16249999999997' y='67.5'><tspan x='369.16249999999997' y='67.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S</tspan>
|
29
|
+
<tspan x='372.41249999999997' y='112.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">></tspan>
|
30
30
|
</text>
|
31
|
-
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='
|
32
|
-
<tspan x='
|
33
|
-
<tspan x='
|
31
|
+
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='201.92499999999995' y='283.5'><tspan x='201.92499999999995' y='283.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S/NP</tspan>
|
32
|
+
<tspan x='222.17499999999995' y='328.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">B</tspan>
|
33
|
+
<tspan x='243.17499999999995' y='332.5' style="font-size: 70%; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">></tspan>
|
34
34
|
</text>
|
35
|
-
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='
|
35
|
+
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='67.64999999999998' y='499.5'><tspan x='67.64999999999998' y='499.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S/(S\NP)</tspan>
|
36
36
|
<tspan x='107.89999999999998' y='544.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">T</tspan>
|
37
37
|
<tspan x='127.89999999999998' y='548.5' style="font-size: 70%; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">></tspan>
|
38
38
|
</text>
|
@@ -46,19 +46,19 @@
|
|
46
46
|
<tspan x='160.0' y='1021.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">dog</tspan>
|
47
47
|
</text>
|
48
48
|
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='284.2' y='499.5'><tspan x='284.2' y='499.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">(S\NP)/NP</tspan>
|
49
|
-
<tspan x='
|
49
|
+
<tspan x='331.2' y='589.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">bit</tspan>
|
50
50
|
</text>
|
51
|
-
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='
|
52
|
-
<tspan x='
|
51
|
+
<text white-space='pre' alignment-baseline='text-top' style='fill: black; storoke-width: 0; font-size: 32px;' x='485.4' y='283.5'><tspan x='497.4' y='283.5' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">NP</tspan>
|
52
|
+
<tspan x='485.4' y='373.5' style="font-style: italic; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">John</tspan>
|
53
53
|
</text>
|
54
|
-
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='
|
55
|
-
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='
|
56
|
-
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='121.64999999999998' y1='443.25' x2='
|
57
|
-
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='
|
54
|
+
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='236.42499999999998' y1='227.25' x2='377.66249999999997' y2='140.625' />
|
55
|
+
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='518.9' y1='227.25' x2='377.66249999999997' y2='140.625' />
|
56
|
+
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='121.64999999999998' y1='443.25' x2='236.42499999999998' y2='356.625' />
|
57
|
+
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='351.2' y1='443.25' x2='236.42499999999998' y2='356.625' />
|
58
58
|
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='121.64999999999998' y1='659.25' x2='121.64999999999998' y2='572.625' />
|
59
59
|
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='54.80000000000001' y1='875.25' x2='121.64999999999998' y2='788.625' />
|
60
60
|
<line style='fill: none; stroke:black; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;' x1='188.5' y1='875.25' x2='121.64999999999998' y2='788.625' />
|
61
61
|
<line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="16.80000000000001" y1="965.25" x2="92.80000000000001" y2="965.25"></line>
|
62
62
|
<line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="160.0" y1="965.25" x2="217.0" y2="965.25"></line>
|
63
|
-
<line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="284.2" y1="533.25" x2="
|
64
|
-
<line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="
|
63
|
+
<line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="284.2" y1="533.25" x2="418.2" y2="533.25"></line>
|
64
|
+
<line style="stroke:black; fill:none; stroke-linecap:round; stroke-width:2; " x1="485.4" y1="317.25" x2="552.4" y2="317.25"></line></svg>
|