org-parse 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  ---
2
- :patch: 1
2
+ :minor: 1
3
+ :patch: 2
3
4
  :build:
4
5
  :major: 0
5
- :minor: 1
@@ -34,8 +34,9 @@ begin
34
34
  puts options_parser
35
35
  else
36
36
  data = IO.read(ARGV[0])
37
-
38
- parser = OrgParse::StructParser.new(data, File.basename(ARGV[0], '.*'))
37
+ opts = {}
38
+ opts[:default_title] = File.basename(ARGV[0], '.*')
39
+ parser = OrgParse::StructParser.new(data, opts)
39
40
  root = parser.parse
40
41
  if options[:format] == :html
41
42
  visitor = OrgParse::HtmlVisitor.new(root, options[:template])
@@ -7,7 +7,7 @@ lang="en" xml:lang="en">
7
7
  <title>OrgParse</title>
8
8
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
9
9
  <meta name="generator" content="Org-mode"/>
10
- <meta name="generated" content="2010-03-10 11:09:20 JST"/>
10
+ <meta name="generated" content="2010-03-24 10:38:50 JST"/>
11
11
  <meta name="author" content="Kensei Nakamura"/>
12
12
  <meta name="description" content=""/>
13
13
  <meta name="keywords" content=""/>
@@ -35,6 +35,7 @@ lang="en" xml:lang="en">
35
35
  dt { font-weight: bold; }
36
36
  div.figure { padding: 0.5em; }
37
37
  div.figure p { text-align: center; }
38
+ textarea { overflow-x: auto; }
38
39
  .linenr { font-size:smaller }
