facwparser 0.0.1 → 0.0.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.
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  Fuxxing Atlassian Confluence Wiki Parser
4
4
 
5
+ This is a loose Atlassian Confluence Wiki parser.
6
+
5
7
  ## Installation
6
8
 
7
9
  Add this line to your application's Gemfile:
@@ -18,7 +20,22 @@ Or install it yourself as:
18
20
 
19
21
  ## Usage
20
22
 
21
- TODO: Write usage instructions here
23
+ ```ruby
24
+ require 'facwparser'
25
+ print <<EOS
26
+ <!DOCTYPE html>
27
+ <html>
28
+ <head>
29
+ <title>sample</title>
30
+ </head>
31
+ <body>
32
+ EOS
33
+ print Facwparser.to_html(ARGF.read)
34
+ print <<EOS
35
+ </body>
36
+ </html>
37
+ EOS
38
+ ```
22
39
 
23
40
  ## Contributing
24
41
 
@@ -1,6 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  require 'cgi'
4
+ require File.dirname(__FILE__) + '/parser'
4
5
 
5
6
 
6
7
  module Facwparser
@@ -18,6 +19,13 @@ module Facwparser
18
19
  def render_html(options)
19
20
  raise "TODO: render_html is not implemented: " + self.class.to_s + "\n"
20
21
  end
22
+ private
23
+ def render_html_by_name_and_value(name, value, element_join_char = '')
24
+ ["<#{CGI.escapeHTML name}>", CGI.escapeHTML(value), "</#{CGI.escapeHTML name}>"].join(element_join_char)
25
+ end
26
+ def render_html_by_name_and_childlen(name, children, options, childlen_join_char = '', element_join_char = '')
27
+ ["<#{CGI.escapeHTML name}>", children.map {|c| c.render_html(options) }.join(childlen_join_char), "</#{CGI.escapeHTML name}>"].join(element_join_char)
28
+ end
21
29
  end
22
30
 
23
31
  class P < ElementBase
@@ -25,12 +33,13 @@ module Facwparser
25
33
  @source += source
26
34
  end
27
35
  def render_html(options)
28
- if source =~ /\A *bq. (.+)/m
29
- @children ||= Parser.parse_value($1, options)
30
- "<blockquote>\n" + @children.map { |c| c.render_html(options) }.join("") + "\n</blockquote>\n"
36
+ if @source =~ /\A *bq. (.+)/m
37
+ "<blockquote>\n" +
38
+ render_html_by_name_and_value('p', $1).gsub("\n", '<br>') + "\n" +
39
+ "</blockquote>\n"
31
40
  else
32
- @children ||= Parser.parse_value(source, options)
33
- "<p>\n" + @children.map { |c| c.render_html(options) }.join("") + "</p>\n"
41
+ @children ||= Parser.parse_value(@source, options)
42
+ render_html_by_name_and_childlen('p', @children, options) + "\n"
34
43
  end
35
44
  end
36
45
  end
@@ -47,7 +56,8 @@ module Facwparser
47
56
  @value = value
48
57
  end
49
58
  def render_html(options)
50
- "<h#{level}>#{CGI.escapeHTML value}</h#{level}>\n"
59
+ @children = Parser.parse_value value, options
60
+ render_html_by_name_and_childlen("h#{level}", @children, options) + "\n"
51
61
  end
52
62
  end
53
63
  class List < ElementBase
@@ -62,12 +72,7 @@ module Facwparser
62
72
  self
63
73
  end
64
74
  def render_html(options)
65
- case @type
66
- when '#'
67
- return "<ol>\n" + @children.map{ |c| c.render_html(options) }.join("") + "</ol>\n"
68
- else
69
- return "<ul>\n" + @children.map{ |c| c.render_html(options) }.join("") + "</ul>\n"
70
- end
75
+ (render_html_by_name_and_childlen(@type == '#' ? 'ol' : 'ul', @children, options, "\n", "\n") + "\n").gsub("\n\n", "\n")
71
76
  end
