rsyntaxtree 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cce136d3e3db23dd4e606962fbf1abb0d50f8e4a3729a68eaa178eb13b2d1a71
4
- data.tar.gz: 178feb62854ddf6078ead5522e370ecf2b1fa300af52a950f27c5d8437f2ea00
3
+ metadata.gz: 82885cdb8bb5fac82224d762cf2244ad8e5c5400d96ffd2f4857f16ad7293827
4
+ data.tar.gz: 5c00b9970c323030cc0ea9a5e9db35e83bc34ecbe82501e022d2ec1b957b0182
5
5
  SHA512:
6
- metadata.gz: d8145f85ca88e8f1be876ef6ef0eb160827548d41a02b71e5dbdf67c36d6f07c166f58524949178bcf64f26ae40dc6a93ebe2310797c5f39b869528cccae0c53
7
- data.tar.gz: 659d79a0418d939521efed0407569cfd9967ea9f4625a9ca6b0c300a5d6451e8a6a54f87b456478374ee59d9d3f1235eedb5d9c88defa3bbadffe60f40de2569
6
+ metadata.gz: 92e0e77a86d01b0c366c9bfd769349652b6773c61937ddc24e9097fe282e76a90d9de91ee931ee73bb1af49535887385e23d10e2d466a47f22abaa6299d6fcdb
7
+ data.tar.gz: ba0163a1abe6d56c26a82dd5a9e13e85a03f23d5119aed67e32913d99a61e08f1b42889b4b18de3e92add60e64ad52cd2b67451c697d3d2c638b1ab15150146f
data/.tags CHANGED
@@ -108,13 +108,18 @@ iterator= lib/rsyntaxtree/elementlist.rb /^ attr_accessor :elements, :iterato
108
108
  level lib/rsyntaxtree/string_parser.rb /^ attr_accessor :data, :elist, :pos, :id, :level$/;" A class:RSyntaxTree.StringParser
109
109
  level= lib/rsyntaxtree/string_parser.rb /^ attr_accessor :data, :elist, :pos, :id, :level$/;" A class:RSyntaxTree.StringParser
110
110
  line_to_parent lib/rsyntaxtree/svg_graph.rb /^ def line_to_parent(parent, child)$/;" f class:RSyntaxTree.SVGGraph
111
+ line_to_parent lib/rsyntaxtree/svg_graph.rb /^ def line_to_parent(parent, child)$/;" f class:RSyntaxTree
112
+ line_to_parent2 lib/rsyntaxtree/svg_graph.rb /^ def line_to_parent2(parent, child)$/;" f class:RSyntaxTree.SVGGraph
111
113
  make_balance lib/rsyntaxtree/base_graph.rb /^ def make_balance(id = 1)$/;" f class:RSyntaxTree.BaseGraph
112
114
  make_tree lib/rsyntaxtree/string_parser.rb /^ def make_tree(parent)$/;" f class:RSyntaxTree.StringParser
115
+ monoline_to_parent lib/rsyntaxtree/svg_graph.rb /^ def monoline_to_parent(parent, child)$/;" f class:RSyntaxTree.SVGGraph
113
116
  node_centering lib/rsyntaxtree/base_graph.rb /^ def node_centering$/;" f class:RSyntaxTree.BaseGraph
114
117
  parse lib/rsyntaxtree/markup_parser.rb /^ def parse(txt)$/;" f class:Markup
115
118
  parse lib/rsyntaxtree/markup_parser.rb /^ def parse(txt)$/;" f module:Markup
116
119
  parse lib/rsyntaxtree/string_parser.rb /^ def parse$/;" f class:RSyntaxTree.StringParser
117
120
  parse_list lib/rsyntaxtree/base_graph.rb /^ def parse_list$/;" f class:RSyntaxTree.BaseGraph
121
+ polyline_to_parent lib/rsyntaxtree/svg_graph.rb /^ def polyline_to_parent(parent, child)$/;" f class:RSyntaxTree.SVGGraph
122
+ polyline_to_parent lib/rsyntaxtree/svg_graph.rb /^ def polyline_to_parent(parent, child)$/;" f class:RSyntaxTree.SVGGraph.line_to_parent
118
123
  pos lib/rsyntaxtree/string_parser.rb /^ attr_accessor :data, :elist, :pos, :id, :level$/;" A class:RSyntaxTree.StringParser