39
40
  .code-highlighted {background-color:#ffff00;}
40
41
  .org-info-js_info-navigation { border-style:none; }
@@ -77,17 +78,31 @@ lang="en" xml:lang="en">
77
78
  <h2>Table of Contents</h2>
78
79
  <div id="text-table-of-contents">
79
80
  <ul>
80
- <li><a href="#sec-1">1 これは何か? </a></li>
81
- <li><a href="#sec-2">2 何故作ったか。 </a></li>
82
- <li><a href="#sec-3">3 構成 </a>
81
+ <li><a href="#sec-1">1 これは何か? </a>
83
82
  <ul>
84
- <li><a href="#sec-3.1">3.1 概要 </a></li>
83
+ <li><a href="#sec-1.1">1.1 何故作ったか。 </a></li>
85
84
  </ul>
86
85
  </li>
87
- <li><a href="#sec-4">4 使い方 </a>
86
+ <li><a href="#sec-2">2 構成 </a>
88
87
  <ul>
89
- <li><a href="#sec-4.1">4.1 org-parse コマンド </a></li>
90
- <li><a href="#sec-4.2">4.2 org-parse ライブラリ </a></li>
88
+ <li><a href="#sec-2.1">2.1 概要 </a></li>
89
+ </ul>
90
+ </li>
91
+ <li><a href="#sec-3">3 使い方 </a>
92
+ <ul>
93
+ <li><a href="#sec-3.1">3.1 org-parse コマンド </a></li>
94
+ <li><a href="#sec-3.2">3.2 org-parse ライブラリ </a></li>
95
+ </ul>
96
+ </li>
97
+ <li><a href="#sec-4">4 MEMO </a>
98
+ <ul>
99
+ <li><a href="#sec-4.1">4.1 オプション類の扱い </a>
100
+ <ul>
101
+ <li><a href="#sec-4.1.1">4.1.1 プログラム内でのオプションの記憶場所 </a></li>
102
+ <li><a href="#sec-4.1.2">4.1.2 オプションの指定方法 </a></li>
103
+ <li><a href="#sec-4.1.3">4.1.3 オプションの優先順位 </a></li>
104
+ </ul>
105
+ </li>
91
106
  </ul>
92
107
  </li>
93
108
  </ul>
@@ -99,13 +114,12 @@ lang="en" xml:lang="en">
99
114
  <div class="outline-text-2" id="text-1">
100
115
 
101
116
  <p><a href="http://orgmode.org">Org-Mode</a> で書かれた文書を他のフォーマットに変換するためのライブラリである。
102
- </p></div>
103
-
117
+ </p>
104
118
  </div>
105
119
 
106
- <div id="outline-container-2" class="outline-2">
107
- <h2 id="sec-2"><span class="section-number-2">2</span> 何故作ったか。 </h2>
108
- <div class="outline-text-2" id="text-2">
120
+ <div id="outline-container-1.1" class="outline-3">
121
+ <h3 id="sec-1.1"><span class="section-number-3">1.1</span> 何故作ったか。 </h3>
122
+ <div class="outline-text-3" id="text-1.1">
109
123
 
110
124
  <p>直接の動機は、Redmine の文書やWikiに、Org-Modeで書いた文書を入れたかったから。
111
125
  長文になると、textileで書くのは骨が折れる。Org-Mode のアウトライン操作は快適である。
@@ -113,45 +127,50 @@ lang="en" xml:lang="en">
113
127
  <p>
114
128
  この用途には<a href="http://orgmode.org/worg/org-tutorials/org-ruby.php">Org-ruby</a> が使えそうだけど、日本語の textile 文書との相性が悪かった。
115
129
  Org-rubyに手を入れるか自分用を作るか迷ったのだが、Racc の勉強を兼ねて一から作ることにした。
130
+ </p>
131
+ <p>
132
+ が、構文エラーを出さない方針にしてみると、Racc 等の構文解析ライブラリは使いにくかった。
133
+ プログラミング言語じゃないから、あまりガチガチにすると使いにくいし、悩ましい所である。
116
134
  </p></div>
135
+ </div>
117
136
 
118
137
  </div>
119
138
 
120
- <div id="outline-container-3" class="outline-2">
121
- <h2 id="sec-3"><span class="section-number-2">3</span> 構成 </h2>
122
- <div class="outline-text-2" id="text-3">
139
+ <div id="outline-container-2" class="outline-2">
140
+ <h2 id="sec-2"><span class="section-number-2">2</span> 構成 </h2>
141
+ <div class="outline-text-2" id="text-2">
123
142
 
124
143
 
125
144
  </div>
126
145
 
127
- <div id="outline-container-3.1" class="outline-3">
128
- <h3 id="sec-3.1"><span class="section-number-3">3.1</span> 概要 </h3>
129
- <div class="outline-text-3" id="text-3.1">
146
+ <div id="outline-container-2.1" class="outline-3">
147
+ <h3 id="sec-2.1"><span class="section-number-3">2.1</span> 概要 </h3>
148
+ <div class="outline-text-3" id="text-2.1">
130
149
 
131
150
  <p>org-file を、スキャナー、パーサーを通して、構文木を作成する。
132
151
  出来上がった構文木から、HTMLや、textile 等のフォーマットの文書を構築する。
133
152
  </p>
134
153
  <p>
135
- <img src="images/org-parse-struct_1ffae50f0c5eb867f9418df6800f40a5cc3d1751.png" alt="images/org-parse-struct_1ffae50f0c5eb867f9418df6800f40a5cc3d1751.png" />
154
+ <img src="images/org-parse-struct_ca4f70a7189eddf1f60e8486f7d289b294cf8df3.png" alt="images/org-parse-struct_ca4f70a7189eddf1f60e8486f7d289b294cf8df3.png" />
136
155
  </p>
137
156
  <p>
138
157
  RDtool の構成と同じ様な形式である。
139
- visitor の部分を置き換えることで、様々なフォーマットへの対応を行う予定である。
158
+ visitor の部分を置き換えることで、様々なフォーマットへ変換出来るようになる(予定)。
140
159
  </p></div>
141
160
  </div>
142
161
 
143
162
  </div>
144
163
 
145
- <div id="outline-container-4" class="outline-2">
146
- <h2 id="sec-4"><span class="section-number-2">4</span> 使い方 </h2>
147
- <div class="outline-text-2" id="text-4">
164
+ <div id="outline-container-3" class="outline-2">
165
+ <h2 id="sec-3"><span class="section-number-2">3</span> 使い方 </h2>
166
+ <div class="outline-text-2" id="text-3">
148
167
 
149
168
 
150
169
  </div>
151
170
 
152
- <div id="outline-container-4.1" class="outline-3">
153
- <h3 id="sec-4.1"><span class="section-number-3">4.1</span> org-parse コマンド </h3>
154
- <div class="outline-text-3" id="text-4.1">
171
+ <div id="outline-container-3.1" class="outline-3">
172
+ <h3 id="sec-3.1"><span class="section-number-3">3.1</span> org-parse コマンド </h3>
173
+ <div class="outline-text-3" id="text-3.1">
155
174
 
156
175
 
157
176
 
@@ -167,9 +186,9 @@ visitor の部分を置き換えることで、様々なフォーマットへの
167
186
 
168
187
  </div>
169
188
 
170
- <div id="outline-container-4.2" class="outline-3">
171
- <h3 id="sec-4.2"><span class="section-number-3">4.2</span> org-parse ライブラリ </h3>
172
- <div class="outline-text-3" id="text-4.2">
189
+ <div id="outline-container-3.2" class="outline-3">
190
+ <h3 id="sec-3.2"><span class="section-number-3">3.2</span> org-parse ライブラリ </h3>
191
+ <div class="outline-text-3" id="text-3.2">
173
192
 
174
193
  <p>以下の様な感じ。
175
194
  </p>
@@ -188,6 +207,76 @@ puts visitor.build
188
207
  </pre>
189
208
 
190
209
 
210
+ </div>
211
+ </div>
212
+
213
+ </div>
214
+
215
+ <div id="outline-container-4" class="outline-2">
216
+ <h2 id="sec-4"><span class="section-number-2">4</span> MEMO </h2>
217
+ <div class="outline-text-2" id="text-4">
218
+
219
+ <p>以下は、これからの修正のための覚書
220
+ </p>
221
+ </div>
222
+
223
+ <div id="outline-container-4.1" class="outline-3">
224
+ <h3 id="sec-4.1"><span class="section-number-3">4.1</span> オプション類の扱い </h3>
225
+ <div class="outline-text-3" id="text-4.1">
226
+
227
+
228
+ </div>
229
+
230
+ <div id="outline-container-4.1.1" class="outline-4">
231
+ <h4 id="sec-4.1.1"><span class="section-number-4">4.1.1</span> プログラム内でのオプションの記憶場所 </h4>
232
+ <div class="outline-text-4" id="text-4.1.1">
233
+
234
+ <p>オプションや、セクション番号等の情報は、各Nodeに持たせる。
235
+ つまり、ビジターで、コンテキストやオプション類の判定を行わないで済む様にする。
236
+ </p><ul>
237
+ <li>
238
+ セクション番号を、Section Node に持たせる
239
+ </li>
240
+ <li>
241
+ Verse、Example 等は、各 BlockNode 配下のnode 自体が知っている
242
+ </li>
243
+ </ul>
244
+ </div>
245
+
246
+ </div>
247
+
248
+ <div id="outline-container-4.1.2" class="outline-4">
249
+ <h4 id="sec-4.1.2"><span class="section-number-4">4.1.2</span> オプションの指定方法 </h4>
250
+ <div class="outline-text-4" id="text-4.1.2">
251
+
252
+ <p>コマンドラインで指定。
253
+ コンフィグファイルを作る?(~/.org-parse-rc)
254
+ 文書内での指定を最優先する方が正しいか?
255
+ <a href="../examples/dot.org-parse-rc">../examples/dot.org-parse-rc</a>
256
+ </p></div>
257
+
258
+ </div>
259
+
260
+ <div id="outline-container-4.1.3" class="outline-4">
261
+ <h4 id="sec-4.1.3"><span class="section-number-4">4.1.3</span> オプションの優先順位 </h4>
262
+ <div class="outline-text-4" id="text-4.1.3">
263
+
264
+ <ul>
265
+ <li>
266
+ デフォルト設定
267
+ </li>
268
+ <li>
269
+ .opt-parse
270
+ </li>
271
+ <li>
272
+ コマンドラインオプション
273
+ </li>
274
+ <li>
275
+ ソースファイル内の指定
276
+
277
+ </li>
278
+ </ul>
279
+ </div>
191
280
  </div>
192
281
  </div>
193
282
  </div>
@@ -195,8 +284,8 @@ puts visitor.build
195
284
  <p class="author"> Author: Kensei Nakamura
196
285
  <a href="mailto:kensei@dalmore.artifarm.com">&lt;kensei@dalmore.artifarm.com&gt;</a>
197
286
  </p>
198
- <p class="date"> Date: 2010-03-10 11:09:20 JST</p>
199
- <p class="creator">HTML generated by org-mode 6.34c in emacs 23</p>
287
+ <p class="date"> Date: 2010-03-24 10:38:50 JST</p>
288
+ <p class="creator">HTML generated by org-mode 6.34trans in emacs 23</p>
200
289
  </div>
201
290
  </div>
202
291
  </body>
@@ -2,7 +2,7 @@
2
2
  module OrgParse
3
3
 
4
4
  # :stopdoc:
5
- VERSION = '0.0.2'
5
+ VERSION = '0.1.2'
6
6
  LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
7
7
  PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
8
8
  # :startdoc:
@@ -234,9 +234,10 @@ module OrgParse
234
234
 
235
235
  # BLOCK の情報を保持
236
236
  class BlockNode < Node
237
- attr_reader :indent, :block_name, :syntax, :syntax_theme
237
+ attr_reader :indent, :block_name, :syntax, :syntax_theme, :filename, :type
238
238
  def initialize(vals, children)
239
239
  @block_name = vals[0].upcase
240
+ @line = vals[1]
240
241
  @indent = vals[2]
241
242
  @syntax = ''
242
243
  @syntax_theme = ''
@@ -254,6 +255,15 @@ module OrgParse
254
255
  elsif vals[1] =~ /SRC\s*(.+)\s*$/i
255
256
  @syntax = $1.downcase
256
257
  end
258
+ when 'DOT'
259
+ set_to_descendant :set_src
260
+ if vals[1] =~ /DOT\s+(.+)\s+-T(.*)$/
261
+ @filename = $1
262
+ @type = $2
263
+ else
264
+ @block_name = 'SRC'
265
+ @syntax = 'dot'
266
+ end
257
267
  when 'HTML'
258
268
  set_to_descendant :set_html
259
269
  end
@@ -22,8 +22,8 @@ module OrgParse
22
22
  include InlineUtils
23
23
 
24
24
  # コンストラクタ
25
- def initialize(src, title = '(non title)')
26
- @scanner = StructScanner.new(src, title)
25
+ def initialize(src, opts)
26
+ @scanner = StructScanner.new(src, opts)
27
27
  @variables = []
28
28
  @yydebug = true
29
29
  set_struct_parser self
@@ -24,8 +24,8 @@ module OrgParse
24
24
  # コンストラクタ
25
25
  # [_src_] ソース文字列(または、文字列の配列)
26
26
  # ソース文字列は、1行単位の配列として @srcに保存する
27
- # [_title_] skip:t の場合にタイトルとして使われる
28
- def initialize(src, title)
27
+ # [_opts_] skip:t の場合にタイトルとして使われる
28
+ def initialize(src, opts)
29
29
  @src = (src.is_a? Array) ? src : src.to_a
30
30
  @line_idx = 0
31
31
  @outline_level = 0
@@ -38,13 +38,15 @@ module OrgParse
38
38
  :email => nil,
39
39
  :creator => GENERATOR, :timestamp => true,
40
40
  :title => nil, :text => [], :language => 'ja', :charset => 'utf-8',
41
- :default_title => title, :style => '', :uv => true,
41
+ :default_title => '(no title)', :style => '', :uv => true,
42
+ :dot_path => ''
42
43
  }