72
77
  end
73
78
  class ListItem < ElementBase
@@ -79,8 +84,8 @@ module Facwparser
79
84
  @value = value
80
85
  end
81
86
  def render_html(options)
82
- @children = Parser.parse_value value, options
83
- "<li>" + @children.map {|c| c.render_html(options) }.join("") + "</li>\n"
87
+ @children ||= Parser.parse_value value, options
88
+ render_html_by_name_and_childlen('li', @children, options)
84
89
  end
85
90
  end
86
91
  class Table < ElementBase
@@ -93,21 +98,21 @@ module Facwparser
93
98
  self
94
99
  end
95
100
  def render_html(options)
96
- "<table><thead>\n" + @children[0].render_html(options) +
97
- "\n</thead>\n<tbody>\n" +
98
- @children.drop(1).map{|c| c.render_html(options)}.join("\n") +
99
- "\n</tbody></table>\n"
101
+ "<table>\n" +
102
+ render_html_by_name_and_childlen('thead', @children.take(1), options, "\n", "\n") + "\n" +
103
+ render_html_by_name_and_childlen('tbody', @children.drop(1), options, "\n", "\n") + "\n" +
104
+ "</table>\n"
100
105
  end
101
106
  end
102
107
  class TableHeaders < ElementBase
103
108
  attr_reader :elements
104
109
  def initialize(source)
105
110
  super(source)
106
- @elements = source.split('||')[1..-2]
111
+ @elements = source[2..-3].split('||')
107
112
  end
108
113
  def render_html(options)
109
114
  "<tr>" +
110
- @elements.map { |e| '<th>' + Parser.parse_value(e, options).map { |c| c.render_html(options) }.join(" ") + '</th>'}.join() +
115
+ @elements.map { |e| render_html_by_name_and_childlen('th', Parser.parse_value(e, options), options) }.join() +
111
116
  "</tr>"
112
117
  end
113
118
  end
@@ -145,7 +150,7 @@ module Facwparser
145
150
  end
146
151
  def render_html(options)
147
152
  "<tr>" +
148
- @elements.map { |e| '<td>' + Parser.parse_value(e, options).map { |c| c.render_html(options) }.join(" ") + '</td>'}.join() +
153
+ @elements.map { |e| render_html_by_name_and_childlen('td', Parser.parse_value(e, options), options) }.join() +
149
154
  "</tr>"
150
155
  end
151
156
  end
@@ -176,7 +181,7 @@ module Facwparser
176
181
  @value = value
177
182
  end
178
183
  def render_html(options)
179
- "<pre>\n#{CGI.escapeHTML @value}\n</pre>\n"
184
+ render_html_by_name_and_value('pre', @value, "\n") + "\n"
180
185
  end
181
186
  end
182
187
  class CodeMacro < MacroBase
@@ -186,7 +191,9 @@ module Facwparser
186
191
  @value = value
187
192
  end
188
193
  def render_html(options)
189
- "<code class=\"code_#{CGI.escapeHTML(@options[1..-1])}\"><pre>\n#{CGI.escapeHTML @value}\n</pre></code>\n"
194
+ "<pre class=\"#{CGI.escapeHTML(@options[1..-1])}\">\n" +
195
+ render_html_by_name_and_value('code', @value, "\n") + "\n" +
196
+ "</pre>" + "\n"
190
197
  end
191
198
  end
192
199
  class QuoteMacro < MacroBase
@@ -195,7 +202,9 @@ module Facwparser
195
202
  @value = value
196
203
  end
197
204
  def render_html(options)
198
- "<blockquote>\n#{CGI.escapeHTML @value}\n</blockquote>\n"
205
+ "<blockquote>\n" +
206
+ render_html_by_name_and_value('p', @value).gsub("\n", '<br>') + "\n" +
207
+ "</blockquote>\n"
199
208
  end
