wikicloth 0.7.0 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ pkg/*
2
+ sample_documents/*.html
3
+ /Gemfile.lock
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ rvm:
2
+ - 1.8.7 # (current default)
3
+ - 1.9.2
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source :rubygems
2
+ gemspec
data/README CHANGED
@@ -7,7 +7,6 @@ Supports
7
7
  * Links
8
8
  o External Links [ ... ]
9
9
  o Internal Links, Images [[ ... ]]
10
- + (see also pipe trick)
11
10
  * Wikimedia Markup
12
11
  o == Headings ==
13
12
  o Lists (*#;:)
@@ -33,6 +32,7 @@ Usage
33
32
  @wiki = WikiCloth::Parser.new({
34
33
  :data => "<nowiki>{{test}}</nowiki> ''Hello {{test}}!''\n",
35
34
  :params => { "test" => "World" } })
35
+
36
36
  @wiki.to_html => "<p>&#123;&#123;test&#125;&#125; <i>Hello World!</i></p>"
37
37
 
38
38
 
data/README.textile ADDED
@@ -0,0 +1,72 @@
1
+ h2. WikiCloth "!https://secure.travis-ci.org/nricciar/wikicloth.png!":http://travis-ci.org/nricciar/wikicloth
2
+
3
+ Ruby implementation of the MediaWiki markup language.
4
+
5
+ h2. Supports
6
+
7
+ * Variables, Templates {{ ... }}
8
+ * Links
9
+ ** External Links [ ... ]
10
+ ** Internal Links, Images &#91;[ ... ]]
11
+ * Wikimedia Markup
12
+ ** == Headings ==
13
+ ** Lists (*#;:)
14
+ ** bold (<code>'''</code>), italic (<code>''</code>) or both (<code>'''''</code>)
15
+ ** Horizontal rule (----)
16
+ ** "Tables":https://github.com/nricciar/wikicloth/wiki/Tables
17
+ ** Table of Contents [<code>__NOTOC__, __FORCETOC__, __TOC__</code>]
18
+ * <code><code>,<nowiki>,<pre></code> (disable wiki markup)
19
+ * <ref> and <references/> support
20
+ * "html sanitization":https://github.com/nricciar/wikicloth/wiki/Html-Sanitization
21
+
22
+ For more information about the MediaWiki markup see "http://www.mediawiki.org/wiki/Markup_spec":http://www.mediawiki.org/wiki/Markup_spec
23
+
24
+ h2. Install
25
+
26
+ <pre> git clone git://github.com/nricciar/wikicloth.git
27
+ cd wikicloth/
28
+ rake install</pre>
29
+
30
+ h2. Usage
31
+
32
+ <pre> @wiki = WikiCloth::Parser.new({
33
+ :data => "<nowiki>{{test}}</nowiki> ''Hello {{test}}!''\n",
34
+ :params => { "test" => "World" } })
35
+
36
+ @wiki.to_html => "<p>&#123;&#123;test&#125;&#125; <i>Hello World!</i></p>"</pre>
37
+
38
+
39
+ h2. Advanced Usage
40
+
41
+ Most features of WikiCloth can be overriden as needed...
42
+
43
+ <pre> class WikiParser < WikiCloth::Parser
44
+
45
+ url_for do |page|
46
+ "javascript:alert('You clicked on: #{page}');"
47
+ end
48
+
49
+ link_attributes_for do |page|
50
+ { :href => url_for(page) }
51
+ end
52
+
53
+ template do |template|
54
+ "Hello {{{1}}}" if template == "hello"
55
+ end
56
+
57
+ external_link do |url,text|
58
+ "<a href=\"#{url}\" target=\"_blank\" class=\"exlink\">#{text.blank? ? url : text}</a>"
59
+ end
60
+
61
+ end
62
+
63
+ @wiki = WikiParser.new({
64
+ :params => { "PAGENAME" => "Testing123" },
65
+ :data => "{{hello|world}} From {{ PAGENAME }} -- [www.google.com]&quot;
66
+ })
67
+
68
+ @wiki.to_html =>
69
+ <p>
70
+ Hello world From Testing123 -- <a href="http://www.google.com" target="_blank" class="exlink">http://www.google.com</a>
71
+ </p></pre>
72
+
data/Rakefile CHANGED
@@ -1,38 +1,31 @@
1
1
  require 'rake'
2
- require 'rake/testtask'
3
- require 'rake/rdoctask'
4
- require 'rake/gempackagetask'
5
2
  require File.join(File.dirname(__FILE__),'init')
6
3
 
7
4
  require 'bundler'
8
5
  Bundler::GemHelper.install_tasks
9
6
 
10
- task :default => :test
11
-
12
- desc 'Generate documentation for the wikicloth plugin.'
13
- Rake::RDocTask.new(:rdoc) do |rdoc|
14
- rdoc.rdoc_dir = 'rdoc'
15
- rdoc.title = 'WikiCloth'
16
- rdoc.options << '--line-numbers' << '--inline-source'
17
- rdoc.rdoc_files.include('README')
18
- rdoc.rdoc_files.include('lib/**/*.rb')
7
+ require 'rake/testtask'
8
+ Rake::TestTask.new(:test) do |test|
9
+ test.pattern = 'test/*_test.rb'
10
+ test.verbose = true
19
11
  end