44
+ opts.each {|k, v| @options[k] = v}
43
45
  read_options
44
- opt = YAML.dump @options
45
- File.open('dot.rc2', "w") {|f|
46
- f.write opt
47
- }
46
+ # opt = YAML.dump @options
47
+ # File.open('dot.rc2', "w") {|f|
48
+ # f.write opt
49
+ # }
48
50
  # p @options
49
51
  end
50
52
 
@@ -196,7 +198,7 @@ module OrgParse
196
198
  @token_que << [:DOCUMENT_START, @options]
197
199
  while @line_idx < @src.size
198
200
  line = @src[@line_idx]
199
- if example_flag && line !~ /^\s*#\+end_(example|html|src)/i
201
+ if example_flag && line !~ /^\s*#\+end_(example|html|src|dot)/i
200
202
  @token_que << [:TEXTLINE, [line, get_indent(line)]]
201
203
  @line_idx += 1
202
204
  next
@@ -240,7 +242,7 @@ module OrgParse
240
242
  block_name = $1.upcase
241
243
  exit_nests line
242
244
  @token_que << [:BLOCK_START, [block_name, line, get_indent(line)]]
243
- example_flag = true if ['EXAMPLE', 'HTML', 'SRC'].include? block_name.upcase
245
+ example_flag = true if ['EXAMPLE', 'HTML', 'SRC', 'DOT'].include? block_name.upcase
244
246
  when /^\s*#\+END_([A-Z0-9_]+)/i # BLOCK