200
209
  end
201
210
 
@@ -224,49 +233,49 @@ module Facwparser
224
233
 
225
234
  class Bold < InlineElementBase
226
235
  def render_html(options)
227
- "<b>#{CGI.escapeHTML(@text)}</b>"
236
+ render_html_by_name_and_value('b', @text)
228
237
  end
229
238
  end
230
239
 
231
240
  class Italic < InlineElementBase
232
241
  def render_html(options)
233
- "<i>#{CGI.escapeHTML(@text)}</i>"
242
+ render_html_by_name_and_value('i', @text)
234
243
  end
235
244
  end
236
245
 
237
246
  class Strike < InlineElementBase
238
247
  def render_html(options)
239
- "<s>#{CGI.escapeHTML(@text)}</s>"
248
+ render_html_by_name_and_value('s', @text)
240
249
  end
241
250
  end
242
251
 
243
252
  class Under < InlineElementBase
244
253
  def render_html(options)
245
- "<u>#{CGI.escapeHTML(@text)}</u>"
254
+ render_html_by_name_and_value('u', @text)
246
255
  end
247
256
  end
248
257
 
249
258
  class Q < InlineElementBase
250
259
  def render_html(options)
251
- "<q>#{CGI.escapeHTML(@text)}</q>"
260
+ render_html_by_name_and_value('q', @text)
252
261
  end
253
262
  end
254
263
 
255
264
  class SUP < InlineElementBase
256
265
  def render_html(options)
257
- "<sup>#{CGI.escapeHTML(@text)}</sup>"
266
+ render_html_by_name_and_value('sup', @text)
258
267
  end
259
268
  end
260
269
 
261
270
  class SUB < InlineElementBase
262
271
  def render_html(options)
263
- "<sub>#{CGI.escapeHTML(@text)}</sub>"
272
+ render_html_by_name_and_value('sub', @text)
264
273
  end
265
274
  end
266
275
 
267
276
  class TT < InlineElementBase
268
277
  def render_html(options)
269
- "<tt>#{CGI.escapeHTML(@text)}</tt>"
278
+ render_html_by_name_and_value('tt', @text)
270
279
  end
271
280
  end
272
281
 
@@ -284,7 +293,7 @@ module Facwparser
284
293
  end
285
294
  def render_html(options)
286
295
  jira_browse_url = (options && options['jira_browse_url']) || ''
287
- return '<a href="' + CGI.escapeHTML(jira_browse_url) + CGI.escapeHTML(@options) +'">' + CGI.escapeHTML(@options) + '</a>'
296
+ return '<a href="' + CGI.escapeHTML(jira_browse_url + @options) +'">' + CGI.escapeHTML(@options) + '</a>'
288
297
  end
289
298
  end
290
299
 
@@ -313,5 +322,12 @@ module Facwparser
313
322
  CGI.escapeHTML @source
314
323
  end
315
324
  end
325
+
326
+ class Br < InlineElementBase
327
+ def render_html(options)
328
+ '<br>'
329
+ end
330
+ end
331
+
316
332
  end
317
333
  end
@@ -163,6 +163,8 @@ module Facwparser
163
163
  children << Element::ColorMacroEnd.new(s[0])