20
12
 
21
- find_file = lambda do |name|
22
- file_name = lambda {|path| File.join(path, "#{name}.rb")}
23
- root = $:.detect do |path|
24
- File.exist?(file_name[path])
25
- end
26
- file_name[root] if root
13
+ require 'rcov/rcovtask'
14
+ Rcov::RcovTask.new do |test|
15
+ test.libs << 'test'
16
+ test.pattern = 'test/**/test_*.rb'
17
+ test.verbose = true
27
18
  end
28
19
 
29
- TEST_LOADER = find_file['rake/rake_test_loader']
30
- multiruby = lambda do |glob|
31
- system 'multiruby', TEST_LOADER, *Dir.glob(glob)
32
- end
20
+ task :default => :test
33
21
 
34
- Rake::TestTask.new(:test) do |test|
35
- test.ruby_opts << "-W"
36
- test.pattern = 'test/**/*_test.rb'
37
- test.verbose = true
22
+ require 'rake/rdoctask'
23
+ Rake::RDocTask.new do |rdoc|
24
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
25
+
26
+ rdoc.rdoc_dir = 'rdoc'
27
+ rdoc.title = "wikicloth #{version}"
28
+ rdoc.rdoc_files.include('README*')
29
+ rdoc.rdoc_files.include('LICENSE')
30
+ rdoc.rdoc_files.include('lib/**/*.rb')
38
31
  end
data/examples/info.rb ADDED
@@ -0,0 +1,15 @@
1
+ require File.join(File.dirname(__FILE__),'../init.rb')
2
+ if ARGV[0] && File.exists?(ARGV[0])
3
+ data = File.read(ARGV[0])
4
+ else
5
+ data = "[[ this ]] is a [[ link ]] and another [http://www.google.com Google]. This is a <ref>reference</ref>, but this is a [[Category:Test]]. This is in another [[de:Sprache]]"
6
+ end
7
+
8
+ wiki = WikiCloth::Parser.new(:data => data)
9
+ wiki.to_html
10
+
11
+ puts "Internal Links: #{wiki.internal_links.size}"
12
+ puts "External Links: #{wiki.external_links.size}"
13
+ puts "References: #{wiki.references.size}"
14
+ puts "Categories: #{wiki.categories.size} [#{wiki.categories.join(",")}]"
15
+ puts "Languages: #{wiki.languages.size} [#{wiki.languages.keys.join(",")}]"
data/examples/print.rb ADDED
@@ -0,0 +1,23 @@
1
+ require File.join(File.dirname(__FILE__),'../init.rb')
2
+ if ARGV[0] && File.exists?(ARGV[0])
3
+ data = File.read(ARGV[0])
4
+ else
5
+ data = "[[ this ]] is a [[ link ]] and another [http://www.google.com Google] but they should be disabled"
6
+ end
7
+
8
+ # Disables all links in the document for printing
9
+ class PrettyPrint < WikiCloth::Parser
10
+
11
+ external_link do |url,text|
12
+ text.nil? ? url : "#{text} (#{url})"
13
+ end
14
+
15
+ link_for do |page,text|
16
+ text.nil? ? page : text
17
+ end
18
+
19
+ end
20
+
21
+ # load file into custom parser and render without
22
+ # section edit links
23
+ puts PrettyPrint.new(:data => data).to_html(:noedit => true)
data/lib/wikicloth.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'jcode' if RUBY_VERSION < '1.9'
2
2
  require File.join(File.expand_path(File.dirname(__FILE__)), "wikicloth", "core_ext")
3
+ require File.join(File.expand_path(File.dirname(__FILE__)), "wikicloth", "version")
3
4
  require File.join(File.expand_path(File.dirname(__FILE__)), "wikicloth", "wiki_buffer")