245
247
  block_name = $1
246
248
  exit_nests line
@@ -85,7 +85,10 @@ lang="<%= @language %>" xml:lang="<%= @language %>">
85
85
 
86
86
  <%= @before_text %>
87
87
 
88
- <%= table_of_contents %>
88
+ <div id="table-of-contents">
89
+ <h2>Table of Contents</h2>
90
+ <%= table_of_contents %>
91
+ </div>
89
92
 
90
93
  <%= @body %>
91
94
 
@@ -2,6 +2,24 @@
2
2
  require 'rubygems'
3
3
  require 'erb'
4
4
  require 'uv'
5
+ require 'graphviz'
6
+
7
+ #
8
+ # 文字列を受け取ってパースする関数を追加
9
+ #
10
+ class GraphViz
11
+ class Parser
12
+ def self.parse_str(str, *hOpts, &block)
13
+ parser = DotParser.new()
14
+ tree = parser.parse(str)
15
+ graph = tree.eval( GraphViz::Parser::Context.new(), hOpts )
16
+ yield( graph ) if( block and graph.nil? == false )
17
+ return graph
18
+ end
19
+ end
20
+ end
21
+
22
+
5
23
 
6
24
  module OrgParse
7
25
 
@@ -129,20 +147,19 @@ module OrgParse
129
147
  toc += "</ul>\n"