164
164
  when s.scan(/[^\[^\\*_+{!-]+/)
165
165
  children << Element::Text.new(s[0], unescape_text(s[0]))
166
+ when s.scan(/\\\\/)
167
+ children << Element::Br.new(s[0], unescape_text(s[0]))
166
168
  when s.scan(/\\[\[\]\*+_?{}!^~-]/)
167
169
  children << Element::Text.new(s[0], unescape_text(s[0]))
168
170
  else
@@ -1,3 +1,3 @@
1
1
  module Facwparser
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/tests/all_tests.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  Dir.chdir(File.dirname(__FILE__)) do
2
- Dir.glob('**/test_*.rb') { |test_case| require './' + test_case }
2
+ Dir.glob('**/test_*.rb') { |filename| require './' + filename}
3
3
  end
@@ -0,0 +1,15 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../../../lib/facwparser/element'
4
+
5
+
6
+ class TestCode < Test::Unit::TestCase
7
+
8
+ def test_code_1
9
+ code = Facwparser::Element::CodeMacro.new("{code:perl}\n*a*\n{code}\n", ':perl', '*a*')
10
+ assert_equal(%Q{<pre class="perl">\n<code>\n*a*\n</code>\n</pre>\n},
11
+ code.render_html({}))
12
+ end
13
+
14
+ end
15
+
@@ -0,0 +1,32 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../../../lib/facwparser/element'
4
+
5
+
6
+ class TestHeading < Test::Unit::TestCase
7
+
8
+ def test_heading_1
9
+ heading = Facwparser::Element::Heading.new('h1. hoge', 1, 'hoge')
10
+ assert_equal("<h1>hoge</h1>\n",
11
+ heading.render_html({}))
12
+ end
13
+
14
+ def test_heading_2
15
+ heading = Facwparser::Element::Heading.new('h3. hoge>', 3, 'hoge>')
16
+ assert_equal("<h3>hoge&gt;</h3>\n",
17
+ heading.render_html({}))
18
+ end
19
+
20
+ def test_heading_3
21
+ heading = Facwparser::Element::Heading.new('h1. hoge[http://www.unixuser.org]', 1, 'hoge[http://www.unixuser.org]')
22
+ assert_equal(%Q{<h1>hoge<a href="http://www.unixuser.org">http://www.unixuser.org</a></h1>\n},
23
+ heading.render_html({}))
24
+ end
25
+
26
+ def test_heading_4
27
+ heading = Facwparser::Element::Heading.new('h1. hoge [http://www.unixuser.org]', 1, 'hoge [http://www.unixuser.org]')
28
+ assert_equal(%Q{<h1>hoge <a href="http://www.unixuser.org">http://www.unixuser.org</a></h1>\n},
29
+ heading.render_html({}))
30
+ end
31
+ end
32
+
@@ -0,0 +1,14 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../../../lib/facwparser/element'
4
+
5
+
6
+ class TestHr < Test::Unit::TestCase
7
+
8
+ def test_hr
9
+ hr = Facwparser::Element::HorizontalRule.new('----')
10
+ assert_equal("<hr>\n",
11
+ hr.render_html({}))
12
+ end
13
+ end
14
+
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../../../lib/facwparser/element'
4
+
5
+
6
+ class TestList < Test::Unit::TestCase
7
+
8
+ def test_list_1
9
+ ul = Facwparser::Element::List.new('*')
10
+ ul.push Facwparser::Element::ListItem.new('* hoge', '*', 'hoge')
11
+ ol = Facwparser::Element::List.new('#')
12
+ ul.push ol
13
+ ol.push Facwparser::Element::ListItem.new('## kuke', '##', 'kuke')
14
+
15
+ assert_equal(%Q{<ul>\n<li>hoge</li>\n<ol>\n<li>kuke</li>\n</ol>\n</ul>\n},
16
+ ul.render_html({}))
17
+ end
18
+
19
+ end
20
+
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../../../lib/facwparser/element'
4
+
5
+
6
+ class TestListItem < Test::Unit::TestCase
7
+
8
+ def test_list_item_1
9
+ li = Facwparser::Element::ListItem.new('* hoge', '*', 'hoge')
10
+ assert_equal(%Q{<li>hoge</li>},
11
+ li.render_html({}))
12
+ end
13
+
14
+ def test_list_item_2
15
+ li = Facwparser::Element::ListItem.new('## hoge*nyo*', '##', 'hoge*nyo*')
16
+ assert_equal(%Q{<li>hoge<b>nyo</b></li>},
17
+ li.render_html({}))
18
+ end
19
+ end
20
+
@@ -0,0 +1,15 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../../../lib/facwparser/element'
4
+
5
+
6
+ class TestNoformat < Test::Unit::TestCase
7
+
8
+ def test_noformat_1
9
+ noformat = Facwparser::Element::NoformatMacro.new("{noformat}\n*a*\n{noformat}\n", '*a*')
10
+ assert_equal(%Q{<pre>\n*a*\n</pre>\n},
11
+ noformat.render_html({}))
12
+ end
13
+
14
+ end
15
+
@@ -0,0 +1,44 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../../../lib/facwparser/element'
4
+
5
+
6
+ class TestP < Test::Unit::TestCase
7
+
8
+ def test_p_1
9
+ p = Facwparser::Element::P.new('hoge')
10
+ assert_equal("<p>hoge</p>\n",
11
+ p.render_html({}))
12
+ end
13
+
14
+ def test_p_2
15
+ p = Facwparser::Element::P.new("hoge\nkuke")
16
+ assert_equal("<p>hogekuke</p>\n",
17
+ p.render_html({}))
18
+ end
19
+
20
+ def test_p_3
21
+ p = Facwparser::Element::P.new("hoge\\\\\nkuke")
22
+ assert_equal("<p>hoge<br>kuke</p>\n",
23
+ p.render_html({}))
24
+ end
25
+
26
+ def test_p_4
27
+ p = Facwparser::Element::P.new("<>")
28
+ assert_equal("<p>&lt;&gt;</p>\n",
29
+ p.render_html({}))
30
+ end
31
+
32
+ def test_p_blockquote
33
+ p = Facwparser::Element::P.new('bq. hoge')
34
+ assert_equal("<blockquote>\n<p>hoge</p>\n</blockquote>\n",
35
+ p.render_html({}))
36
+ end
37
+
38
+ def test_p_blockquote_2
39
+ p = Facwparser::Element::P.new(" bq. hoge\n kuke")
40
+ assert_equal("<blockquote>\n<p>hoge<br> kuke</p>\n</blockquote>\n",
41
+ p.render_html({}))
42
+ end
43
+ end
44
+
@@ -0,0 +1,15 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../../../lib/facwparser/element'
4
+
5
+
6
+ class TestQuote < Test::Unit::TestCase
7
+
8
+ def test_quote_=
9
+ quote = Facwparser::Element::QuoteMacro.new("{qoute}\n*a*\n\n{quote}\n", "*a*\n")
10
+ assert_equal(%Q{<blockquote>\n<p>*a*<br></p>\n</blockquote>\n},
11
+ quote.render_html({}))
12
+ end
13
+
14
+ end
15
+
@@ -0,0 +1,21 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../../../lib/facwparser/element'
4
+
5
+
6
+ class TestTable < Test::Unit::TestCase
7
+
8
+ def test_table_1
9
+ table = Facwparser::Element::Table.new
10
+ tr = Facwparser::Element::TableHeaders.new('||hoge||kuke||')
11
+ td1 = Facwparser::Element::TableData.new('|1|2|')
12
+ td2 = Facwparser::Element::TableData.new('|3|4|')
13
+ table.push tr
14
+ table.push td1
15
+ table.push td2
16
+ assert_equal(%Q{<table>\n<thead>\n<tr><th>hoge</th><th>kuke</th></tr>\n</thead>\n<tbody>\n<tr><td>1</td><td>2</td></tr>\n<tr><td>3</td><td>4</td></tr>\n</tbody>\n</table>\n},
17
+ table.render_html({}))
18
+ end
19
+
20
+ end
21
+
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../../../lib/facwparser/element'
4
+
5
+
6
+ class TestTableData < Test::Unit::TestCase
7
+
8
+ def test_table_data_1
9
+ td = Facwparser::Element::TableData.new('|hoge|kuke|')
10
+ assert_equal(%Q{<tr><td>hoge</td><td>kuke</td></tr>},
11
+ td.render_html({}))
12
+ end
13
+
14
+ def test_table_data_2
15
+ td = Facwparser::Element::TableData.new('|hoge|[hoge|http://www.unixuser.org]|')
16
+ assert_equal(%Q{<tr><td>hoge</td><td><a href="http://www.unixuser.org">hoge</a></td></tr>},
17
+ td.render_html({}))
18
+ end
19
+ end
20
+
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../../../lib/facwparser/element'
4
+
5
+
6
+ class TestTableHeaders < Test::Unit::TestCase
7
+
8
+ def test_table_headers_1
9
+ tr = Facwparser::Element::TableHeaders.new('||hoge||kuke||')
10
+ assert_equal(%Q{<tr><th>hoge</th><th>kuke</th></tr>},
11
+ tr.render_html({}))
12
+ end
13
+
14
+ def test_table_headers_2
15
+ tr = Facwparser::Element::TableHeaders.new('||hoge||[hoge|http://www.unixuser.org]||')
16
+ assert_equal(%Q{<tr><th>hoge</th><th><a href="http://www.unixuser.org">hoge</a></th></tr>},
17
+ tr.render_html({}))
18
+ end
19
+ end
20
+
@@ -79,6 +79,15 @@ class TestParseValue < Test::Unit::TestCase
79
79
  ], Facwparser::Parser.parse_value('1{jira:SYSTEMRD-1}2', {}))
80
80
  end
81
81
 
82
+ def test_parse_value_br
83
+ assert_equal([
84
+ Facwparser::Element::Text.new('1', '1'),
85
+ Facwparser::Element::Br.new("\\\\", "\\\\"),
86
+ Facwparser::Element::Text.new('2', '2')
87
+ ], Facwparser::Parser.parse_value("1\\\\2", {}))
88
+ end
89
+
90
+
82
91
  def test_parse_value_jira_misc
83
92
  assert_equal([
84
93
  Facwparser::Element::Text.new('1', '1'),
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: facwparser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-08 00:00:00.000000000 Z
12
+ date: 2013-02-14 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Fuxxing Atlassian Confluence Wiki Parser
15
15
  email:
@@ -31,9 +31,20 @@ files:
31
31
  - lib/facwparser/version.rb
32
32
  - sample/confluence2html.rb
33
33
  - tests/all_tests.rb
34
- - tests/units/parse/test_add_list_elements.rb
35
- - tests/units/parse/test_parse1.rb
36
- - tests/units/parse/test_parse_value.rb
34
+ - tests/units/element/test_code.rb
35
+ - tests/units/element/test_heading.rb
36
+ - tests/units/element/test_horizontal_rule.rb
37
+ - tests/units/element/test_list.rb
38
+ - tests/units/element/test_list_item.rb
39
+ - tests/units/element/test_noformat.rb
40
+ - tests/units/element/test_p.rb
41
+ - tests/units/element/test_quote.rb
42
+ - tests/units/element/test_table.rb
43
+ - tests/units/element/test_table_data.rb
44
+ - tests/units/element/test_table_headers.rb
45
+ - tests/units/parser/test_add_list_elements.rb
46
+ - tests/units/parser/test_parse1.rb
47
+ - tests/units/parser/test_parse_value.rb
37
48
  homepage: https://github.com/haruyama/facwparser
38
49
  licenses: []
39
50
  post_install_message:
@@ -54,9 +65,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
54
65
  version: '0'
55
66
  requirements: []
56
67
  rubyforge_project:
57
- rubygems_version: 1.8.24
68
+ rubygems_version: 1.8.25
58
69
  signing_key:
59
70
  specification_version: 3
60
71
  summary: Parser of Atlassian Confluence Wiki Markup.
61
72
  test_files: []
62
- has_rdoc:
File without changes