4
5
  require File.join(File.expand_path(File.dirname(__FILE__)), "wikicloth", "wiki_link_handler")
5
6
  require File.join(File.expand_path(File.dirname(__FILE__)), "wikicloth", "parser")
@@ -10,8 +11,6 @@ String.send(:include, ExtendedString)
10
11
 
11
12
  module WikiCloth
12
13
 
13
- VERSION = "0.7.0"
14
-
15
14
  class WikiCloth
16
15
 
17
16
  def initialize(opt={})
@@ -61,7 +60,8 @@ module WikiCloth
61
60
  self.options[:link_handler].params = options[:params]
62
61
  data = self.sections.collect { |s| s.render(self.options) }.join
63
62
  data.gsub!(/<!--(.|\s)*?-->/,"")
64
- data << "\ngarbage" if data.last(1) != "\n"
63
+ data << "\n" if data.last(1) != "\n"
64
+ data << "garbage"
65
65
 
66
66
  buffer = WikiBuffer.new("",options)
67
67
 
@@ -0,0 +1,3 @@
1
+ module WikiCloth
2
+ VERSION = "0.7.1" unless defined?(::WikiCloth::VERSION)
3
+ end
@@ -70,14 +70,14 @@ class WikiBuffer
70
70
  def check_globals()
71
71
  return false if self.class != WikiBuffer
72
72
 
73
- if previous_char == "\n"
74
- if @indent == @buffers[-1].object_id && current_char != " " && current_char != "\n"
73
+ if previous_char == "\n" || previous_char == ""
74
+ if @indent == @buffers[-1].object_id && current_char != " "
75
+ @indent = nil
75
76
  # close pre tag
76
77
  cc_temp = current_char
77
78
  "</pre>\n".each_char { |c| self.add_char(c) }
78
79
  # get the parser back on the right track
79
80
  "\n#{cc_temp}".each_char { |c| @buffers[-1].add_char(c) }
80
- @indent = nil
81
81
  return true
82
82
  end
83
83
  if current_char == " " && @indent.nil? && ![WikiBuffer::HTMLElement,WikiBuffer::Var].include?(@buffers[-1].class)