119
124
  pos= lib/rsyntaxtree/string_parser.rb /^ attr_accessor :data, :elist, :pos, :id, :level$/;" A class:RSyntaxTree.StringParser
120
125
  rsyntaxtree rsyntaxtree.gemspec /^ s.name = "rsyntaxtree"$/;" g
@@ -164,6 +169,9 @@ test_rule_triangle test/markup_parser_test.rb /^ def test_rule_triangle$/;" f c
164
169
  test_rule_underline test/markup_parser_test.rb /^ def test_rule_underline$/;" f
165
170
  test_rule_underline test/markup_parser_test.rb /^ def test_rule_underline$/;" f class:MarkupParserTest
166
171
  triangle_to_parent lib/rsyntaxtree/svg_graph.rb /^ def triangle_to_parent(parent, child)$/;" f class:RSyntaxTree.SVGGraph
172
+ triangle_to_parent lib/rsyntaxtree/svg_graph.rb /^ def triangle_to_parent(parent, child)$/;" f class:RSyntaxTree.SVGGraph.line_to_parent
173
+ triangle_to_parent lib/rsyntaxtree/svg_graph.rb /^ def triangle_to_parent(parent, child)$/;" f class:RSyntaxTree
174
+ triangle_to_parent2 lib/rsyntaxtree/svg_graph.rb /^ def triangle_to_parent2(parent, child)$/;" f class:RSyntaxTree.SVGGraph
167
175
  valid lib/rsyntaxtree/string_parser.rb /^ def self.valid?(data)$/;" F class:RSyntaxTree.StringParser
168
176
  valid? lib/rsyntaxtree/string_parser.rb /^ def self.valid?(data)$/;" S class:RSyntaxTree.StringParser
169
177
  width lib/rsyntaxtree/svg_graph.rb /^ attr_accessor :width, :height$/;" A class:RSyntaxTree.SVGGraph
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # 🌲 RSyntaxTree: yet another syntax tree generator in Ruby
1
+ # 🌲 RSyntaxTree
2
2
 