130
148
  return '' if toc == "<ul>\n</ul>\n"
131
149
  ret =<<"EOS"
132
- <div id="table-of-contents">
133
- <h2>Table of Contents</h2>
134
150
  <div id="text-table-of-contents">
135
151
  #{toc}
136
152
  </div>
137
- </div>
138
153
  EOS
139
154
  end
140
155
 
141
156
  def toc_out(node)
142
157
  curr_level = node.headline.level
143
158
  idx_no = node.section_no
159
+ idx_label = node.section_no + ' '
160
+ idx_label = '' unless @options[:num]
144
161
  str = toc_headline node.headline
145
- ret = %Q|<li><a href="#sec-#{idx_no}">#{idx_no} #{str}</a>|
162
+ ret = %Q|<li><a href="#sec-#{idx_no}">#{idx_label}#{str}</a>|
146
163
  has_child = false
147
164
  node.children.each {|node|
148
165
  if node.kind == :SECTION
@@ -200,7 +217,11 @@ EOS
200
217
  def headline(node)
201
218
  level = node.level+1
202
219
  index_str = node.parent.section_no
203
- %Q|<h#{level} id="sec-#{index_str}"><span class="section-number-#{level}">#{index_str}</span> #{exec_children(node).chomp} </h#{level}>|
220
+ if @options[:num]
221
+ %Q|<h#{level} id="sec-#{index_str}"><span class="section-number-#{level}">#{index_str}</span> #{exec_children(node).chomp} </h#{level}>|
222
+ else
223
+ %Q|<h#{level} id="sec-#{index_str}">#{exec_children(node).chomp} </h#{level}>|
224
+ end
204
225
  end
205
226
 
206
227
  # paragraph
@@ -296,6 +317,17 @@ EOS
296
317
  %Q|#{indent}<blockquote>\n#{body.chomp}\n#{indent}</blockquote>\n|
297
318
  end
298
319
 
320
+ def graphviz(node)
321
+ text = exec_children(node)
322
+ g = GraphViz::Parser.parse_str(text, {})
323
+ fname = node.filename
324
+ fname = File.join(@options[:dot_path], node.filename) unless @options[:dot_path].empty?
325
+ g.output(node.type => fname)
326
+ ub = ''
327
+ ub = @options[:dot_url_base] if @options[:dot_url_base]
328
+ %Q|<img src="#{ub + node.filename}" />|
329
+ end
330
+
299
331
  def blocks(node)
300
332
  case node.block_name
301
333
  when 'VERSE'
@@ -306,6 +338,8 @@ EOS
306
338
  blockquote node
307
339
  when 'HTML'
308
340
  html_quote node
341
+ when 'DOT'
342
+ graphviz node
309
343
  when 'COMMENT'
310
344
  ''
311
345
  when 'SRC'
@@ -353,7 +387,7 @@ EOS
353
387
  if node.uri =~ @image_file_reg
354
388
  image_tag(node.uri, a_attr+img_attr)
355
389
  else
356
- %Q|<a href="#{node.uri.sub(/^file:/,'')}"#{a_attr+img_attr}>node.uri</a>|
390
+ %Q|<a href="#{node.uri.sub(/^file:/,'')}"#{a_attr+img_attr}>#{node.uri}</a>|
357
391
  end
358
392
  else
359
393
  if desc =~ @image_file_reg
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{org-parse}
8
- s.version = "0.1.1"
8
+ s.version = "0.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["knb"]
12
- s.date = %q{2010-03-23}
12
+ s.date = %q{2010-03-24}
13
13
  s.description = %q{This gem contains libraries for parsing org-mode files and build html or textile format file}
14
14
  s.email = %q{knb@artif.org}
15
15
  s.executables = ["org-parse", "org-test"]
@@ -29,6 +29,7 @@ Gem::Specification.new do |s|
29
29
  "bin/org-parse",
30
30
  "bin/org-test",
31
31
  "doc/images/org-parse-struct_1ffae50f0c5eb867f9418df6800f40a5cc3d1751.png",
32
+ "doc/images/org-parse-struct_ca4f70a7189eddf1f60e8486f7d289b294cf8df3.png",
32
33
  "doc/org-parse.html",
33
34
  "doc/org-parse.org",
34
35
  "doc/struct.dot",
@@ -90,7 +91,7 @@ Gem::Specification.new do |s|
90
91
  s.homepage = %q{http://github.com/knb/org-parse}
91
92
  s.rdoc_options = ["--charset=UTF-8"]
92
93
  s.require_paths = ["lib"]
93
- s.rubygems_version = %q{1.3.5}
94
+ s.rubygems_version = %q{1.3.6}
94
95
  s.summary = %q{parse and convert Org-Mode file}
95
96
  s.test_files = [
96
97
  "test/test_org-parse.rb",
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: org-parse
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 2
9
+ version: 0.1.2
5
10
  platform: ruby
6
11
  authors:
7
12
  - knb
@@ -9,19 +14,21 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-03-23 00:00:00 +09:00
17
+ date: 2010-03-24 00:00:00 +09:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: ultraviolet
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
23
29
  version: "0"
24
- version:
30
+ type: :development
31
+ version_requirements: *id001
25
32
  description: This gem contains libraries for parsing org-mode files and build html or textile format file
26
33
  email: knb@artif.org
27
34
  executables:
@@ -44,6 +51,7 @@ files:
44
51
  - bin/org-parse
45
52
  - bin/org-test
46
53
  - doc/images/org-parse-struct_1ffae50f0c5eb867f9418df6800f40a5cc3d1751.png
54
+ - doc/images/org-parse-struct_ca4f70a7189eddf1f60e8486f7d289b294cf8df3.png
47
55
  - doc/org-parse.html
48
56
  - doc/org-parse.org
49
57
  - doc/struct.dot
@@ -114,18 +122,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
114
122
  requirements:
115
123
  - - ">="
116
124
  - !ruby/object:Gem::Version
125
+ segments:
126
+ - 0
117
127
  version: "0"
118
- version:
119
128
  required_rubygems_version: !ruby/object:Gem::Requirement
120
129
  requirements:
121
130
  - - ">="
122
131
  - !ruby/object:Gem::Version
132
+ segments:
133
+ - 0
123
134
  version: "0"
124
- version:
125
135
  requirements: []
126
136
 
127
137
  rubyforge_project:
128
- rubygems_version: 1.3.5
138
+ rubygems_version: 1.3.6
129
139
  signing_key:
130
140
  specification_version: 3
131
141
  summary: parse and convert Org-Mode file