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.
- data/VERSION.yml +2 -2
- data/bin/org-parse +3 -2
- data/doc/images/org-parse-struct_ca4f70a7189eddf1f60e8486f7d289b294cf8df3.png +0 -0
- data/doc/org-parse.html +121 -32
- data/lib/org-parse.rb +1 -1
- data/lib/org-parse/node.rb +11 -1
- data/lib/org-parse/struct-parser.rb +2 -2
- data/lib/org-parse/struct-scanner.rb +11 -9
- data/lib/org-parse/templates/single.html.erb +4 -1
- data/lib/org-parse/visitor.rb +40 -6
- data/org-parse.gemspec +4 -3
- metadata +19 -9
data/VERSION.yml
CHANGED
data/bin/org-parse
CHANGED
@@ -34,8 +34,9 @@ begin
|
|
34
34
|
puts options_parser
|
35
35
|
else
|
36
36
|
data = IO.read(ARGV[0])
|
37
|
-
|
38
|
-
|
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])
|
data/doc/org-parse.html
CHANGED
@@ -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
|
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
|
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-
|
83
|
+
<li><a href="#sec-1.1">1.1 何故作ったか。 </a></li>
|
85
84
|
</ul>
|
86
85
|
</li>
|
87
|
-
<li><a href="#sec-
|
86
|
+
<li><a href="#sec-2">2 構成 </a>
|
88
87
|
<ul>
|
89
|
-
<li><a href="#sec-
|
90
|
-
|
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
|
103
|
-
|
117
|
+
</p>
|
104
118
|
</div>
|
105
119
|
|
106
|
-
<div id="outline-container-
|
107
|
-
<
|
108
|
-
<div class="outline-text-
|
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-
|
121
|
-
<h2 id="sec-
|
122
|
-
<div class="outline-text-2" id="text-
|
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-
|
128
|
-
<h3 id="sec-
|
129
|
-
<div class="outline-text-3" id="text-
|
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-
|
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-
|
146
|
-
<h2 id="sec-
|
147
|
-
<div class="outline-text-2" id="text-
|
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-
|
153
|
-
<h3 id="sec-
|
154
|
-
<div class="outline-text-3" id="text-
|
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-
|
171
|
-
<h3 id="sec-
|
172
|
-
<div class="outline-text-3" id="text-
|
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"><kensei@dalmore.artifarm.com></a>
|
197
286
|
</p>
|
198
|
-
<p class="date"> Date: 2010-03-10
|
199
|
-
<p class="creator">HTML generated by org-mode 6.
|
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>
|
data/lib/org-parse.rb
CHANGED
data/lib/org-parse/node.rb
CHANGED
@@ -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,
|
26
|
-
@scanner = StructScanner.new(src,
|
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
|
-
# [
|
28
|
-
def initialize(src,
|
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
|
-
|
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
|
data/lib/org-parse/visitor.rb
CHANGED
@@ -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}">#{
|
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
|
-
|
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}
|
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
|
data/org-parse.gemspec
CHANGED
@@ -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.
|
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-
|
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.
|
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
|
-
|
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-
|
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
|
-
|
18
|
-
|
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
|
-
|
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.
|
138
|
+
rubygems_version: 1.3.6
|
129
139
|
signing_key:
|
130
140
|
specification_version: 3
|
131
141
|
summary: parse and convert Org-Mode file
|