3
3
  **RSyntaxTree** is a graphical syntax tree generator written in the Ruby programming language inspired by [phpSyntaxTree](http://ironcreek.net/phpsyntaxtree/).
4
4
 
@@ -17,50 +17,57 @@ For the web interface, see Usage section of <https://yohasebe.com/rsyntaxtree>.
17
17
  For the command-line interface, type `$rsyntaxtree -h` after installation. Here's what you get:
18
18
 
19
19
  ```text
20
- RSyntaxTree, (linguistic) syntax tree generator written in Ruby.
20
+ SyntaxTree, (linguistic) syntax tree generator written in Ruby.
21
21
 
22
22
  Usage:
23
23
  rsyntaxtree [options] "[VP [VP [V set] [NP bracket notation]] [ADV here]]"
24
24
  where [options] are:
25
- -o, --outdir=<s> Output directory (default: ./)
26
- -f, --format=<s> Output format: png, pdf, or svg (default: png)
27
- -l, --leafstyle=<s> visual style of tree leaves: auto, triangle, bar, or nothing (default: auto)
28
- -n, --fontstyle=<s> Font style: sans, serif, cjk, math (default: sans)
29
- -t, --font=<s> Path to a ttf font used to generate tree (optional)
30
- -s, --fontsize=<i> Size: 8-26 (default: 16)
31
- -c, --color=<s> Color text and bars: on or off (default: on)
32
- -y, --symmetrize=<s> Generate symmetrical, balanced tree: on or off (default: on)
33
- -m, --margin=<i> Margin: 0-120 (default: 0)
34
- -v, --vheight=<f> Connector Height: 0.5-2.0 (default: 1.0)
35
- -e, --version Print version and exit
36
- -h, --help Show this message
25
+ -o, --outdir=<s> Output directory (default: ./)
26
+ -f, --format=<s> Output format: png, gif, jpg, pdf, or svg (default: png)
27
+ -l, --leafstyle=<s> visual style of tree leaves: auto, triangle, bar, or nothing (default: auto)
28
+ -n, --fontstyle=<s> Font style (available when ttf font is specified): sans, serif, cjk (default: sans)
29
+ -t, --font=<s> Path to a ttf font used to generate tree (optional)
30
+ -s, --fontsize=<i> Size: 8-26 (default: 16)
31
+ -m, --margin=<i> Margin: 0-10 (default: 1)
32
+ -v, --vheight=<f> Connector Height: 0.5-5.0 (default: 2.0)
33
+ -c, --color=<s> Color text and bars: on or off (default: on)
34
+ -y, --symmetrize=<s> Generate radically symmetrical, balanced tree: on or off (default: off)
35
+ -r, --transparent=<s> Make background transparent: on or off (default: off)
36
+ -p, --polyline=<s> draw polyline connectors: on or off (default: off)
37
+ -e, --version Print version and exit
38
+ -h, --help Show this message```
37
39
  ```
38
40
 
39
- ### Tips
40
-
41
- Every branch or leaf of a tree must belong to a node. To create a node, place a label right next to the opening bracket. Arbitrary number of branches can follow with a preceding space.
42
-
43
- There are several modes in which the connectors between terminal nodes and their leaves are drawn differently (auto, triangle, bar, and nothing). In auto mode, a triangle is used if the leaf contains one or more spaces inside (i.e. if it&#8217;s a phrase), but if it contains no spaces (i.e. if it is just a word), a straight bar will be drawn instead (unless the leaf contains a "^" symbol at the end which makes it a single-word phrase).
44
-
45
- You can put a subscript to any node by putting the _ character between the main label and the subscript. For example, NP_TOP will be rendered as NP<sub>TOP</sub>. Or you can select the &#8220;Auto subscript&#8221; option so that nodes of the same label will be automatically numbered. (e.g. NP<sub>1</sub>, NP<sub>2</sub>)</p>
46
-
47
- See https://yohasebe.com/rsyntaxtree for more detailed info about the syntax.
41
+ See [the documentation](https://yohasebe.com/rsyntaxtree/#documentation) for more detailed info about the syntax.
48
42
 
49
43
  ### Example
50
44
 
51
- Bracket notation (auto-subscript-on):
45
+ **Input text**
52
46
 
53
47
  ```text
54
- [S [NP RSyntaxTree^][VP [V generates][NP [Adj multilingual] [NP syntax trees]]]]
48
+ [S
49
+ [NP |R|<>SyntaxTree]
50
+ [VP
51
+ [V generates]
52
+ [NP
53
+ [Adj #\+multilingual\
54
+ \+beautiful]
55
+ [NP syntax\
56
+ trees]
57
+ ]
58
+ ]
59
+ ]
55
60
  ```
56
61
 
57
- Resulting PNG
62
+ **Output (PNG or SVG)**
63
+
64
+ <img src='https://github.com/yohasebe/rsyntaxtree/blob/master/img/sample.png?raw=true' width='600' />
58
65
 
59
- ![RSyntaxTree generates multilingual syntax trees](https://i.gyazo.com/6bb68b0bdb35d7a10c4a11d5788d484f.png)
66
+ See [RSyntaxTree Examples](https://yohasebe.notion.site/yohasebe/RSyntaxTree-Examples-006baf3ac6e84e7193b538a5bf02ad07) for more examples
60
67
 
61
68
  ### Development
62
69
 
63
- For the latest updates and downloads please visit http://github.com/yohasebe/rsyntaxtree
70
+ For the latest updates and downloads please visit <http://github.com/yohasebe/rsyntaxtree>
64
71
 
65
72
  ### Author
66
73
 
data/bin/rsyntaxtree CHANGED
@@ -38,6 +38,8 @@ EOS
38
38
  :default => "off"
39
39
  opt :transparent, "Make background transparent: on or off",
40
40
  :default => "off"
41
+ opt :polyline, "draw polyline connectors: on or off",
42
+ :default => "off"
41
43
  end
42
44
 
43
45
  Optimist::die :outdir, "must be an exsting directory path" unless FileTest::directory?(opts[:outdir])
@@ -51,6 +53,7 @@ Optimist::die :symmetrize, "must be either on or off" unless /\A(on|off|true|fal
51
53
  Optimist::die :margin, "must be in the range of 0-10" if opts[:margin] < 0 || opts[:margin] > 10
52
54
  Optimist::die :vheight, "must be in the range of 0.5-5.0" if opts[:vheight] < 0.5 || opts[:vheight] > 5.0
53
55
  Optimist::die :transparent, "must be either on or off" unless /\A(on|off|true|false)\z/ =~ opts[:transparent]
56
+ Optimist::die :polyline, "must be either on or off" unless /\A(on|off|true|false)\z/ =~ opts[:polyline]
54
57
 
55
58
  string_opts = {}
56
59
  opts.each do |key, value|
@@ -88,6 +91,7 @@ rescue RSTError => e
88
91
  puts e
89
92
  exit
90
93
  rescue => e
94
+ p e
91
95
  puts "Error: something unexpected occurred"
92
96
  exit
93
97
  end
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/img/sample.png ADDED
Binary file
data/img/sample.svg ADDED
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg width="1211.119140625" height="941.0" viewBox="-40, -40, 1251.119140625, 981.0" version="1.1" xmlns="http://www.w3.org/2000/svg">
4
+ <defs>
5
+ <marker id="arrow" markerUnits="strokeWidth" markerWidth="7.823437500000001" markerHeight="7.823437500000001" viewBox="0 0 7.823437500000001 7.823437500000001" refX="3.9117187500000004" refY="0">
6
+ <polyline fill="none" stroke="purple" stroke-width="1" points="0,7.823437500000001,3.9117187500000004,0,7.823437500000001,7.823437500000001" />
7
+ </marker>
8
+ </defs>
9
+ <rect x="-40" y="-40" width="1251.119140625" height="981.0" stroke="none" fill="white" />"
10
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 40px;' x='418.73779296875' y='70.0'><tspan x='418.73779296875' y='70.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S</tspan></text>
11
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 40px;' x='136.2080078125' y='254.0'><tspan x='136.2080078125' y='254.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">NP</tspan></text>
12
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 40px;' x='19.55859375' y='438.0'><tspan x='33.81640625' y='438.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">R</tspan><tspan x='90.857421875' y='438.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">SyntaxTree</tspan></text>
13
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 40px;' x='670.267578125' y='254.0'><tspan x='670.267578125' y='254.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">VP</tspan></text>
14
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 40px;' x='465.091796875' y='438.0'><tspan x='465.091796875' y='438.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">V</tspan></text>
15
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 40px;' x='386.091796875' y='622.0'><tspan x='386.091796875' y='622.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">generates</tspan></text>
16
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 40px;' x='885.443359375' y='438.0'><tspan x='885.443359375' y='438.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">NP</tspan></text>
17
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 40px;' x='745.326171875' y='622.0'><tspan x='745.326171875' y='622.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">Adj</tspan></text>
18
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 40px;' x='649.326171875' y='806.0'><tspan x='649.326171875' y='806.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">+multilingual</tspan><tspan x='649.326171875' y='861.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">+beautiful</tspan></text>
19
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 40px;' x='1020.560546875' y='622.0'><tspan x='1020.560546875' y='622.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">NP</tspan></text>
20
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 40px;' x='984.560546875' y='806.0'><tspan x='984.560546875' y='806.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">syntax</tspan><tspan x='1001.560546875' y='861.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">trees</tspan></text>
21
+ <line style='stroke:black; stroke-width:2;' x1='163.7080078125' y1='184.0' x2='429.73779296875' y2='93.0' />
22
+ <line style='stroke:black; stroke-width:2;' x1='695.767578125' y1='184.0' x2='429.73779296875' y2='93.0' />
23
+ <polygon style='fill: none; stroke: black; stroke-width:2;' points='19.55859375 368.0 307.857421875 368.0 163.7080078125 277.0' />
24
+ <line style='stroke:black; stroke-width:2;' x1='478.591796875' y1='368.0' x2='695.767578125' y2='277.0' />
25
+ <line style='stroke:black; stroke-width:2;' x1='912.943359375' y1='368.0' x2='695.767578125' y2='277.0' />
26
+ <line style='stroke:black; stroke-width:2;' x1='478.591796875' y1='552.0' x2='478.591796875' y2='461.0' />
27
+ <line style='stroke:black; stroke-width:2;' x1='777.826171875' y1='552.0' x2='912.943359375' y2='461.0' />
28
+ <line style='stroke:black; stroke-width:2;' x1='1048.060546875' y1='552.0' x2='912.943359375' y2='461.0' />
29
+ <line style='stroke:black; stroke-width:2;' x1='777.826171875' y1='736.0' x2='777.826171875' y2='645.0' />
30
+ <line style='stroke:black; stroke-width:2;' x1='1048.060546875' y1='736.0' x2='1048.060546875' y2='645.0' />
31
+ <rect style='fill: none; stroke: green; stroke-width:2;' x='19.55859375' y='396.0' width='55.0' height='53.0' />
32
+
33
+ <line x1='639.546875' y1='743.0' x2='649.326171875' y2='743.0' style='fill: none; stroke: green; stroke-width:2' />
34
+ <line x1='639.546875' y1='743.0' x2='639.546875' y2='891.0' style='fill: none; stroke: green; stroke-width:2' />
35
+ <line x1='639.546875' y1='891.0' x2='649.326171875' y2='891.0' style='fill: none; stroke: green; stroke-width:2' />
36
+ <line x1='916.10546875' y1='743.0' x2='906.326171875' y2='743.0' style='fill: none; stroke: green; stroke-width:2' />
37
+ <line x1='916.10546875' y1='743.0' x2='916.10546875' y2='891.0' style='fill: none; stroke: green; stroke-width:2' />
38
+ <line x1='916.10546875' y1='891.0' x2='906.326171875' y2='891.0' style='fill: none; stroke: green; stroke-width:2' /></svg>
@@ -26,7 +26,10 @@ module RSyntaxTree
26
26
  @color = params[:color]
27
27
  @fontstyle = params[:fontstyle]
28
28
  @margin = params[:margin].to_i
29
+ @polyline = params[:polyline]
29
30
  @line_styles = "<line style='stroke:black; stroke-width:#{FONT_SCALING};' x1='X1' y1='Y1' x2='X2' y2='Y2' />\n"
31
+ @polyline_styles = "<polyline style='stroke:black; stroke-width:#{FONT_SCALING}; fill:none;'
32
+ points='CHIX CHIY MIDX1 MIDY1 MIDX2 MIDY2 PARX PARY' />\n"
30
33
  @polygon_styles = "<polygon style='fill: none; stroke: black; stroke-width:#{FONT_SCALING};' points='X1 Y1 X2 Y2 X3 Y3' />\n"
31
34
  @text_styles = "<text white-space='pre' alignment-baseline='text-top' style='fill: COLOR; font-size: fontsize' x='X_VALUE' y='Y_VALUE'>CONTENT</text>\n"
32
35
  @tree_data = String.new
@@ -475,15 +478,38 @@ EOD
475
478
  return
476
479
  end
477
480
 
478
- x1 = child.horizontal_indent + child.content_width / 2
479
- y1 = child.vertical_indent + $height_connector_to_text / 2
480
- x2 = parent.horizontal_indent + parent.content_width / 2
481
- y2 = parent.vertical_indent + parent.content_height + $height_connector_to_text
481
+ if @polyline
482
+ chi_x = child.horizontal_indent + child.content_width / 2
483
+ chi_y = child.vertical_indent + $height_connector_to_text / 2
484
+
485
+ par_x = parent.horizontal_indent + parent.content_width / 2
486
+ par_y = parent.vertical_indent + parent.content_height + $height_connector_to_text
487
+
488
+ mid_x1 = chi_x
489
+ mid_y1 = par_y + (chi_y - par_y) / 2
482
490
 
483
- line_data = @line_styles.sub(/X1/, x1.to_s)
484
- line_data = line_data.sub(/Y1/, y1.to_s)
485
- line_data = line_data.sub(/X2/, x2.to_s)
486
- @tree_data += line_data.sub(/Y2/, y2.to_s)
491
+ mid_x2 = par_x
492
+ mid_y2 = mid_y1
493
+
494
+ @tree_data += @polyline_styles.sub(/CHIX/, chi_x.to_s)
495
+ .sub(/CHIY/, chi_y.to_s)
496
+ .sub(/MIDX1/, mid_x1.to_s)
497
+ .sub(/MIDY1/, mid_y1.to_s)
498
+ .sub(/MIDX2/, mid_x2.to_s)
499
+ .sub(/MIDY2/, mid_y2.to_s)
500
+ .sub(/PARX/, par_x.to_s)
501
+ .sub(/PARY/, par_y.to_s)
502
+ else
503
+ x1 = child.horizontal_indent + child.content_width / 2
504
+ y1 = child.vertical_indent + $height_connector_to_text / 2
505
+ x2 = parent.horizontal_indent + parent.content_width / 2
506
+ y2 = parent.vertical_indent + parent.content_height + $height_connector_to_text
507
+
508
+ line_data = @line_styles.sub(/X1/, x1.to_s)
509
+ line_data = line_data.sub(/Y1/, y1.to_s)
510
+ line_data = line_data.sub(/X2/, x2.to_s)
511
+ @tree_data += line_data.sub(/Y2/, y2.to_s)
512
+ end
487
513
  end
488
514
 
489
515
  # Draw a triangle between child/parent elements
@@ -1,4 +1,4 @@
1
1
  module RSyntaxTree
2
- VERSION = "1.0.5"
2
+ VERSION = "1.0.6"
3
3
  end
4
4
 
data/lib/rsyntaxtree.rb CHANGED
@@ -55,7 +55,7 @@ module RSyntaxTree
55
55
  .gsub('-CABRACKET-', '>')
56
56
  new_params[key] = data
57
57
 
58
- when :symmetrize, :color, :transparent
58
+ when :symmetrize, :color, :transparent, :polyline
59
59
  new_params[key] = value && (value != "off" && value != "false") ? true : false
60
60
  when :fontsize
61
61
  new_params[key] = value.to_i * FONT_SCALING
@@ -109,6 +109,7 @@ module RSyntaxTree
109
109
  :data => "",
110
110
  :margin => 0,
111
111
  :vheight => 1.0,
112
+ :polyline => false,
112
113
  }
113
114
 
114
115
  @params.merge! new_params
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsyntaxtree
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoichiro Hasebe
@@ -108,6 +108,21 @@ files:
108
108
  - fonts/OpenMoji-Black.ttf
109
109
  - fonts/OpenMoji-Color.ttf
110
110
  - fonts/wqy-zenhei.ttf
111
+ - img/elements/circle.png
112
+ - img/elements/circle_abc.png
113
+ - img/elements/circle_bold.png
114
+ - img/elements/circle_hatched.png
115
+ - img/elements/circle_one.png
116
+ - img/elements/connector.png
117
+ - img/elements/connector_bold.png
118
+ - img/elements/square.png
119
+ - img/elements/square_abc.png
120
+ - img/elements/square_bold.png
121
+ - img/elements/square_hatched.png
122
+ - img/elements/square_one.png
123
+ - img/rsyntaxtree.png
124
+ - img/sample.png
125
+ - img/sample.svg
111
126
  - lib/rsyntaxtree.rb
112
127
  - lib/rsyntaxtree/base_graph.rb
113
128
  - lib/rsyntaxtree/element.rb
@@ -118,8 +133,6 @@ files:
118
133
  - lib/rsyntaxtree/utils.rb
119
134
  - lib/rsyntaxtree/version.rb
120
135
  - rsyntaxtree.gemspec
121
- - syntree.png
122
- - syntree.svg
123
136
  - test/markup_parser_test.rb
124
137
  homepage: http://github.com/yohasebe/rsyntaxtree
125
138
  licenses:
data/syntree.png DELETED
Binary file
data/syntree.svg DELETED
@@ -1,24 +0,0 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
- <svg width="722.4" height="471.2" viewBox="-20, -20, 742.4, 491.2" version="1.1" xmlns="http://www.w3.org/2000/svg">
4
- <defs>
5
- <marker id="arrow" markerUnits="strokeWidth" markerWidth="12.160000000000002" markerHeight="12.160000000000002" viewBox="0 0 12.160000000000002 12.160000000000002" refX="6.080000000000001" refY="0">
6
- <polyline fill="none" stroke="purple" stroke-width="1" points="0,12.160000000000002,6.080000000000001,0,12.160000000000002,12.160000000000002" />
7
- </marker>
8
- <pattern id="hatchBlack" x="10" y="10" width="10" height="10" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
9
- <line x1="0" y="0" x2="0" y2="10" stroke="black" stroke-width="4"></line>
10
- </pattern>
11
- <pattern id="hatchForNode" x="10" y="10" width="10" height="10" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
12
- <line x1="0" y="0" x2="0" y2="10" stroke="blue" stroke-width="4"></line>
13
- </pattern>
14
- <pattern id="hatchForLeaf" x="10" y="10" width="10" height="10" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
15
- <line x1="0" y="0" x2="0" y2="10" stroke="green" stroke-width="4"></line>
16
- </pattern>
17
- </defs>
18
- <rect x="-20" y="-20" width="742.4" height="491.2" stroke="none" fill="white" />"
19
- <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='319.4' y='132.0'><tspan x='319.4' y='132.0' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">%X</tspan>
20
- </text>
21
- <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 64px;' x='30.399999999999977' y='431.2'><tspan x='30.399999999999977' y='431.2' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">%Yxxxxxxxxxxxxxxxxx</tspan>
22
- </text>
23
- <line style='stroke:black; stroke-width:2;' x1='356.4' y1='321.2' x2='356.4' y2='187.0' />
24
- </svg>