@@ -182,7 +182,7 @@ class WikiBuffer
182
182
  self.data.gsub!(/__([A-Z]+)__/) { |r|
183
183
  case $1
184
184
  when "TOC"
185
- @options[:link_handler].toc(@options[:sections])
185
+ @options[:link_handler].toc(@options[:sections], @options[:toc_numbered])
186
186
  else
187
187
  ""
188
188
  end
@@ -226,7 +226,7 @@ class WikiBuffer
226
226
  @paragraph_open = false
227
227
  else
228
228
  if self.data =~ /^\s*$/ && @paragraph_open && @list_data.empty?
229
- self.data = "</p>"
229
+ self.data = "</p>#{self.data}"
230
230
  @paragraph_open = false
231
231
  else
232
232
  if self.data !~ /^\s*$/
@@ -43,27 +43,36 @@ class WikiLinkHandler
43
43
  ret.flatten
44
44
  end
45
45
 
46
- def toc(sections)
47
- ret = "<table id=\"toc\" class=\"toc\" summary=\"Contents\"><tr><td><div style=\"font-weight:bold\">Table of Contents</div>"
46
+ def toc(sections, toc_numbered=false)
47
+ ret = "<table id=\"toc\" class=\"toc\" summary=\"Contents\"><tr><td><div style=\"font-weight:bold\">Table of Contents</div><ul>"
48
48
  previous_depth = 1
49
- section_list.each do |section|
49
+ indices = []
50
+ section_list(sections).each do |section|
51
+ next if section.title.nil?
50
52
  if section.depth > previous_depth
53
+ indices[section.depth] = 0 if indices[section.depth].nil?
54
+ indices[section.depth] += 1
51
55
  c = section.depth - previous_depth
52
56
  c.times { ret += "<ul>" }
53
- ret += "<li><a href=\"##{section.id}\">#{section.title}</a>"
57
+ ret += "<li><a href=\"##{section.id}\">#{indices[0..section.depth].compact.join('.') + " " if toc_numbered}#{section.title}</a>"
54
58
  elsif section.depth == previous_depth
55
- ret += "</li><li><a href=\"##{section.id}\">#{section.title}</a>"
59
+ indices[section.depth] = 0 if indices[section.depth].nil?
60
+ indices[section.depth] += 1
61
+ ret += "</li><li><a href=\"##{section.id}\">#{indices[0..section.depth].compact.join('.') + " " if toc_numbered}#{section.title}</a>"
56
62
  else
63
+ indices[section.depth] = 0 if indices[section.depth].nil?
64
+ indices[section.depth] += 1
65
+ indices = indices[0..section.depth]
57
66
  ret += "</li>" unless previous_depth == 1
58
67
  c = previous_depth - section.depth
59
68
  c.times { ret += "</ul>" }
60
- ret += "<li><a href=\"##{section.id}\">#{section.title}</a>"
69
+ ret += "<li><a href=\"##{section.id}\">#{indices[0..section.depth].compact.join('.') + " " if toc_numbered}#{section.title}</a>"
61
70
  end
62
71
  previous_depth = section.depth
63
72
  end
64
73
  ret += "</li>"
65
74
  (previous_depth-1).times { ret += "</ul>" }
66
- "#{ret}</td></tr></table>"
75
+ "#{ret}</ul></td></tr></table>"
67
76
  end
68
77
 
69
78
  def external_links
data/run_tests.rb CHANGED
@@ -35,7 +35,6 @@ puts @wiki.to_html
35
35
 
36
36
  Dir.glob("sample_documents/*.wiki").each do |x|
37
37
 
38
- puts "starting #{x}"
39
38
  start_time = Time.now
40
39
  out_name = "#{x}.html"
41
40
  data = File.open(x, READ_MODE) { |x| x.read }
@@ -0,0 +1,34 @@
1
+ .thumb { background-color:#F8FCFF;border:1px solid #fff;margin-bottom:0.5em }
2
+ .tright { border-width:0.5em 0 0.8em 1.4em;margin:0.5em 0 0.8em 1.4em;clear:right;float:right }
3
+ .thumbinner {
4
+ background-color:#F9F9F9;
5
+ border:1px solid #CCCCCC;
6
+ font-size:94%;
7
+ overflow:hidden;
8
+ padding:3px !important;
9
+ text-align:center;
10
+ }
11
+ .thumbimage { border:1px solid #CCCCCC }
12
+
13
+ h1, h2, h3, h4, h5, h6 {
14
+ padding-bottom:0.17em;
15
+ padding-top:0.5em;
16
+ color:#000;
17
+ }
18
+ h2, h1 { border-bottom:1px solid #AAAAAA; }
19
+ .editsection {
20
+ font-size:76%;
21
+ font-weight:normal;
22
+ }
23
+ .editsection {
24
+ float:right;
25
+ margin-left:5px;
26
+ }
27
+
28
+ pre {
29
+ background-color:#F9F9F9;
30
+ border:1px dashed #2F6FAB;
31
+ color:black;
32
+ line-height:1.1em;
33
+ padding:1em;
34
+ }
Binary file
@@ -159,7 +159,7 @@ EOS
159
159
  test "table spanning template" do
160
160
  wiki = WikiParser.new(:data => "{{tablebegin}}{{tablemid}}{{tableend}}")
161
161
  data = wiki.to_html
162
- puts data
162
+
163
163
  assert data =~ /test/
164
164
  end
165
165
 
@@ -228,11 +228,77 @@ EOS
228
228
  test "disable edit stuff" do
229
229
  wiki = WikiParser.new(:data => "= Hallo =")
230
230
  data = wiki.to_html
231
- assert_equal data, "\n<p><h1><span class=\"editsection\">&#91;<a href=\"?section=Hallo\" title=\"Edit section: Hallo\">edit</a>&#93;</span> <span class=\"mw-headline\" id=\"Hallo\"><a name=\"Hallo\">Hallo</a></span></h1></p>"
231
+ if RUBY_VERSION == "1.8.7"
232
+ assert_equal data, "\n<p><h1><span class=\"editsection\">&#91;<a href=\"?section=Hallo\" title=\"Edit section: Hallo\">edit</a>&#93;</span> <span class=\"mw-headline\" id=\"Hallo\"><a name=\"Hallo\">Hallo</a></span></h1></p>"
233
+ else
234
+ assert_equal data, "\n<p><h1><span class=\"editsection\">&#91;<a href=\"?section=Hallo\" title=\"Edit section: Hallo\">edit</a>&#93;</span> <span id=\"Hallo\" class=\"mw-headline\"><a name=\"Hallo\">Hallo</a></span></h1></p>"
235
+ end
232
236
 
233
237
  data = wiki.to_html(:noedit => true)
234
- assert_equal data, "\n<p><h1><span class=\"mw-headline\" id=\"Hallo\"><a name=\"Hallo\">Hallo</a></span></h1></p>"
238
+ if RUBY_VERSION == "1.8.7"
239
+ assert_equal data, "\n<p><h1><span class=\"mw-headline\" id=\"Hallo\"><a name=\"Hallo\">Hallo</a></span></h1></p>"
240
+ else
241
+ assert_equal data, "\n<p><h1><span id=\"Hallo\" class=\"mw-headline\"><a name=\"Hallo\">Hallo</a></span></h1></p>"
242
+ end
243
+ end
244
+
245
+ test "render toc" do
246
+ wiki = WikiCloth::WikiCloth.new({:data => "=A=\n=B=\n=C=\n=D="})
247
+ data = wiki.render
248
+ assert data =~ /A/
249
+ end
235
250
 
251
+ test "table after paragraph" do
252
+ wiki = WikiCloth::WikiCloth.new({:data => "A\n{|style=""\n|\n|}"})
253
+ data = wiki.render
254
+ assert data =~ /table/
236
255
  end
237
256
 
257
+ test "pre trailing newlines" do
258
+ wiki = WikiCloth::WikiCloth.new({:data => "A\n B\n\n\n\nC"})
259
+ data = wiki.render
260
+ assert_equal data, "\n<p>A\n</p>\n<p><pre> B\n</pre>\n</p>\n\n\n\n<p>C</p>"
261
+ end
262
+
263
+ test "pre at eof" do
264
+ wiki = WikiCloth::WikiCloth.new({:data => "A\n B\n"})
265
+ data = wiki.render
266
+ assert_equal data, "\n<p>A\n</p>\n<p><pre> B\n</pre>\n</p>"
267
+ end
268
+
269
+ test "empty item in toc" do
270
+ wiki = WikiCloth::WikiCloth.new({:data => "__TOC__\n=A="})
271
+ data = wiki.render
272
+ if RUBY_VERSION == "1.8.7"
273
+ assert_equal data, "\n<p><table id=\"toc\" class=\"toc\" summary=\"Contents\"><tr><td><div style=\"font-weight:bold\">Table of Contents</div><ul></li><li><a href=\"#A\">A</a></li></ul></td></tr></table>\n<h1><span class=\"editsection\">&#91;<a href=\"?section=A\" title=\"Edit section: A\">edit</a>&#93;</span> <span class=\"mw-headline\" id=\"A\"><a name=\"A\">A</a></span></h1></p>"
274
+ else
275
+ assert_equal data, "\n<p><table id=\"toc\" class=\"toc\" summary=\"Contents\"><tr><td><div style=\"font-weight:bold\">Table of Contents</div><ul></li><li><a href=\"#A\">A</a></li></ul></td></tr></table>\n<h1><span class=\"editsection\">&#91;<a href=\"?section=A\" title=\"Edit section: A\">edit</a>&#93;</span> <span id=\"A\" class=\"mw-headline\"><a name=\"A\">A</a></span></h1></p>"
276
+ end
277
+ end
278
+
279
+ test "pre at beginning" do
280
+ wiki = WikiCloth::WikiCloth.new({:data => " A"})
281
+ data = wiki.render
282
+ assert_equal data, "\n\n<p><pre> A\n</pre>\n</p>"
283
+ end
284
+
285
+ test "toc declared as list" do
286
+ wiki = WikiCloth::WikiCloth.new({:data => "__TOC__\n=A=\n==B==\n===C==="})
287
+ data = wiki.render
288
+ if RUBY_VERSION == "1.8.7"
289
+ assert_equal data, "\n<p><table id=\"toc\" class=\"toc\" summary=\"Contents\"><tr><td><div style=\"font-weight:bold\">Table of Contents</div><ul></li><li><a href=\"#A\">A</a><ul><li><a href=\"#B\">B</a><ul><li><a href=\"#C\">C</a></li></ul></ul></ul></td></tr></table>\n<h1><span class=\"editsection\">&#91;<a href=\"?section=A\" title=\"Edit section: A\">edit</a>&#93;</span> <span class=\"mw-headline\" id=\"A\"><a name=\"A\">A</a></span></h1>\n<h2><span class=\"editsection\">&#91;<a href=\"?section=B\" title=\"Edit section: B\">edit</a>&#93;</span> <span class=\"mw-headline\" id=\"B\"><a name=\"B\">B</a></span></h2>\n<h3><span class=\"editsection\">&#91;<a href=\"?section=C\" title=\"Edit section: C\">edit</a>&#93;</span> <span class=\"mw-headline\" id=\"C\"><a name=\"C\">C</a></span></h3></p>"
290
+ else
291
+ assert_equal data, "\n<p><table id=\"toc\" class=\"toc\" summary=\"Contents\"><tr><td><div style=\"font-weight:bold\">Table of Contents</div><ul></li><li><a href=\"#A\">A</a><ul><li><a href=\"#B\">B</a><ul><li><a href=\"#C\">C</a></li></ul></ul></ul></td></tr></table>\n<h1><span class=\"editsection\">&#91;<a href=\"?section=A\" title=\"Edit section: A\">edit</a>&#93;</span> <span id=\"A\" class=\"mw-headline\"><a name=\"A\">A</a></span></h1>\n<h2><span class=\"editsection\">&#91;<a href=\"?section=B\" title=\"Edit section: B\">edit</a>&#93;</span> <span id=\"B\" class=\"mw-headline\"><a name=\"B\">B</a></span></h2>\n<h3><span class=\"editsection\">&#91;<a href=\"?section=C\" title=\"Edit section: C\">edit</a>&#93;</span> <span id=\"C\" class=\"mw-headline\"><a name=\"C\">C</a></span></h3></p>"
292
+ end
293
+ end
294
+
295
+ test "toc numbered" do
296
+ wiki = WikiCloth::WikiCloth.new({:data => "=A=\n=B=\n==C==\n==D==\n===E===\n===F===\n====G====\n====H====\n==I==\n=J=\n=K=\n===L===\n===M===\n====N====\n====O===="})
297
+ data = wiki.render(:noedit => true, :toc_numbered => true)
298
+ if RUBY_VERSION == "1.8.7"
299
+ assert_equal data, "\n<p><table id=\"toc\" class=\"toc\" summary=\"Contents\"><tr><td><div style=\"font-weight:bold\">Table of Contents</div><ul></li><li><a href=\"#A\">1 A</a></li><li><a href=\"#B\">2 B</a><ul><li><a href=\"#C\">2.1 C</a></li><li><a href=\"#D\">2.2 D</a><ul><li><a href=\"#E\">2.2.1 E</a></li><li><a href=\"#F\">2.2.2 F</a><ul><li><a href=\"#G\">2.2.2.1 G</a></li><li><a href=\"#H\">2.2.2.2 H</a></li></ul></ul><li><a href=\"#I\">2.3 I</a></li></ul><li><a href=\"#J\">3 J</a></li><li><a href=\"#K\">4 K</a><ul><ul><li><a href=\"#L\">4.1 L</a></li><li><a href=\"#M\">4.2 M</a><ul><li><a href=\"#N\">4.2.1 N</a></li><li><a href=\"#O\">4.2.2 O</a></li></ul></ul></ul></ul></td></tr></table><h1><span class=\"mw-headline\" id=\"A\"><a name=\"A\">A</a></span></h1>\n<h1><span class=\"mw-headline\" id=\"B\"><a name=\"B\">B</a></span></h1>\n<h2><span class=\"mw-headline\" id=\"C\"><a name=\"C\">C</a></span></h2>\n<h2><span class=\"mw-headline\" id=\"D\"><a name=\"D\">D</a></span></h2>\n<h3><span class=\"mw-headline\" id=\"E\"><a name=\"E\">E</a></span></h3>\n<h3><span class=\"mw-headline\" id=\"F\"><a name=\"F\">F</a></span></h3>\n<h4><span class=\"mw-headline\" id=\"G\"><a name=\"G\">G</a></span></h4>\n<h4><span class=\"mw-headline\" id=\"H\"><a name=\"H\">H</a></span></h4>\n<h2><span class=\"mw-headline\" id=\"I\"><a name=\"I\">I</a></span></h2>\n<h1><span class=\"mw-headline\" id=\"J\"><a name=\"J\">J</a></span></h1>\n<h1><span class=\"mw-headline\" id=\"K\"><a name=\"K\">K</a></span></h1>\n<h3><span class=\"mw-headline\" id=\"L\"><a name=\"L\">L</a></span></h3>\n<h3><span class=\"mw-headline\" id=\"M\"><a name=\"M\">M</a></span></h3>\n<h4><span class=\"mw-headline\" id=\"N\"><a name=\"N\">N</a></span></h4>\n<h4><span class=\"mw-headline\" id=\"O\"><a name=\"O\">O</a></span></h4></p>"
300
+ else
301
+ assert_equal data, "\n<p><table id=\"toc\" class=\"toc\" summary=\"Contents\"><tr><td><div style=\"font-weight:bold\">Table of Contents</div><ul></li><li><a href=\"#A\">1 A</a></li><li><a href=\"#B\">2 B</a><ul><li><a href=\"#C\">2.1 C</a></li><li><a href=\"#D\">2.2 D</a><ul><li><a href=\"#E\">2.2.1 E</a></li><li><a href=\"#F\">2.2.2 F</a><ul><li><a href=\"#G\">2.2.2.1 G</a></li><li><a href=\"#H\">2.2.2.2 H</a></li></ul></ul><li><a href=\"#I\">2.3 I</a></li></ul><li><a href=\"#J\">3 J</a></li><li><a href=\"#K\">4 K</a><ul><ul><li><a href=\"#L\">4.1 L</a></li><li><a href=\"#M\">4.2 M</a><ul><li><a href=\"#N\">4.2.1 N</a></li><li><a href=\"#O\">4.2.2 O</a></li></ul></ul></ul></ul></td></tr></table><h1><span id=\"A\" class=\"mw-headline\"><a name=\"A\">A</a></span></h1>\n<h1><span id=\"B\" class=\"mw-headline\"><a name=\"B\">B</a></span></h1>\n<h2><span id=\"C\" class=\"mw-headline\"><a name=\"C\">C</a></span></h2>\n<h2><span id=\"D\" class=\"mw-headline\"><a name=\"D\">D</a></span></h2>\n<h3><span id=\"E\" class=\"mw-headline\"><a name=\"E\">E</a></span></h3>\n<h3><span id=\"F\" class=\"mw-headline\"><a name=\"F\">F</a></span></h3>\n<h4><span id=\"G\" class=\"mw-headline\"><a name=\"G\">G</a></span></h4>\n<h4><span id=\"H\" class=\"mw-headline\"><a name=\"H\">H</a></span></h4>\n<h2><span id=\"I\" class=\"mw-headline\"><a name=\"I\">I</a></span></h2>\n<h1><span id=\"J\" class=\"mw-headline\"><a name=\"J\">J</a></span></h1>\n<h1><span id=\"K\" class=\"mw-headline\"><a name=\"K\">K</a></span></h1>\n<h3><span id=\"L\" class=\"mw-headline\"><a name=\"L\">L</a></span></h3>\n<h3><span id=\"M\" class=\"mw-headline\"><a name=\"M\">M</a></span></h3>\n<h4><span id=\"N\" class=\"mw-headline\"><a name=\"N\">N</a></span></h4>\n<h4><span id=\"O\" class=\"mw-headline\"><a name=\"O\">O</a></span></h4></p>"
302
+ end
303
+ end
238
304
  end
data/wikicloth.gemspec ADDED
@@ -0,0 +1,29 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib/', __FILE__)
3
+ $:.unshift lib unless $:.include?(lib)
4
+
5
+ require 'wikicloth/version'
6
+
7
+ spec = Gem::Specification.new do |s|
8
+ s.name = "wikicloth"
9
+ s.version = WikiCloth::VERSION
10
+ s.author = "David Ricciardi"
11
+ s.email = "nricciar@gmail.com"
12
+ s.homepage = "http://github.com/nricciar/wikicloth"
13
+ s.platform = Gem::Platform::RUBY
14
+ s.summary = "An implementation of the mediawiki markup in ruby"
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.require_path = "lib"
18
+ s.description = File.read("README")
19
+ s.has_rdoc = false
20
+ s.extra_rdoc_files = ["README","MIT-LICENSE"]
21
+ s.description = %q{mediawiki parser}
22
+ s.add_dependency 'builder'
23
+ s.add_dependency 'expression_parser'
24
+ s.add_development_dependency 'test-unit'
25
+ s.add_development_dependency 'activesupport'
26
+ s.add_development_dependency 'i18n'
27
+ s.add_development_dependency 'rake'
28
+ s.add_development_dependency 'rcov'
29
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wikicloth
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 1
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 7
9
- - 0
10
- version: 0.7.0
9
+ - 1
10
+ version: 0.7.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - David Ricciardi
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-07-19 00:00:00 +00:00
18
+ date: 2011-10-26 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -74,6 +74,48 @@ dependencies:
74
74
  version: "0"
75
75
  type: :development
76
76
  version_requirements: *id004
77
+ - !ruby/object:Gem::Dependency
78
+ name: i18n
79
+ prerelease: false
80
+ requirement: &id005 !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ hash: 3
86
+ segments:
87
+ - 0
88
+ version: "0"
89
+ type: :development
90
+ version_requirements: *id005
91
+ - !ruby/object:Gem::Dependency
92
+ name: rake
93
+ prerelease: false
94
+ requirement: &id006 !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ hash: 3
100
+ segments:
101
+ - 0
102
+ version: "0"
103
+ type: :development
104
+ version_requirements: *id006
105
+ - !ruby/object:Gem::Dependency
106
+ name: rcov
107
+ prerelease: false
108
+ requirement: &id007 !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ hash: 3
114
+ segments:
115
+ - 0
116
+ version: "0"
117
+ type: :development
118
+ version_requirements: *id007
77
119
  description: mediawiki parser
78
120
  email: nricciar@gmail.com
79
121
  executables: []
@@ -84,39 +126,47 @@ extra_rdoc_files:
84
126
  - README
85
127
  - MIT-LICENSE
86
128
  files:
129
+ - .gitignore
130
+ - .travis.yml
131
+ - Gemfile
132
+ - MIT-LICENSE
133
+ - README
134
+ - README.textile
135
+ - Rakefile
136
+ - examples/info.rb
137
+ - examples/print.rb
138
+ - init.rb
87
139
  - lib/wikicloth.rb
88
140
  - lib/wikicloth/core_ext.rb
89
- - lib/wikicloth/wiki_buffer/html_element.rb
90
- - lib/wikicloth/wiki_buffer/var.rb
91
- - lib/wikicloth/wiki_buffer/table.rb
92
- - lib/wikicloth/wiki_buffer/link.rb
93
- - lib/wikicloth/token.rb
94
141
  - lib/wikicloth/lexer.rb
95
142
  - lib/wikicloth/parser.rb
96
143
  - lib/wikicloth/section.rb
97
- - lib/wikicloth/wiki_link_handler.rb
144
+ - lib/wikicloth/token.rb
145
+ - lib/wikicloth/version.rb
98
146
  - lib/wikicloth/wiki_buffer.rb
99
- - tasks/wikicloth_tasks.rake
147
+ - lib/wikicloth/wiki_buffer/html_element.rb
148
+ - lib/wikicloth/wiki_buffer/link.rb
149
+ - lib/wikicloth/wiki_buffer/table.rb
150
+ - lib/wikicloth/wiki_buffer/var.rb
151
+ - lib/wikicloth/wiki_link_handler.rb
152
+ - run_tests.rb
153
+ - sample_documents/air_force_one.wiki
154
+ - sample_documents/cheatsheet.wiki
155
+ - sample_documents/default.css
156
+ - sample_documents/elements.wiki
100
157
  - sample_documents/george_washington.wiki
101
158
  - sample_documents/images.wiki
102
- - sample_documents/wiki_tables.wiki
103
- - sample_documents/lists.wiki
104
- - sample_documents/elements.wiki
105
- - sample_documents/tv.wiki
106
159
  - sample_documents/klaus_schulze.wiki
107
- - sample_documents/random.wiki
108
- - sample_documents/air_force_one.wiki
109
- - sample_documents/cheatsheet.wiki
160
+ - sample_documents/lists.wiki
110
161
  - sample_documents/pipe_trick.wiki
111
- - init.rb
112
- - uninstall.rb
113
- - Rakefile
114
- - install.rb
115
- - README
116
- - MIT-LICENSE
117
- - test/wiki_cloth_test.rb
162
+ - sample_documents/random.wiki
163
+ - sample_documents/tv.wiki
164
+ - sample_documents/wiki.png
165
+ - sample_documents/wiki_tables.wiki
166
+ - tasks/wikicloth_tasks.rake
118
167
  - test/test_helper.rb
119
- - run_tests.rb
168
+ - test/wiki_cloth_test.rb
169
+ - wikicloth.gemspec
120
170
  has_rdoc: true
121
171
  homepage: http://github.com/nricciar/wikicloth
122
172
  licenses: []
@@ -151,7 +201,5 @@ rubygems_version: 1.3.7
151
201
  signing_key:
152
202
  specification_version: 3
153
203
  summary: An implementation of the mediawiki markup in ruby
154
- test_files:
155
- - test/wiki_cloth_test.rb
156
- - test/test_helper.rb
157
- - run_tests.rb
204
+ test_files: []
205
+
data/install.rb DELETED
File without changes
data/uninstall.rb DELETED
File without changes