[DRE-commits] [SCM] ruby-kramdown.git branch, master, updated. debian/0.14.1-1-3-gc141b5b

Youhei SASAKI uwabami at gfd-dennou.org
Sat Jan 26 12:32:48 UTC 2013


The following commit has been merged in the master branch:
commit 79cab811ce2c0cf94bc2348626b0b438fc2875d3
Author: Youhei SASAKI <uwabami at gfd-dennou.org>
Date:   Sat Jan 26 21:25:12 2013 +0900

    Imported Upstream version 0.14.2

diff --git a/CONTRIBUTERS b/CONTRIBUTERS
index 23b95f2..8abed8c 100644
--- a/CONTRIBUTERS
+++ b/CONTRIBUTERS
@@ -1,6 +1,6 @@
   Count Name
 ======= ====
-    543 Thomas Leitner <t_leitner at gmx.at>
+    553 Thomas Leitner <t_leitner at gmx.at>
       6 Gioele Barabucci <gioele at svario.it>
       3 gettalong <t_leitner at gmx.at>
       3 Ben Armston <ben.armston at googlemail.com>
diff --git a/ChangeLog b/ChangeLog
index a4fc219..4f5dd91 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,131 @@
+commit 2c5f0da1bd0ef6c91715522dfbe011c84274e627
+Author: Thomas Leitner <t_leitner at gmx.at>
+Date:   Sun Jan 20 13:55:59 2013 +0100
+
+    Updated release notes, version and homepage.
+
+doc/default.template
+doc/img/graph-ruby-1.8.5-231.png
+doc/img/graph-ruby-1.8.6-399.png
+doc/img/graph-ruby-1.8.7-249.png
+doc/img/graph-ruby-1.8.7-302.png
+doc/img/graph-ruby-1.9.2p136-136.png
+doc/img/graph-ruby-1.9.3p125-125.png
+doc/img/graph-ruby-1.9.3p327-327.png
+doc/img/graph-ruby-2.0.0dev--1.png
+doc/index.page
+doc/news/release_0_14_2.page
+doc/sidebar.template
+doc/tests.page
+lib/kramdown/version.rb
+
+commit 33c6e172569d50f783cc472d4648f089125cfea5
+Author: Thomas Leitner <t_leitner at gmx.at>
+Date:   Sun Jan 20 12:21:20 2013 +0100
+
+    Added webgen-tmp to gitignore
+
+.gitignore
+
+commit a830a73f20c16c97123be54ad8026366aae76f91
+Author: Thomas Leitner <t_leitner at gmx.at>
+Date:   Sun Jan 20 11:53:53 2013 +0100
+
+    Added new option link_defs for kramdown parser
+    
+    This option allows to pre-define link definitions that can be used
+    by reference style links in the document.
+
+lib/kramdown/options.rb
+lib/kramdown/parser/kramdown.rb
+test/testcases/span/01_link/reference.html
+test/testcases/span/01_link/reference.html.19
+test/testcases/span/01_link/reference.options
+test/testcases/span/01_link/reference.text
+
+commit 24811c707f7c271443936a78a43bc8136df522d9
+Author: Thomas Leitner <t_leitner at gmx.at>
+Date:   Sun Jan 13 16:27:07 2013 +0100
+
+    Removed unused parameter in Converter::Toc#add_to_toc private method
+
+lib/kramdown/converter/toc.rb
+
+commit a81b0b4a1054ff20de73fb9b96769d9ac2317e69
+Author: Thomas Leitner <t_leitner at gmx.at>
+Date:   Sun Jan 13 16:24:17 2013 +0100
+
+    Updated kramdown website
+    
+    * Now using webgen 1.0.0 for generating the site
+    * Added two additional menus to the sidebar for documentation
+      pages to make navigating between pages easier
+
+Rakefile
+doc/converter/html.page
+doc/converter/kramdown.page
+doc/converter/latex.page
+doc/converter/remove_html_tags.page
+doc/default.scss.css
+doc/default.template
+doc/documentation.page
+doc/documentation.template
+doc/index.page
+doc/metainfo
+doc/news.feed
+doc/news.page
+doc/options.page
+doc/parser/html.page
+doc/parser/kramdown.page
+doc/quickref.page
+doc/syntax.page
+doc/tests.page
+webgen.config
+
+commit 68572252546ba3251ae9630a197f94817ddec4c5
+Author: Thomas Leitner <t_leitner at gmx.at>
+Date:   Sun Jan 13 15:48:27 2013 +0100
+
+    Added Redcarpet to benchmark, benchmark must now be run manually for tests.page
+
+benchmark/benchmark.rb
+doc/tests.page
+
+commit c655bac7f8a26ec43ec5afc3182385245dcdfeb6
+Author: Thomas Leitner <t_leitner at gmx.at>
+Date:   Sun Jan 13 13:15:03 2013 +0100
+
+    Background of main content now always white regardless of its height
+
+doc/default.template
+doc/design.scss.css
+
+commit 2101d7b8ed8605cad70be804d484c687f9e2ba2a
+Author: Thomas Leitner <t_leitner at gmx.at>
+Date:   Sun Jan 13 09:12:03 2013 +0100
+
+    Mentioned that the coderay library must be installed for syntax highlighting to work
+
+doc/converter/html.page
+
+commit 1db179c7da8a886b8a1004b16b1ff19f4009f26e
+Author: Thomas Leitner <t_leitner at gmx.at>
+Date:   Sun Jan 13 09:08:56 2013 +0100
+
+    Fixed bug with atx headers without header text
+
+lib/kramdown/parser/kramdown/header.rb
+test/testcases/block/04_header/atx_header.html
+test/testcases/block/04_header/atx_header.text
+
+commit 836778220d09a21409801b8e60b6645c2d1be94d
+Author: Thomas Leitner <t_leitner at gmx.at>
+Date:   Sun Jan 13 09:00:13 2013 +0100
+
+    Added helper methods for formatting the elements as HTML tags in HTML converter
+
+lib/kramdown/converter/html.rb
+
 commit 5971fc408de5137b38f1ebe95f47f3f6573a86ed
 Author: Thomas Leitner <t_leitner at gmx.at>
 Date:   Fri Nov 30 18:41:57 2012 +0100
diff --git a/Rakefile b/Rakefile
index 21b1726..54798e9 100644
--- a/Rakefile
+++ b/Rakefile
@@ -8,9 +8,7 @@ rescue LoadError
 end
 
 begin
-  require 'webgen/webgentask'
   require 'webgen/page'
-  require 'webgen/website'
 rescue LoadError
 end
 
@@ -79,26 +77,13 @@ task :clobber do
   ruby "setup.rb clean"
 end
 
-
-if defined? Webgen
+if defined?(Webgen)
   desc "Generate the HTML documentation"
-  Webgen::WebgenTask.new('htmldoc') do |site|
-    site.clobber_outdir = true
-    site.config_block = lambda do |config|
-      config['sources'] = [['/', "Webgen::Source::FileSystem", 'doc']]
-      config['output'] = ['Webgen::Output::FileSystem', 'htmldoc']
-      config.default_processing_pipeline('Page' => 'erb,tags,kramdown,blocks,fragments')
-      config.optionsdisplay.items [], :mandatory => 'default'
-      config.kdlink.oid nil, :mandatory => true
-      config.kdlink.part nil, :mandatory => true
-      config['contentprocessor.tags.map']['options'] = 'OptionsDisplay'
-      config['contentprocessor.tags.map']['kdexample'] = 'KDExample'
-      config['contentprocessor.tags.map']['kdlink'] = 'KDLink'
-      config['contentprocessor.kramdown.options'][:coderay_line_numbers] = nil
-      require 'syck'
-      YAML::ENGINE.yamler = 'syck'
-    end
+  task :htmldoc do
+    ruby "-Ilib -S webgen"
   end
+  CLOBBER << "htmldoc/"
+  CLOBBER << "webgen-tmp"
 end
 
 if defined? RDoc::Task
@@ -319,55 +304,3 @@ EOF
 end
 
 task :clobber => ['dev:clobber']
-
-# Helper methods and misc  ###################################################################
-
-if defined? Webgen
-
-  class OptionsDisplay
-
-    include Webgen::Tag::Base
-
-    def call(tag, body, context)
-      param('optionsdisplay.items').collect do |opt|
-        Kramdown::Options.definitions[opt]
-      end.collect do |term|
-        lines = term.desc.split(/\n/)
-        first = lines.shift
-        rest = lines[0..-2].collect {|l| "  " + l}.join("\n")
-        "`#{term.name}`\n: #{first}\n#{rest}\n\n"
-      end.join("\n")
-    end
-
-  end
-
-  require 'cgi'
-
-  class KDExample
-
-    include Webgen::Tag::Base
-
-    def call(tag, body, context)
-      body.strip!
-      result = ::Kramdown::Document.new(body, :auto_ids => false).to_html
-      before = "<pre class='kdexample-before'><code>#{CGI::escapeHTML(body)}\n</code></pre>"
-      after = "<pre class='kdexample-after-source'><code>#{CGI::escapeHTML(result)}\n</code></pre>"
-      afterhtml = "<div class='kdexample-after-live'>#{result}</div>"
-
-      "<div class='kdexample'>#{before}#{after}#{afterhtml}\n</div><div class='clear'></div>"
-    end
-
-  end
-
-  class KDLink
-
-    include Webgen::Tag::Base
-
-    def call(tag, body, context)
-      link = "<a href='syntax.html##{param('kdlink.oid')}'>→ Syntax for #{param('kdlink.part')}</a>"
-      "<div class='kdsyntaxlink'>#{link}\n</div>"
-    end
-
-  end
-
-end
diff --git a/VERSION b/VERSION
index 930e300..e867cc2 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.14.1
+0.14.2
diff --git a/benchmark/benchmark.rb b/benchmark/benchmark.rb
index 5386148..766c3de 100644
--- a/benchmark/benchmark.rb
+++ b/benchmark/benchmark.rb
@@ -7,6 +7,7 @@ require 'maruku'
 require 'maruku/version'
 require 'rdiscount'
 require 'bluefeather'
+require 'redcarpet'
 
 module MaRuKu::Errors
   def tell_user(s)
@@ -30,5 +31,6 @@ FILES.each do |file|
     b.report("BlueFeather #{BlueFeather::VERSION}") { RUNS.times { BlueFeather.parse(data) } }
     b.report("BlueCloth #{BlueCloth::VERSION}") { RUNS.times { BlueCloth.new(data).to_html } }
     b.report("RDiscount #{RDiscount::VERSION}") { RUNS.times { RDiscount.new(data).to_html } }
+    b.report("redcarpet #{Redcarpet::VERSION}") { RUNS.times { Redcarpet::Markdown.new(Redcarpet::Render::HTML).render(data) } }
   end
 end
diff --git a/doc/default.scss.css b/doc/default.scss.css
index 98f469c..b08a599 100644
--- a/doc/default.scss.css
+++ b/doc/default.scss.css
@@ -81,33 +81,30 @@ aside a {
         opacity: 0;
     }
 
-    pre.kdexample-before {
-        width: 45%;
-        float: left;
-        margin: 0;
+    table.kdexample td {
+        vertical-align: top;
     }
 
-    pre.kdexample-before:hover + pre {
+    table.kdexample pre {
+        margin: 5px 0px;
+    }
+
+    .kdexample:hover .kdexample-after-source {
         display: block;
     }
 
-    pre.kdexample-after-source {
+    .kdexample-after-source {
         display: none;
-        width: 45%;
-        float: right;
         background-color: #ffffee;
         border: 2px solid #e6e8e9;
         margin: 0 10px;
         padding: 5px;
     }
 
-    div.kdexample-after-live {
-        width: 45%;
-        float: right;
-        clear: none;
+    .kdexample-after-live {
         background-color: #eeffee;
         border: 2px solid #e6e8e9;
-        margin: 0 10px 12px;
+        margin: 5px 0px 12px;
         padding: 5px;
     }
 
diff --git a/doc/default.template b/doc/default.template
index b7a6147..25d594d 100644
--- a/doc/default.template
+++ b/doc/default.template
@@ -3,7 +3,7 @@
   <head>
     <meta http-equiv="content-type" content="text/html; charset=utf-8" />
     <meta name="author" content="Thomas Leitner" />
-    <meta name="copyright" content="2009-2012 Thomas Leitner" />
+    <meta name="copyright" content="2009-2013 Thomas Leitner" />
     <meta name="description" content="kramdown is a fast, pure-Ruby Markdown-superset converter" />
     <meta name="keywords" content="ruby, kramdown, markdown, text markup" />
     <link href="{relocatable: default.css}" type="text/css" rel="stylesheet" media="screen,projection" />
@@ -19,12 +19,12 @@
       </hgroup>
 
       <nav>
-        {menu: {max_levels: 1, used_nodes: files}}
+        {menu: {options: {mi: {in_menu: true}, sort: sort_info, flatten: true}}}
       </nav>
     </header>
 
     <div id="wrapper">
-      <% if context.content_node.node_info[:page].blocks.has_key?('intro') %>
+      <% if context.content_node.blocks.has_key?('intro') %>
       <aside class="banner">
         <webgen:block name="intro" node="first" />
       </aside>
@@ -37,12 +37,13 @@
       </aside>
 
       <div id="content">
-        <webgen:block name="content" />
+        <webgen:block name="content" node="first" />
       </div>
+      <div style="clear:both"></div>
     </div>
 
     <footer>
-      <div class="float-left">Copyright © 2009-2012 Thomas Leitner</div>
+      <div class="float-left">Copyright © 2009-2013 Thomas Leitner</div>
       <div class="float-right">Generated by <a href="http://webgen.rubyforge.org">webgen</a></div>
     </footer>
 
diff --git a/doc/design.scss.css b/doc/design.scss.css
index d9958f9..1a42fe3 100644
--- a/doc/design.scss.css
+++ b/doc/design.scss.css
@@ -259,7 +259,7 @@ nav {
 }
 
 aside {
-    position: absolute;
+    float: right;
     right: 0;
     background-color: white;
     width: 252px;
diff --git a/doc/documentation.page b/doc/documentation.page
index 1559102..c9cc6e5 100644
--- a/doc/documentation.page
+++ b/doc/documentation.page
@@ -3,6 +3,8 @@ title: Documentation
 in_menu: true
 sort_info: 7
 ---
+# kramdown Documentation
+
 ## Overview
 
 kramdown is first and foremost a library for converting text written in a superset of Markdown to
@@ -20,6 +22,10 @@ formats. The following input and output formats are currently supported:
 The [kramdown syntax page](syntax.html) describes in detail what is supported and how it differs
 from standard Markdown.
 
+For all available options have a look at the [options documentation](options.html) or have a look at
+a parser/converter page to see which options they support!
+
+
 ## Usage
 
 {:ruby: .language-ruby}
diff --git a/doc/documentation.template b/doc/documentation.template
new file mode 100644
index 0000000..ea573b2
--- /dev/null
+++ b/doc/documentation.template
@@ -0,0 +1,20 @@
+--- name:sidebar pipeline:erb,tags,kramdown
+<h1>Documentation</h1>
+
+* Parsers
+  * [kramdown](parser/kramdown.html)
+  * [Markdown](parser/markdown.html)
+  * [HTML](parser/html.html)
+* Converters
+  * [HTML](converter/html.html)
+  * [LaTeX](converter/latex.html)
+  * [kramdown](converter/kramdown.html)
+  * [RemoveHtmlTags](converter/remove_html_tags.html)
+* [Configuration Options](options.html)
+* [Tests](tests.html)
+
+<% if context.node.children.first && context.node.children.first.children.length > 1 %>
+<h1>Contents</h1>
+<% end %>
+
+{menu: {options: {descendants: true, levels: [3,6]}}}
diff --git a/doc/index.page b/doc/index.page
index c78653a..21b1705 100644
--- a/doc/index.page
+++ b/doc/index.page
@@ -12,12 +12,13 @@ its parsers/converters. The [quick reference](quickref.html) provides a overview
 you need a more detailed description of the superset of Markdown which kramdown supports the [syntax
 page](syntax.html) is the place to go!
 
-{tikz:: path: overview.png
+{tikz::
+path: overview.png
 img_attr: {style: 'background:transparent'}
-libraries: [mindmap, trees, arrows]
-transparent: true
-resolution: 300 100
-opts: |
+content_processor.tikz.libraries: [mindmap, trees, arrows]
+content_processor.tikz.transparent: true
+content_processor.tikz.resolution: 300 100
+content_processor.tikz.opts: |
   mindmap, concept color=black, text=white,
   root concept/.append style={font=\Large},
   level 1 concept/.append style={font=\Large, minimum size=2.6cm},
@@ -85,7 +86,7 @@ Markdown implementations because kramdown borrowed many ideas from existing pack
 completely written in Ruby, supports standard Markdown (with some minor modifications) and various
 extensions that have been made popular by the [PHP Markdown Extra] package and [Maruku].
 
-It is probably the fastest pure-Ruby Markdown converter available (February 2012), being about 4x
+It is probably the fastest pure-Ruby Markdown converter available (January 2013), being about 4x
 faster than [Maruku] and about 5x faster than [BlueFeather].
 
 [PHP Markdown Extra]: http://michelf.com/projects/php-markdown/extra/
diff --git a/doc/metainfo b/doc/metainfo
new file mode 100644
index 0000000..efce601
--- /dev/null
+++ b/doc/metainfo
@@ -0,0 +1,3 @@
+--- alcn
+[converter/*.html, parser/*.html, documentation.en.html, options.en.html, tests.en.html]:
+  template: ../documentation.template
diff --git a/doc/news.feed b/doc/news.feed
index ca144ef..c4c7588 100644
--- a/doc/news.feed
+++ b/doc/news.feed
@@ -4,7 +4,7 @@ description: kramdown - a fast, pure Ruby Markdown-superset converter
 site_url: http://kramdown.rubyforge.org/
 author: Thomas Leitner
 author_url: http://kramdown.rubyforge.org
-number_of_entries: 10
-rss: false
-entries: [news/*.html]
+entries: {alcn: news/*.html, sort: sort_info, reverse: true, limit: 10}
+versions:
+  atom:
 
diff --git a/doc/news.page b/doc/news.page
index a30b94c..b0f7f42 100644
--- a/doc/news.page
+++ b/doc/news.page
@@ -12,10 +12,11 @@ sort_info: 30
 
 --- name:newsdata pipeline:erb
 <%
-context.content_node.tree.node_access[:alcn].select do |na,no|
-  na =~ /\/news\/.+/ && no.is_file?
-end.collect {|na,no| no}.sort.reverse.each do |node|
-  context.options['contentprocessor.kramdown.options'] = {:auto_id_prefix => node.lcn.tr('.', '-')}
+opts = {:alcn => '/news/*.html', :sort => 'sort_info', :reverse => true, :flatten => true}
+context.website.ext.item_tracker.add(context.dest_node, :nodes, :node_finder_option_set,
+  {:opts => opts, :ref_alcn => context.node.alcn}, :content)
+context.website.ext.node_finder.find(opts, context.node).each do |node|
+ # context.options['contentprocessor.kramdown.options'] = {:auto_id_prefix => node.lcn.tr('.', '-')}
 %>
 
 <div class='news-item'>
diff --git a/doc/options.page b/doc/options.page
new file mode 100644
index 0000000..60cb271
--- /dev/null
+++ b/doc/options.page
@@ -0,0 +1,10 @@
+---
+title: Options
+---
+## Available Options
+
+The behaviour of kramdown can be adjusted via the available options. Below is a list of all
+currently available options. Have a look at the documentation of a converter or parser to see
+directly which options they support!
+
+{options: {items: all}}
diff --git a/doc/quickref.page b/doc/quickref.page
index a840349..21a296a 100644
--- a/doc/quickref.page
+++ b/doc/quickref.page
@@ -5,7 +5,7 @@ sort_info: 9
 --- name:sidebar
 <h1>Contents</h1>
 
-{menu: {used_nodes: fragments, min_levels: 4, max_levels: 6}}
+{menu: {options: {descendants: true, levels: [2,6]}}}
 --- name:content
 # Quick Reference
 
@@ -23,14 +23,16 @@ text phrases as emphasized, as a link and so on.
 All examples below feature the kramdown source, the converted HTML source (shown when hovering over
 the kramdown source) and the output as it appears in the browser. This looks like this:
 
-<div class="kdexample">
-<pre class="kdexample-before"><code>kramdown example code</code></pre>
-<pre class="kdexample-after-source"><code>Example code converted to HTML</code></pre>
+<table class="kdexample">
+<tr>
+<td><pre class="kdexample-before"><code>kramdown example code</code></pre></td>
+<td><pre class="kdexample-after-source"><code>Example code converted to HTML</code></pre>
 <div class="kdexample-after-live" style="clear:none">
 Live browser view of example code
 </div>
-</div>
-<div class="clear"></div>
+</td>
+</tr>
+</table>
 
 
 # Block-level Elements - Main Structural Elements
diff --git a/doc/sidebar.template b/doc/sidebar.template
index cf718c8..cc6d843 100644
--- a/doc/sidebar.template
+++ b/doc/sidebar.template
@@ -1,7 +1,7 @@
 <h2>News</h2>
 
-<p>The latest version of kramdown is <b>0.14.1</b> and it was released
-on <b>2012-11-30</b>.</p>
+<p>The latest version of kramdown is <b>0.14.2</b> and it was released
+on <b>2013-01-20</b>.</p>
 
 <p>More <a href="{relocatable: news.html}">news</a>…</p>
 
diff --git a/doc/syntax.page b/doc/syntax.page
index 10393ce..3ea0887 100644
--- a/doc/syntax.page
+++ b/doc/syntax.page
@@ -5,7 +5,7 @@ sort_info: 10
 --- name:sidebar
 <h1>Contents</h1>
 
-{menu: {used_nodes: fragments, min_levels: 4, max_levels: 6}}
+{menu: {options: {descendants: true, levels: [2,6]}}}
 --- name:content
 
 # kramdown Syntax
diff --git a/doc/tests.page b/doc/tests.page
index 792c9d7..7caf543 100644
--- a/doc/tests.page
+++ b/doc/tests.page
@@ -1,8 +1,9 @@
 ---
 title: Tests and Benchmark
 ---
+# Tests and Benchmark
 
-# Tests
+## Tests
 
 There exist several test suites for testing the correctness of a Markdown implementation. The
 original [Markdown Test Suite] is the standard which one needs to test against. The [PHP Markdown
@@ -26,19 +27,54 @@ If you believe you have found a bug in the implementation, please follow these s
 [bug report]: http://rubyforge.org/tracker/?atid=28673&group_id=7403&func=browse
 
 
-# Benchmark
+## Benchmark
 
 kramdown comes with a small benchmark to test how fast it is in regard to four other Ruby Markdown
-implementations: Maruku, BlueFeather, BlueCloth and RDiscount. The first two are written using only
-Ruby, the latter two use the C discount library for the actual hard work (which makes them really
-fast but they do not provide additional syntax elements). As one can see below, kramdown is
-currently (February 2012) ~3-4x faster than Maruku, ~4-5x faster than BlueFeather but ~30x slower
-than BlueCloth and rdiscount:
+implementations: Maruku, BlueFeather, BlueCloth, RDiscount and Redcarpet. The first two are written
+using only Ruby, the latter three are written in C and need to be compiled.
+
+As one can see below, kramdown is currently (January 2013) ~3-4x faster than Maruku, ~4-5x faster
+than BlueFeather but ~30x slower than BlueCloth and RDiscount and ~100x slower than Redcarpet:
 
 <pre><code>
-{execute_cmd: {command: "ruby -Ilib -rubygems benchmark/benchmark.rb", process_output: false, escape_html: true}}
-</code>
-</pre>
+Running tests on 2013-01-13 under ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-linux]
+
+Test using file mdsyntax.text and 20 runs
+Rehearsal ----------------------------------------------------
+kramdown 0.14.1    1.400000   0.010000   1.410000 (  1.428902)
+Maruku 0.6.0       4.520000   0.030000   4.550000 (  4.578439)
+BlueFeather 0.40   5.680000   0.020000   5.700000 (  5.707717)
+BlueCloth 2.2.0    0.060000   0.000000   0.060000 (  0.067857)
+RDiscount 1.6.8    0.030000   0.000000   0.030000 (  0.027722)
+redcarpet 2.2.2    0.010000   0.000000   0.010000 (  0.007642)
+------------------------------------------ total: 11.760000sec
+
+                       user     system      total        real
+kramdown 0.14.1    1.270000   0.000000   1.270000 (  1.273636)
+Maruku 0.6.0       4.400000   0.020000   4.420000 (  4.434123)
+BlueFeather 0.40   5.610000   0.000000   5.610000 (  5.631930)
+BlueCloth 2.2.0    0.070000   0.000000   0.070000 (  0.069900)
+RDiscount 1.6.8    0.040000   0.000000   0.040000 (  0.035793)
+redcarpet 2.2.2    0.010000   0.000000   0.010000 (  0.007520)
+
+Test using file mdbasics.text and 20 runs
+Rehearsal ----------------------------------------------------
+kramdown 0.14.1    0.230000   0.000000   0.230000 (  0.228075)
+Maruku 0.6.0       1.070000   0.000000   1.070000 (  1.079782)
+BlueFeather 0.40   1.440000   0.000000   1.440000 (  1.446999)
+BlueCloth 2.2.0    0.020000   0.000000   0.020000 (  0.019677)
+RDiscount 1.6.8    0.010000   0.000000   0.010000 (  0.008010)
+redcarpet 2.2.2    0.010000   0.000000   0.010000 (  0.002431)
+------------------------------------------- total: 2.780000sec
+
+                       user     system      total        real
+kramdown 0.14.1    0.230000   0.000000   0.230000 (  0.227214)
+Maruku 0.6.0       1.070000   0.000000   1.070000 (  1.070332)
+BlueFeather 0.40   1.430000   0.000000   1.430000 (  1.434958)
+BlueCloth 2.2.0    0.020000   0.000000   0.020000 (  0.021127)
+RDiscount 1.6.8    0.020000   0.000000   0.020000 (  0.009714)
+redcarpet 2.2.2    0.000000   0.000000   0.000000 (  0.002571)
+</code></pre>
 
 And here are some graphs which show the execution times of the various kramdown releases on
 different Ruby interpreters:
@@ -48,7 +84,8 @@ different Ruby interpreters:
 ![ruby 1.8.7p249]({relocatable: img/graph-ruby-1.8.7-249.png})
 ![ruby 1.8.7p302]({relocatable: img/graph-ruby-1.8.7-302.png})
 ![ruby 1.9.2p136]({relocatable: img/graph-ruby-1.9.2p136-136.png})
-![ruby 1.9.3p125]({relocatable: img/graph-ruby-1.9.3p125-125.png})
+![ruby 1.9.3p327]({relocatable: img/graph-ruby-1.9.3p327-327.png})
+![ruby 2.0.0dev]({relocatable: img/graph-ruby-2.0.0dev--1.png})
 
 [Markdown Test Suite]: http://daringfireball.net/projects/downloads/MarkdownTest_1.0.zip
 [MDTest]: http://www.michelf.com/docs/projets/mdtest-1.0.zip
diff --git a/lib/kramdown/converter/html.rb b/lib/kramdown/converter/html.rb
index 4b9c625..21374c8 100644
--- a/lib/kramdown/converter/html.rb
+++ b/lib/kramdown/converter/html.rb
@@ -105,7 +105,7 @@ module Kramdown
         if el.options[:transparent]
           inner(el, indent)
         else
-          "#{' '*indent}<p#{html_attributes(el.attr)}>#{inner(el, indent)}</p>\n"
+          format_as_block_html(el.type, el.attr, inner(el, indent), indent)
         end
       end
 
@@ -140,7 +140,7 @@ module Kramdown
       end
 
       def convert_blockquote(el, indent)
-        "#{' '*indent}<blockquote#{html_attributes(el.attr)}>\n#{inner(el, indent)}#{' '*indent}</blockquote>\n"
+        format_as_indented_block_html(el.type, el.attr, inner(el, indent), indent)
       end
 
       def convert_header(el, indent)
@@ -150,7 +150,7 @@ module Kramdown
         end
         @toc << [el.options[:level], attr['id'], el.children] if attr['id'] && in_toc?(el)
         level = output_header_level(el.options[:level])
-        "#{' '*indent}<h#{level}#{html_attributes(attr)}>#{inner(el, indent)}</h#{level}>\n"
+        format_as_block_html("h#{level}", attr, inner(el, indent), indent)
       end
 
       def convert_hr(el, indent)
@@ -162,7 +162,7 @@ module Kramdown
           @toc_code = [el.type, el.attr, (0..128).to_a.map{|a| rand(36).to_s(36)}.join]
           @toc_code.last
         else
-          "#{' '*indent}<#{el.type}#{html_attributes(el.attr)}>\n#{inner(el, indent)}#{' '*indent}</#{el.type}>\n"
+          format_as_indented_block_html(el.type, el.attr, inner(el, indent), indent)
         end
       end
       alias :convert_ol :convert_ul
@@ -181,7 +181,7 @@ module Kramdown
       alias :convert_dd :convert_li
 
       def convert_dt(el, indent)
-        "#{' '*indent}<dt#{html_attributes(el.attr)}>#{inner(el, indent)}</dt>\n"
+        format_as_block_html(el.type, el.attr, inner(el, indent), indent)
       end
 
       def convert_html_element(el, indent)
@@ -218,15 +218,12 @@ module Kramdown
       alias :convert_xml_pi :convert_xml_comment
 
       def convert_table(el, indent)
-        "#{' '*indent}<table#{html_attributes(el.attr)}>\n#{inner(el, indent)}#{' '*indent}</table>\n"
+        format_as_indented_block_html(el.type, el.attr, inner(el, indent), indent)
       end
-
-      def convert_thead(el, indent)
-        "#{' '*indent}<#{el.type}#{html_attributes(el.attr)}>\n#{inner(el, indent)}#{' '*indent}</#{el.type}>\n"
-      end
-      alias :convert_tbody :convert_thead
-      alias :convert_tfoot :convert_thead
-      alias :convert_tr  :convert_thead
+      alias :convert_thead :convert_table
+      alias :convert_tbody :convert_table
+      alias :convert_tfoot :convert_table
+      alias :convert_tr  :convert_table
 
       ENTITY_NBSP = ::Kramdown::Utils::Entities.entity('nbsp') # :nodoc:
 
@@ -239,7 +236,7 @@ module Kramdown
           attr = el.attr.dup
           attr['style'] = (attr.has_key?('style') ? "#{attr['style']}; ": '') << "text-align: #{alignment}"
         end
-        "#{' '*indent}<#{type}#{html_attributes(attr)}>#{res.empty? ? entity_to_str(ENTITY_NBSP) : res}</#{type}>\n"
+        format_as_block_html(type, attr, res.empty? ? entity_to_str(ENTITY_NBSP) : res, indent)
       end
 
       def convert_comment(el, indent)
@@ -262,7 +259,7 @@ module Kramdown
           attr['href'] = obfuscate('mailto') << ":" << obfuscate(mail_addr)
           res = obfuscate(res) if res == mail_addr
         end
-        "<a#{html_attributes(attr)}>#{res}</a>"
+        format_as_span_html(el.type, attr, res)
       end
 
       def convert_img(el, indent)
@@ -271,12 +268,12 @@ module Kramdown
 
       def convert_codespan(el, indent)
         lang = extract_code_language(el.attr)
-        if @coderay_enabled && lang
-          result = CodeRay.scan(el.value, lang.to_sym).html(:wrap => :span, :css => @options[:coderay_css]).chomp
-          "<code#{html_attributes(el.attr)}>#{result}</code>"
-        else
-          "<code#{html_attributes(el.attr)}>#{escape_html(el.value)}</code>"
-        end
+        result = if @coderay_enabled && lang
+                   CodeRay.scan(el.value, lang.to_sym).html(:wrap => :span, :css => @options[:coderay_css]).chomp
+                 else
+                   escape_html(el.value)
+                 end
+        format_as_span_html('code', el.attr, result)
       end
 
       def convert_footnote(el, indent)
@@ -295,7 +292,7 @@ module Kramdown
       end
 
       def convert_em(el, indent)
-        "<#{el.type}#{html_attributes(el.attr)}>#{inner(el, indent)}</#{el.type}>"
+        format_as_span_html(el.type, el.attr, inner(el, indent))
       end
       alias :convert_strong :convert_em
 
@@ -323,12 +320,17 @@ module Kramdown
       def convert_math(el, indent)
         block = (el.options[:category] == :block)
         value = (el.value =~ /<|&/ ? "% <![CDATA[\n#{el.value} %]]>" : el.value)
-        "<script type=\"math/tex#{block ? '; mode=display' : ''}\">#{value}</script>#{block ? "\n" : ''}"
+        type = {:type => "math/tex#{block ? '; mode=display' : ''}"}
+        if block
+          format_as_block_html('script', type, value, indent)
+        else
+          format_as_span_html('script', type, value)
+        end
       end
 
       def convert_abbreviation(el, indent)
         title = @root.options[:abbrev_defs][el.value]
-        "<abbr#{!title.empty? ? html_attributes(:title => title) : ''}>#{el.value}</abbr>"
+        format_as_span_html("abbr", {:title => (title.empty? ? nil : title)}, el.value)
       end
 
       def convert_root(el, indent)
@@ -346,6 +348,22 @@ module Kramdown
         result
       end
 
+      # Format the given element as span HTML.
+      def format_as_span_html(name, attr, body)
+        "<#{name}#{html_attributes(attr)}>#{body}</#{name}>"
+      end
+
+      # Format the given element as block HTML.
+      def format_as_block_html(name, attr, body, indent)
+        "#{' '*indent}<#{name}#{html_attributes(attr)}>#{body}</#{name}>\n"
+      end
+
+      # Format the given element as block HTML with a newline after the start tag and indentation
+      # before the end tag.
+      def format_as_indented_block_html(name, attr, body, indent)
+        "#{' '*indent}<#{name}#{html_attributes(attr)}>\n#{body}#{' '*indent}</#{name}>\n"
+      end
+
       # Generate and return an element tree for the table of contents.
       def generate_toc_tree(toc, type, attr)
         sections = Element.new(type, nil, attr)
@@ -417,7 +435,7 @@ module Kramdown
           end
           para.children << ref
         end
-        (ol.children.empty? ? '' : "<div class=\"footnotes\">\n#{convert(ol, 2)}</div>\n")
+        (ol.children.empty? ? '' : format_as_indented_block_html('div', {:class => "footnotes"}, convert(ol, 2), 0))
       end
 
     end
diff --git a/lib/kramdown/converter/toc.rb b/lib/kramdown/converter/toc.rb
index 1fdc778..92cbd38 100644
--- a/lib/kramdown/converter/toc.rb
+++ b/lib/kramdown/converter/toc.rb
@@ -48,7 +48,7 @@ module Kramdown
         if el.type == :header && in_toc?(el)
           attr = el.attr.dup
           attr['id'] = generate_id(el.options[:raw_text]) if @options[:auto_ids] && !attr['id']
-          add_to_toc(el, attr['id'], @toc) if attr['id']
+          add_to_toc(el, attr['id']) if attr['id']
         else
           el.children.each {|child| convert(child)}
         end
@@ -57,7 +57,7 @@ module Kramdown
 
       private
 
-      def add_to_toc(el, id, toc)
+      def add_to_toc(el, id)
         toc_element = Element.new(:toc, el, :id => id)
 
         success = false
diff --git a/lib/kramdown/options.rb b/lib/kramdown/options.rb
index 0b459d6..f855e24 100644
--- a/lib/kramdown/options.rb
+++ b/lib/kramdown/options.rb
@@ -20,6 +20,8 @@
 #++
 #
 
+require 'yaml'
+
 module Kramdown
 
   # This module defines all options that are used by parsers and/or converters as well as providing
@@ -233,6 +235,36 @@ Default: false
 Used by: kramdown parser
 EOF
 
+    define(:link_defs, Object, {}, <<EOF) do |val|
+Pre-defines link definitions
+
+This option can be used to pre-define link definitions. The value needs
+to be a Hash where the keys are the link identifiers and the values are
+two element Arrays with the link URL and the link title.
+
+If the value is a String, it has to contain a valid YAML hash and the
+hash has to follow the above guidelines.
+
+Default: {}
+Used by: kramdown parser
+EOF
+      if String === val
+        begin
+          val = YAML.load(val)
+        rescue RuntimeError, ArgumentError, SyntaxError
+          raise Kramdown::Error, "Invalid YAML value for option link_defs"
+        end
+      end
+      raise Kramdown::Error, "Invalid type #{val.class} for option #{name}" if !(Hash === val)
+      val.each do |k,v|
+        if !(Array === v) || v.size > 2 || v.size < 1
+          raise Kramdown::Error, "Invalid structure for hash value of option #{name}"
+        end
+        v << nil if v.size == 1
+      end
+      val
+    end
+
     define(:footnote_nr, Integer, 1, <<EOF)
 The number of the first footnote
 
diff --git a/lib/kramdown/parser/kramdown.rb b/lib/kramdown/parser/kramdown.rb
index d77bc82..9977b8e 100644
--- a/lib/kramdown/parser/kramdown.rb
+++ b/lib/kramdown/parser/kramdown.rb
@@ -82,6 +82,7 @@ module Kramdown
         @root.options[:abbrev_defs] = {}
         @alds = {}
         @link_defs = {}
+        @options[:link_defs].each {|k,v| @link_defs[normalize_link_id(k)] = v}
         @footnotes = {}
 
         @block_parsers = [:blank_line, :codeblock, :codeblock_fenced, :blockquote, :atx_header,
diff --git a/lib/kramdown/parser/kramdown/header.rb b/lib/kramdown/parser/kramdown/header.rb
index 9ca765c..8d85ba9 100644
--- a/lib/kramdown/parser/kramdown/header.rb
+++ b/lib/kramdown/parser/kramdown/header.rb
@@ -52,9 +52,11 @@ module Kramdown
       def parse_atx_header
         return false if !after_block_boundary?
 
-        @src.scan(ATX_HEADER_MATCH)
-        level, text, id = @src[1], @src[2], @src[3]
-        text.strip!
+        @src.check(ATX_HEADER_MATCH)
+        level, text, id = @src[1], @src[2].to_s.strip, @src[3]
+        return false if text.empty?
+
+        @src.pos += @src.matched_size
         el = new_block_el(:header, nil, nil, :level => level.length, :raw_text => text)
         add_text(text, el)
         el.attr['id'] = id if id
diff --git a/lib/kramdown/version.rb b/lib/kramdown/version.rb
index dd95dcd..8a56ee2 100644
--- a/lib/kramdown/version.rb
+++ b/lib/kramdown/version.rb
@@ -23,6 +23,6 @@
 module Kramdown
 
   # The kramdown version.
-  VERSION = '0.14.1'
+  VERSION = '0.14.2'
 
 end
diff --git a/man/man1/kramdown.1 b/man/man1/kramdown.1
index 8565e42..92986d1 100644
--- a/man/man1/kramdown.1
+++ b/man/man1/kramdown.1
@@ -127,6 +127,22 @@ Used by: kramdown parser
 
 
 .TP
+.B \-\-link-defs ARG
+
+Pre-defines link definitions
+
+This option can be used to pre-define link definitions. The value needs
+to be a Hash where the keys are the link identifiers and the values are
+two element Arrays with the link URL and the link title.
+
+If the value is a String, it has to contain a valid YAML hash and the
+hash has to follow the above guidelines.
+
+Default: {}
+Used by: kramdown parser
+
+
+.TP
 .B \-\-footnote-nr ARG
 
 The number of the first footnote
diff --git a/metadata.yml b/metadata.yml
index ebca276..6e15f42 100644
--- a/metadata.yml
+++ b/metadata.yml
@@ -1,7 +1,7 @@
 --- !ruby/object:Gem::Specification
 name: kramdown
 version: !ruby/object:Gem::Version
-  version: 0.14.1
+  version: 0.14.2
   prerelease: 
 platform: ruby
 authors:
@@ -9,7 +9,7 @@ authors:
 autorequire: 
 bindir: bin
 cert_chain: []
-date: 2012-11-30 00:00:00.000000000 Z
+date: 2013-01-20 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: coderay
@@ -48,432 +48,436 @@ files:
 - ChangeLog
 - CONTRIBUTERS
 - bin/kramdown
-- benchmark/timing.sh
-- benchmark/generate_data.rb
-- benchmark/mdsyntax.text
+- benchmark/benchmark.rb
 - benchmark/benchmark.sh
+- benchmark/generate_data.rb
 - benchmark/mdbasics.text
+- benchmark/mdsyntax.text
 - benchmark/testing.sh
-- benchmark/benchmark.rb
+- benchmark/timing.sh
 - lib/kramdown.rb
-- lib/kramdown/utils.rb
+- lib/kramdown/compatibility.rb
+- lib/kramdown/converter.rb
+- lib/kramdown/converter/base.rb
+- lib/kramdown/converter/html.rb
+- lib/kramdown/converter/kramdown.rb
+- lib/kramdown/converter/latex.rb
+- lib/kramdown/converter/remove_html_tags.rb
+- lib/kramdown/converter/toc.rb
+- lib/kramdown/document.rb
+- lib/kramdown/element.rb
+- lib/kramdown/error.rb
+- lib/kramdown/options.rb
+- lib/kramdown/parser.rb
 - lib/kramdown/parser/base.rb
-- lib/kramdown/parser/markdown.rb
 - lib/kramdown/parser/html.rb
 - lib/kramdown/parser/kramdown.rb
 - lib/kramdown/parser/kramdown/abbreviation.rb
-- lib/kramdown/parser/kramdown/smart_quotes.rb
-- lib/kramdown/parser/kramdown/extensions.rb
-- lib/kramdown/parser/kramdown/list.rb
 - lib/kramdown/parser/kramdown/autolink.rb
-- lib/kramdown/parser/kramdown/html_entity.rb
+- lib/kramdown/parser/kramdown/blank_line.rb
 - lib/kramdown/parser/kramdown/block_boundary.rb
-- lib/kramdown/parser/kramdown/paragraph.rb
-- lib/kramdown/parser/kramdown/typographic_symbol.rb
-- lib/kramdown/parser/kramdown/table.rb
-- lib/kramdown/parser/kramdown/html.rb
+- lib/kramdown/parser/kramdown/blockquote.rb
+- lib/kramdown/parser/kramdown/codeblock.rb
+- lib/kramdown/parser/kramdown/codespan.rb
 - lib/kramdown/parser/kramdown/emphasis.rb
+- lib/kramdown/parser/kramdown/eob.rb
 - lib/kramdown/parser/kramdown/escaped_chars.rb
+- lib/kramdown/parser/kramdown/extensions.rb
+- lib/kramdown/parser/kramdown/footnote.rb
+- lib/kramdown/parser/kramdown/header.rb
+- lib/kramdown/parser/kramdown/horizontal_rule.rb
+- lib/kramdown/parser/kramdown/html.rb
+- lib/kramdown/parser/kramdown/html_entity.rb
 - lib/kramdown/parser/kramdown/line_break.rb
 - lib/kramdown/parser/kramdown/link.rb
-- lib/kramdown/parser/kramdown/horizontal_rule.rb
-- lib/kramdown/parser/kramdown/blockquote.rb
-- lib/kramdown/parser/kramdown/eob.rb
-- lib/kramdown/parser/kramdown/codespan.rb
-- lib/kramdown/parser/kramdown/header.rb
+- lib/kramdown/parser/kramdown/list.rb
 - lib/kramdown/parser/kramdown/math.rb
-- lib/kramdown/parser/kramdown/blank_line.rb
-- lib/kramdown/parser/kramdown/footnote.rb
-- lib/kramdown/parser/kramdown/codeblock.rb
-- lib/kramdown/utils/html.rb
+- lib/kramdown/parser/kramdown/paragraph.rb
+- lib/kramdown/parser/kramdown/smart_quotes.rb
+- lib/kramdown/parser/kramdown/table.rb
+- lib/kramdown/parser/kramdown/typographic_symbol.rb
+- lib/kramdown/parser/markdown.rb
+- lib/kramdown/utils.rb
 - lib/kramdown/utils/entities.rb
+- lib/kramdown/utils/html.rb
 - lib/kramdown/utils/ordered_hash.rb
 - lib/kramdown/version.rb
-- lib/kramdown/error.rb
-- lib/kramdown/element.rb
-- lib/kramdown/converter/base.rb
-- lib/kramdown/converter/latex.rb
-- lib/kramdown/converter/remove_html_tags.rb
-- lib/kramdown/converter/html.rb
-- lib/kramdown/converter/kramdown.rb
-- lib/kramdown/converter/toc.rb
-- lib/kramdown/converter.rb
-- lib/kramdown/parser.rb
-- lib/kramdown/compatibility.rb
-- lib/kramdown/document.rb
-- lib/kramdown/options.rb
 - man/man1/kramdown.1
-- data/kramdown/document.latex
 - data/kramdown/document.html
+- data/kramdown/document.latex
+- doc/bg.png
+- doc/default.scss.css
+- doc/default.template
 - doc/design.scss.css
-- doc/quickref.page
-- doc/news.page
-- doc/news.feed
 - doc/documentation.page
-- doc/links.markdown
-- doc/tests.page
+- doc/documentation.template
 - doc/index.page
+- doc/installation.page
+- doc/links.markdown
+- doc/metainfo
+- doc/news.feed
+- doc/news.page
+- doc/options.page
+- doc/quickref.page
 - doc/sidebar.template
-- doc/default.template
 - doc/syntax.page
-- doc/installation.page
-- doc/bg.png
-- doc/default.scss.css
+- doc/tests.page
 - doc/virtual
 - test/run_tests.rb
-- test/testcases/encoding.text
-- test/testcases/span/05_html/markdown_attr.html
-- test/testcases/span/05_html/link_with_mailto.html
-- test/testcases/span/05_html/link_with_mailto.text
-- test/testcases/span/05_html/normal.html
-- test/testcases/span/05_html/markdown_attr.text
-- test/testcases/span/05_html/across_lines.text
-- test/testcases/span/05_html/invalid.html
-- test/testcases/span/05_html/invalid.text
-- test/testcases/span/05_html/across_lines.html
-- test/testcases/span/05_html/normal.text
-- test/testcases/span/escaped_chars/normal.html
-- test/testcases/span/escaped_chars/normal.text
-- test/testcases/span/03_codespan/highlighting.html
-- test/testcases/span/03_codespan/errors.text
-- test/testcases/span/03_codespan/normal.html
-- test/testcases/span/03_codespan/empty.html
-- test/testcases/span/03_codespan/empty.text
-- test/testcases/span/03_codespan/errors.html
-- test/testcases/span/03_codespan/highlighting.text
-- test/testcases/span/03_codespan/normal.text
-- test/testcases/span/abbreviations/abbrev_defs.html
-- test/testcases/span/abbreviations/abbrev.text
-- test/testcases/span/abbreviations/abbrev.html
-- test/testcases/span/abbreviations/abbrev_defs.text
-- test/testcases/span/04_footnote/definitions.text
-- test/testcases/span/04_footnote/footnote_nr.text
-- test/testcases/span/04_footnote/footnote_nr.html
-- test/testcases/span/04_footnote/footnote_nr.latex
-- test/testcases/span/04_footnote/markers.text
-- test/testcases/span/04_footnote/markers.html
-- test/testcases/span/04_footnote/definitions.latex
-- test/testcases/span/04_footnote/markers.latex
-- test/testcases/span/04_footnote/footnote_nr.options
-- test/testcases/span/04_footnote/definitions.html
-- test/testcases/span/01_link/image_in_a.text
-- test/testcases/span/01_link/inline.html
-- test/testcases/span/01_link/links_with_angle_brackets.text
-- test/testcases/span/01_link/reference.text
-- test/testcases/span/01_link/reference.html.19
-- test/testcases/span/01_link/inline.text
-- test/testcases/span/01_link/reference.html
-- test/testcases/span/01_link/empty.html
-- test/testcases/span/01_link/link_defs.text
-- test/testcases/span/01_link/inline.html.19
-- test/testcases/span/01_link/empty.text
-- test/testcases/span/01_link/links_with_angle_brackets.html
-- test/testcases/span/01_link/imagelinks.html
-- test/testcases/span/01_link/image_in_a.html
-- test/testcases/span/01_link/link_defs.html
-- test/testcases/span/01_link/imagelinks.text
-- test/testcases/span/line_breaks/normal.latex
-- test/testcases/span/line_breaks/normal.html
-- test/testcases/span/line_breaks/normal.text
-- test/testcases/span/extension/comment.text
-- test/testcases/span/extension/ignored.html
-- test/testcases/span/extension/ignored.text
-- test/testcases/span/extension/options.text
-- test/testcases/span/extension/nomarkdown.html
-- test/testcases/span/extension/comment.html
-- test/testcases/span/extension/options.html
-- test/testcases/span/extension/nomarkdown.text
-- test/testcases/span/ial/simple.html
-- test/testcases/span/ial/simple.text
-- test/testcases/span/math/normal.html
-- test/testcases/span/math/normal.text
-- test/testcases/span/text_substitutions/typography.options
-- test/testcases/span/text_substitutions/entities_as_input.options
-- test/testcases/span/text_substitutions/typography.html
-- test/testcases/span/text_substitutions/entities.html
-- test/testcases/span/text_substitutions/greaterthan.html
-- test/testcases/span/text_substitutions/lowerthan.text
-- test/testcases/span/text_substitutions/entities_numeric.options
-- test/testcases/span/text_substitutions/lowerthan.html
-- test/testcases/span/text_substitutions/entities_as_char.html
-- test/testcases/span/text_substitutions/entities_symbolic.options
-- test/testcases/span/text_substitutions/entities.options
-- test/testcases/span/text_substitutions/entities_numeric.text
-- test/testcases/span/text_substitutions/entities_symbolic.text
-- test/testcases/span/text_substitutions/entities_as_char.html.19
-- test/testcases/span/text_substitutions/entities_as_char.text
-- test/testcases/span/text_substitutions/entities_as_char.options
-- test/testcases/span/text_substitutions/typography.text
-- test/testcases/span/text_substitutions/entities.text
-- test/testcases/span/text_substitutions/entities_symbolic.html
-- test/testcases/span/text_substitutions/entities_numeric.html
-- test/testcases/span/text_substitutions/entities_as_input.text
-- test/testcases/span/text_substitutions/entities_as_input.html
-- test/testcases/span/text_substitutions/greaterthan.text
-- test/testcases/span/02_emphasis/errors.text
-- test/testcases/span/02_emphasis/normal.html
-- test/testcases/span/02_emphasis/empty.html
-- test/testcases/span/02_emphasis/nesting.text
-- test/testcases/span/02_emphasis/empty.text
-- test/testcases/span/02_emphasis/errors.html
-- test/testcases/span/02_emphasis/nesting.html
-- test/testcases/span/02_emphasis/normal.text
-- test/testcases/span/autolinks/url_links.html
-- test/testcases/span/autolinks/url_links.text
-- test/testcases/block/15_math/normal.html
-- test/testcases/block/15_math/normal.text
-- test/testcases/block/03_paragraph/two_para.html
-- test/testcases/block/03_paragraph/one_para.text
-- test/testcases/block/03_paragraph/two_para.text
-- test/testcases/block/03_paragraph/no_newline_at_end.text
-- test/testcases/block/03_paragraph/one_para.html
-- test/testcases/block/03_paragraph/indented.text
+- test/test_files.rb
+- test/testcases/block/01_blank_line/spaces.html
+- test/testcases/block/01_blank_line/spaces.text
+- test/testcases/block/01_blank_line/tabs.html
+- test/testcases/block/01_blank_line/tabs.text
+- test/testcases/block/02_eob/beginning.html
+- test/testcases/block/02_eob/beginning.text
+- test/testcases/block/02_eob/end.html
+- test/testcases/block/02_eob/end.text
+- test/testcases/block/02_eob/middle.html
+- test/testcases/block/02_eob/middle.text
 - test/testcases/block/03_paragraph/indented.html
+- test/testcases/block/03_paragraph/indented.text
 - test/testcases/block/03_paragraph/no_newline_at_end.html
-- test/testcases/block/14_table/table_with_footnote.text
-- test/testcases/block/14_table/errors.text
-- test/testcases/block/14_table/simple.html
-- test/testcases/block/14_table/table_with_footnote.latex
-- test/testcases/block/14_table/escaping.text
-- test/testcases/block/14_table/escaping.html
-- test/testcases/block/14_table/simple.text
-- test/testcases/block/14_table/header.html
-- test/testcases/block/14_table/no_table.html
-- test/testcases/block/14_table/header.text
-- test/testcases/block/14_table/footer.text
-- test/testcases/block/14_table/errors.html
-- test/testcases/block/14_table/footer.html
-- test/testcases/block/14_table/no_table.text
-- test/testcases/block/14_table/table_with_footnote.html
-- test/testcases/block/14_table/simple.html.19
-- test/testcases/block/12_extension/options2.text
-- test/testcases/block/12_extension/comment.text
-- test/testcases/block/12_extension/ignored.html
-- test/testcases/block/12_extension/ignored.text
-- test/testcases/block/12_extension/options.text
-- test/testcases/block/12_extension/nomarkdown.html
-- test/testcases/block/12_extension/options2.html
-- test/testcases/block/12_extension/options3.html
-- test/testcases/block/12_extension/comment.html
-- test/testcases/block/12_extension/options.html
-- test/testcases/block/12_extension/nomarkdown.kramdown
-- test/testcases/block/12_extension/nomarkdown.text
-- test/testcases/block/12_extension/options3.text
-- test/testcases/block/12_extension/nomarkdown.latex
-- test/testcases/block/09_html/html_and_codeblocks.options
-- test/testcases/block/09_html/comment.text
-- test/testcases/block/09_html/invalid_html_1.text
-- test/testcases/block/09_html/html_and_headers.text
-- test/testcases/block/09_html/simple.html
-- test/testcases/block/09_html/parse_as_raw.text
-- test/testcases/block/09_html/invalid_html_1.html
-- test/testcases/block/09_html/parse_as_span.html
-- test/testcases/block/09_html/invalid_html_2.html
-- test/testcases/block/09_html/html_and_codeblocks.html
-- test/testcases/block/09_html/html_to_native/emphasis.text
-- test/testcases/block/09_html/html_to_native/options
-- test/testcases/block/09_html/html_to_native/comment.text
-- test/testcases/block/09_html/html_to_native/list_ol.text
-- test/testcases/block/09_html/html_to_native/list_dl.html
-- test/testcases/block/09_html/html_to_native/table_simple.text
-- test/testcases/block/09_html/html_to_native/table_normal.text
-- test/testcases/block/09_html/html_to_native/typography.html
-- test/testcases/block/09_html/html_to_native/list_dl.text
-- test/testcases/block/09_html/html_to_native/paragraph.html
-- test/testcases/block/09_html/html_to_native/paragraph.text
-- test/testcases/block/09_html/html_to_native/code.text
-- test/testcases/block/09_html/html_to_native/header.html
-- test/testcases/block/09_html/html_to_native/list_ul.html
-- test/testcases/block/09_html/html_to_native/entity.html
-- test/testcases/block/09_html/html_to_native/typography.text
-- test/testcases/block/09_html/html_to_native/header.text
+- test/testcases/block/03_paragraph/no_newline_at_end.text
+- test/testcases/block/03_paragraph/one_para.html
+- test/testcases/block/03_paragraph/one_para.text
+- test/testcases/block/03_paragraph/two_para.html
+- test/testcases/block/03_paragraph/two_para.text
+- test/testcases/block/04_header/atx_header.html
+- test/testcases/block/04_header/atx_header.text
+- test/testcases/block/04_header/atx_header_no_newline_at_end.html
+- test/testcases/block/04_header/atx_header_no_newline_at_end.text
+- test/testcases/block/04_header/header_type_offset.html
+- test/testcases/block/04_header/header_type_offset.kramdown
+- test/testcases/block/04_header/header_type_offset.latex
+- test/testcases/block/04_header/header_type_offset.options
+- test/testcases/block/04_header/header_type_offset.text
+- test/testcases/block/04_header/setext_header.html
+- test/testcases/block/04_header/setext_header.text
+- test/testcases/block/04_header/setext_header_no_newline_at_end.html
+- test/testcases/block/04_header/setext_header_no_newline_at_end.text
+- test/testcases/block/04_header/with_auto_id_prefix.html
+- test/testcases/block/04_header/with_auto_id_prefix.options
+- test/testcases/block/04_header/with_auto_id_prefix.text
+- test/testcases/block/04_header/with_auto_ids.html
+- test/testcases/block/04_header/with_auto_ids.options
+- test/testcases/block/04_header/with_auto_ids.text
+- test/testcases/block/05_blockquote/indented.html
+- test/testcases/block/05_blockquote/indented.text
+- test/testcases/block/05_blockquote/lazy.html
+- test/testcases/block/05_blockquote/lazy.text
+- test/testcases/block/05_blockquote/nested.html
+- test/testcases/block/05_blockquote/nested.text
+- test/testcases/block/05_blockquote/no_newline_at_end.html
+- test/testcases/block/05_blockquote/no_newline_at_end.text
+- test/testcases/block/05_blockquote/very_long_line.html
+- test/testcases/block/05_blockquote/very_long_line.text
+- test/testcases/block/05_blockquote/with_code_blocks.html
+- test/testcases/block/05_blockquote/with_code_blocks.text
+- test/testcases/block/06_codeblock/disable-highlighting.html
+- test/testcases/block/06_codeblock/disable-highlighting.options
+- test/testcases/block/06_codeblock/disable-highlighting.text
+- test/testcases/block/06_codeblock/error.html
+- test/testcases/block/06_codeblock/error.text
+- test/testcases/block/06_codeblock/highlighting.html
+- test/testcases/block/06_codeblock/highlighting.options
+- test/testcases/block/06_codeblock/highlighting.text
+- test/testcases/block/06_codeblock/lazy.html
+- test/testcases/block/06_codeblock/lazy.text
+- test/testcases/block/06_codeblock/no_newline_at_end.html
+- test/testcases/block/06_codeblock/no_newline_at_end.text
+- test/testcases/block/06_codeblock/no_newline_at_end_1.html
+- test/testcases/block/06_codeblock/no_newline_at_end_1.text
+- test/testcases/block/06_codeblock/normal.html
+- test/testcases/block/06_codeblock/normal.text
+- test/testcases/block/06_codeblock/tilde_syntax.html
+- test/testcases/block/06_codeblock/tilde_syntax.text
+- test/testcases/block/06_codeblock/whitespace.html
+- test/testcases/block/06_codeblock/whitespace.text
+- test/testcases/block/06_codeblock/with_blank_line.html
+- test/testcases/block/06_codeblock/with_blank_line.text
+- test/testcases/block/06_codeblock/with_eob_marker.html
+- test/testcases/block/06_codeblock/with_eob_marker.text
+- test/testcases/block/06_codeblock/with_ial.html
+- test/testcases/block/06_codeblock/with_ial.text
+- test/testcases/block/06_codeblock/with_lang_in_fenced_block.html
+- test/testcases/block/06_codeblock/with_lang_in_fenced_block.options
+- test/testcases/block/06_codeblock/with_lang_in_fenced_block.text
+- test/testcases/block/07_horizontal_rule/error.html
+- test/testcases/block/07_horizontal_rule/error.html.19
+- test/testcases/block/07_horizontal_rule/error.text
+- test/testcases/block/07_horizontal_rule/normal.html
+- test/testcases/block/07_horizontal_rule/normal.text
+- test/testcases/block/07_horizontal_rule/sepspaces.html
+- test/testcases/block/07_horizontal_rule/sepspaces.text
+- test/testcases/block/07_horizontal_rule/septabs.html
+- test/testcases/block/07_horizontal_rule/septabs.text
+- test/testcases/block/08_list/escaping.html
+- test/testcases/block/08_list/escaping.text
+- test/testcases/block/08_list/item_ial.html
+- test/testcases/block/08_list/item_ial.text
+- test/testcases/block/08_list/lazy.html
+- test/testcases/block/08_list/lazy.text
+- test/testcases/block/08_list/list_and_hr.html
+- test/testcases/block/08_list/list_and_hr.text
+- test/testcases/block/08_list/list_and_others.html
+- test/testcases/block/08_list/list_and_others.text
+- test/testcases/block/08_list/mixed.html
+- test/testcases/block/08_list/mixed.text
+- test/testcases/block/08_list/nested.html
+- test/testcases/block/08_list/nested.text
+- test/testcases/block/08_list/other_first_element.html
+- test/testcases/block/08_list/other_first_element.text
+- test/testcases/block/08_list/simple_ol.html
+- test/testcases/block/08_list/simple_ol.text
+- test/testcases/block/08_list/simple_ul.html
+- test/testcases/block/08_list/simple_ul.text
+- test/testcases/block/08_list/single_item.html
+- test/testcases/block/08_list/single_item.text
+- test/testcases/block/08_list/special_cases.html
+- test/testcases/block/08_list/special_cases.text
+- test/testcases/block/09_html/comment.html
+- test/testcases/block/09_html/comment.text
+- test/testcases/block/09_html/content_model/deflists.html
+- test/testcases/block/09_html/content_model/deflists.options
+- test/testcases/block/09_html/content_model/deflists.text
+- test/testcases/block/09_html/content_model/tables.html
+- test/testcases/block/09_html/content_model/tables.options
+- test/testcases/block/09_html/content_model/tables.text
+- test/testcases/block/09_html/html5_attributes.html
+- test/testcases/block/09_html/html5_attributes.text
+- test/testcases/block/09_html/html_and_codeblocks.html
+- test/testcases/block/09_html/html_and_codeblocks.options
+- test/testcases/block/09_html/html_and_codeblocks.text
+- test/testcases/block/09_html/html_and_headers.html
+- test/testcases/block/09_html/html_and_headers.text
 - test/testcases/block/09_html/html_to_native/code.html
+- test/testcases/block/09_html/html_to_native/code.text
+- test/testcases/block/09_html/html_to_native/comment.html
+- test/testcases/block/09_html/html_to_native/comment.text
 - test/testcases/block/09_html/html_to_native/emphasis.html
+- test/testcases/block/09_html/html_to_native/emphasis.text
+- test/testcases/block/09_html/html_to_native/entity.html
 - test/testcases/block/09_html/html_to_native/entity.text
-- test/testcases/block/09_html/html_to_native/comment.html
-- test/testcases/block/09_html/html_to_native/table_simple.html
-- test/testcases/block/09_html/html_to_native/typography.html.19
+- test/testcases/block/09_html/html_to_native/header.html
 - test/testcases/block/09_html/html_to_native/header.options
-- test/testcases/block/09_html/html_to_native/list_ul.text
+- test/testcases/block/09_html/html_to_native/header.text
+- test/testcases/block/09_html/html_to_native/list_dl.html
+- test/testcases/block/09_html/html_to_native/list_dl.text
 - test/testcases/block/09_html/html_to_native/list_ol.html
+- test/testcases/block/09_html/html_to_native/list_ol.text
+- test/testcases/block/09_html/html_to_native/list_ul.html
+- test/testcases/block/09_html/html_to_native/list_ul.text
+- test/testcases/block/09_html/html_to_native/options
+- test/testcases/block/09_html/html_to_native/paragraph.html
+- test/testcases/block/09_html/html_to_native/paragraph.text
 - test/testcases/block/09_html/html_to_native/table_normal.html
+- test/testcases/block/09_html/html_to_native/table_normal.text
+- test/testcases/block/09_html/html_to_native/table_simple.html
+- test/testcases/block/09_html/html_to_native/table_simple.text
+- test/testcases/block/09_html/html_to_native/typography.html
+- test/testcases/block/09_html/html_to_native/typography.html.19
+- test/testcases/block/09_html/html_to_native/typography.text
+- test/testcases/block/09_html/invalid_html_1.html
+- test/testcases/block/09_html/invalid_html_1.text
+- test/testcases/block/09_html/invalid_html_2.html
 - test/testcases/block/09_html/invalid_html_2.text
 - test/testcases/block/09_html/markdown_attr.html
-- test/testcases/block/09_html/html5_attributes.text
-- test/testcases/block/09_html/simple.text
-- test/testcases/block/09_html/html5_attributes.html
-- test/testcases/block/09_html/parse_as_span.options
-- test/testcases/block/09_html/parse_block_html.html
-- test/testcases/block/09_html/parse_block_html.text
 - test/testcases/block/09_html/markdown_attr.text
-- test/testcases/block/09_html/processing_instruction.text
-- test/testcases/block/09_html/simple.options
-- test/testcases/block/09_html/processing_instruction.html
-- test/testcases/block/09_html/parse_as_span.htmlinput
-- test/testcases/block/09_html/comment.html
-- test/testcases/block/09_html/parse_as_raw.options
+- test/testcases/block/09_html/not_parsed.html
+- test/testcases/block/09_html/not_parsed.text
 - test/testcases/block/09_html/parse_as_raw.html
+- test/testcases/block/09_html/parse_as_raw.htmlinput
+- test/testcases/block/09_html/parse_as_raw.options
+- test/testcases/block/09_html/parse_as_raw.text
+- test/testcases/block/09_html/parse_as_span.html
+- test/testcases/block/09_html/parse_as_span.htmlinput
+- test/testcases/block/09_html/parse_as_span.options
 - test/testcases/block/09_html/parse_as_span.text
-- test/testcases/block/09_html/html_and_codeblocks.text
-- test/testcases/block/09_html/html_and_headers.html
-- test/testcases/block/09_html/not_parsed.html
+- test/testcases/block/09_html/parse_block_html.html
 - test/testcases/block/09_html/parse_block_html.options
-- test/testcases/block/09_html/content_model/deflists.html
-- test/testcases/block/09_html/content_model/tables.html
-- test/testcases/block/09_html/content_model/tables.options
-- test/testcases/block/09_html/content_model/tables.text
-- test/testcases/block/09_html/content_model/deflists.options
-- test/testcases/block/09_html/content_model/deflists.text
-- test/testcases/block/09_html/parse_as_raw.htmlinput
-- test/testcases/block/09_html/not_parsed.text
+- test/testcases/block/09_html/parse_block_html.text
+- test/testcases/block/09_html/processing_instruction.html
+- test/testcases/block/09_html/processing_instruction.text
+- test/testcases/block/09_html/simple.html
 - test/testcases/block/09_html/simple.html.19
-- test/testcases/block/08_list/special_cases.html
-- test/testcases/block/08_list/mixed.html
-- test/testcases/block/08_list/other_first_element.html
-- test/testcases/block/08_list/special_cases.text
-- test/testcases/block/08_list/simple_ol.html
-- test/testcases/block/08_list/nested.text
-- test/testcases/block/08_list/simple_ul.html
-- test/testcases/block/08_list/escaping.text
-- test/testcases/block/08_list/escaping.html
-- test/testcases/block/08_list/single_item.html
-- test/testcases/block/08_list/lazy.html
-- test/testcases/block/08_list/item_ial.text
-- test/testcases/block/08_list/list_and_hr.text
-- test/testcases/block/08_list/item_ial.html
-- test/testcases/block/08_list/mixed.text
-- test/testcases/block/08_list/list_and_others.html
-- test/testcases/block/08_list/other_first_element.text
-- test/testcases/block/08_list/single_item.text
-- test/testcases/block/08_list/lazy.text
-- test/testcases/block/08_list/list_and_others.text
-- test/testcases/block/08_list/simple_ul.text
-- test/testcases/block/08_list/simple_ol.text
-- test/testcases/block/08_list/nested.html
-- test/testcases/block/08_list/list_and_hr.html
-- test/testcases/block/04_header/with_auto_id_prefix.text
-- test/testcases/block/04_header/atx_header.text
-- test/testcases/block/04_header/with_auto_id_prefix.options
-- test/testcases/block/04_header/header_type_offset.text
-- test/testcases/block/04_header/atx_header.html
-- test/testcases/block/04_header/header_type_offset.kramdown
-- test/testcases/block/04_header/setext_header_no_newline_at_end.text
-- test/testcases/block/04_header/atx_header_no_newline_at_end.text
-- test/testcases/block/04_header/setext_header.html
-- test/testcases/block/04_header/with_auto_id_prefix.html
-- test/testcases/block/04_header/with_auto_ids.options
-- test/testcases/block/04_header/with_auto_ids.text
-- test/testcases/block/04_header/setext_header_no_newline_at_end.html
-- test/testcases/block/04_header/with_auto_ids.html
-- test/testcases/block/04_header/header_type_offset.html
-- test/testcases/block/04_header/header_type_offset.latex
-- test/testcases/block/04_header/atx_header_no_newline_at_end.html
-- test/testcases/block/04_header/setext_header.text
-- test/testcases/block/04_header/header_type_offset.options
-- test/testcases/block/02_eob/middle.html
-- test/testcases/block/02_eob/end.html
-- test/testcases/block/02_eob/beginning.text
-- test/testcases/block/02_eob/end.text
-- test/testcases/block/02_eob/beginning.html
-- test/testcases/block/02_eob/middle.text
+- test/testcases/block/09_html/simple.options
+- test/testcases/block/09_html/simple.text
 - test/testcases/block/10_ald/simple.html
 - test/testcases/block/10_ald/simple.text
-- test/testcases/block/11_ial/simple.html
-- test/testcases/block/11_ial/nested.text
 - test/testcases/block/11_ial/auto_id_and_ial.html
-- test/testcases/block/11_ial/simple.text
 - test/testcases/block/11_ial/auto_id_and_ial.options
-- test/testcases/block/11_ial/nested.html
 - test/testcases/block/11_ial/auto_id_and_ial.text
-- test/testcases/block/07_horizontal_rule/septabs.text
-- test/testcases/block/07_horizontal_rule/septabs.html
-- test/testcases/block/07_horizontal_rule/normal.html
-- test/testcases/block/07_horizontal_rule/error.html.19
-- test/testcases/block/07_horizontal_rule/sepspaces.text
-- test/testcases/block/07_horizontal_rule/error.html
-- test/testcases/block/07_horizontal_rule/error.text
-- test/testcases/block/07_horizontal_rule/normal.text
-- test/testcases/block/07_horizontal_rule/sepspaces.html
-- test/testcases/block/13_definition_list/deflist_ial.html
-- test/testcases/block/13_definition_list/separated_by_eob.html
+- test/testcases/block/11_ial/nested.html
+- test/testcases/block/11_ial/nested.text
+- test/testcases/block/11_ial/simple.html
+- test/testcases/block/11_ial/simple.text
+- test/testcases/block/12_extension/comment.html
+- test/testcases/block/12_extension/comment.text
+- test/testcases/block/12_extension/ignored.html
+- test/testcases/block/12_extension/ignored.text
+- test/testcases/block/12_extension/nomarkdown.html
+- test/testcases/block/12_extension/nomarkdown.kramdown
+- test/testcases/block/12_extension/nomarkdown.latex
+- test/testcases/block/12_extension/nomarkdown.text
+- test/testcases/block/12_extension/options.html
+- test/testcases/block/12_extension/options.text
+- test/testcases/block/12_extension/options2.html
+- test/testcases/block/12_extension/options2.text
+- test/testcases/block/12_extension/options3.html
+- test/testcases/block/12_extension/options3.text
+- test/testcases/block/13_definition_list/definition_at_beginning.html
 - test/testcases/block/13_definition_list/definition_at_beginning.text
-- test/testcases/block/13_definition_list/simple.html
+- test/testcases/block/13_definition_list/deflist_ial.html
 - test/testcases/block/13_definition_list/deflist_ial.text
-- test/testcases/block/13_definition_list/too_much_space.text
+- test/testcases/block/13_definition_list/item_ial.html
 - test/testcases/block/13_definition_list/item_ial.text
+- test/testcases/block/13_definition_list/multiple_terms.html
 - test/testcases/block/13_definition_list/multiple_terms.text
-- test/testcases/block/13_definition_list/simple.text
-- test/testcases/block/13_definition_list/item_ial.html
+- test/testcases/block/13_definition_list/no_def_list.html
 - test/testcases/block/13_definition_list/no_def_list.text
-- test/testcases/block/13_definition_list/separated_by_eob.text
-- test/testcases/block/13_definition_list/with_blocks.html
+- test/testcases/block/13_definition_list/para_wrapping.html
 - test/testcases/block/13_definition_list/para_wrapping.text
-- test/testcases/block/13_definition_list/definition_at_beginning.html
+- test/testcases/block/13_definition_list/separated_by_eob.html
+- test/testcases/block/13_definition_list/separated_by_eob.text
+- test/testcases/block/13_definition_list/simple.html
+- test/testcases/block/13_definition_list/simple.text
+- test/testcases/block/13_definition_list/styled_terms.html
 - test/testcases/block/13_definition_list/styled_terms.text
-- test/testcases/block/13_definition_list/no_def_list.html
-- test/testcases/block/13_definition_list/with_blocks.text
 - test/testcases/block/13_definition_list/too_much_space.html
-- test/testcases/block/13_definition_list/para_wrapping.html
-- test/testcases/block/13_definition_list/multiple_terms.html
-- test/testcases/block/13_definition_list/styled_terms.html
-- test/testcases/block/05_blockquote/nested.text
-- test/testcases/block/05_blockquote/very_long_line.text
-- test/testcases/block/05_blockquote/lazy.html
-- test/testcases/block/05_blockquote/very_long_line.html
-- test/testcases/block/05_blockquote/no_newline_at_end.text
-- test/testcases/block/05_blockquote/indented.text
-- test/testcases/block/05_blockquote/indented.html
-- test/testcases/block/05_blockquote/lazy.text
-- test/testcases/block/05_blockquote/no_newline_at_end.html
-- test/testcases/block/05_blockquote/with_code_blocks.text
-- test/testcases/block/05_blockquote/nested.html
-- test/testcases/block/05_blockquote/with_code_blocks.html
-- test/testcases/block/16_toc/no_toc.text
-- test/testcases/block/16_toc/toc_with_footnotes.options
+- test/testcases/block/13_definition_list/too_much_space.text
+- test/testcases/block/13_definition_list/with_blocks.html
+- test/testcases/block/13_definition_list/with_blocks.text
+- test/testcases/block/14_table/errors.html
+- test/testcases/block/14_table/errors.text
+- test/testcases/block/14_table/escaping.html
+- test/testcases/block/14_table/escaping.text
+- test/testcases/block/14_table/footer.html
+- test/testcases/block/14_table/footer.text
+- test/testcases/block/14_table/header.html
+- test/testcases/block/14_table/header.text
+- test/testcases/block/14_table/no_table.html
+- test/testcases/block/14_table/no_table.text
+- test/testcases/block/14_table/simple.html
+- test/testcases/block/14_table/simple.html.19
+- test/testcases/block/14_table/simple.text
+- test/testcases/block/14_table/table_with_footnote.html
+- test/testcases/block/14_table/table_with_footnote.latex
+- test/testcases/block/14_table/table_with_footnote.text
+- test/testcases/block/15_math/normal.html
+- test/testcases/block/15_math/normal.text
 - test/testcases/block/16_toc/no_toc.html
+- test/testcases/block/16_toc/no_toc.text
+- test/testcases/block/16_toc/toc_exclude.html
+- test/testcases/block/16_toc/toc_exclude.options
+- test/testcases/block/16_toc/toc_exclude.text
 - test/testcases/block/16_toc/toc_levels.html
+- test/testcases/block/16_toc/toc_levels.options
 - test/testcases/block/16_toc/toc_levels.text
-- test/testcases/block/16_toc/toc_exclude.html
 - test/testcases/block/16_toc/toc_with_footnotes.html
+- test/testcases/block/16_toc/toc_with_footnotes.options
 - test/testcases/block/16_toc/toc_with_footnotes.text
-- test/testcases/block/16_toc/toc_exclude.options
-- test/testcases/block/16_toc/toc_levels.options
-- test/testcases/block/16_toc/toc_exclude.text
-- test/testcases/block/01_blank_line/spaces.html
-- test/testcases/block/01_blank_line/tabs.text
-- test/testcases/block/01_blank_line/spaces.text
-- test/testcases/block/01_blank_line/tabs.html
-- test/testcases/block/06_codeblock/highlighting.html
-- test/testcases/block/06_codeblock/highlighting.options
-- test/testcases/block/06_codeblock/with_lang_in_fenced_block.html
-- test/testcases/block/06_codeblock/whitespace.text
-- test/testcases/block/06_codeblock/disable-highlighting.text
-- test/testcases/block/06_codeblock/with_lang_in_fenced_block.options
-- test/testcases/block/06_codeblock/with_eob_marker.text
-- test/testcases/block/06_codeblock/tilde_syntax.html
-- test/testcases/block/06_codeblock/no_newline_at_end_1.text
-- test/testcases/block/06_codeblock/lazy.html
-- test/testcases/block/06_codeblock/with_blank_line.html
-- test/testcases/block/06_codeblock/disable-highlighting.html
-- test/testcases/block/06_codeblock/tilde_syntax.text
-- test/testcases/block/06_codeblock/with_ial.text
-- test/testcases/block/06_codeblock/normal.html
-- test/testcases/block/06_codeblock/no_newline_at_end.text
-- test/testcases/block/06_codeblock/with_eob_marker.html
-- test/testcases/block/06_codeblock/with_blank_line.text
-- test/testcases/block/06_codeblock/with_ial.html
-- test/testcases/block/06_codeblock/no_newline_at_end_1.html
-- test/testcases/block/06_codeblock/disable-highlighting.options
-- test/testcases/block/06_codeblock/error.html
-- test/testcases/block/06_codeblock/lazy.text
-- test/testcases/block/06_codeblock/highlighting.text
-- test/testcases/block/06_codeblock/whitespace.html
-- test/testcases/block/06_codeblock/no_newline_at_end.html
-- test/testcases/block/06_codeblock/error.text
-- test/testcases/block/06_codeblock/normal.text
-- test/testcases/block/06_codeblock/with_lang_in_fenced_block.text
 - test/testcases/encoding.html
-- test/test_files.rb
+- test/testcases/encoding.text
+- test/testcases/span/01_link/empty.html
+- test/testcases/span/01_link/empty.text
+- test/testcases/span/01_link/image_in_a.html
+- test/testcases/span/01_link/image_in_a.text
+- test/testcases/span/01_link/imagelinks.html
+- test/testcases/span/01_link/imagelinks.text
+- test/testcases/span/01_link/inline.html
+- test/testcases/span/01_link/inline.html.19
+- test/testcases/span/01_link/inline.text
+- test/testcases/span/01_link/link_defs.html
+- test/testcases/span/01_link/link_defs.text
+- test/testcases/span/01_link/links_with_angle_brackets.html
+- test/testcases/span/01_link/links_with_angle_brackets.text
+- test/testcases/span/01_link/reference.html
+- test/testcases/span/01_link/reference.html.19
+- test/testcases/span/01_link/reference.options
+- test/testcases/span/01_link/reference.text
+- test/testcases/span/02_emphasis/empty.html
+- test/testcases/span/02_emphasis/empty.text
+- test/testcases/span/02_emphasis/errors.html
+- test/testcases/span/02_emphasis/errors.text
+- test/testcases/span/02_emphasis/nesting.html
+- test/testcases/span/02_emphasis/nesting.text
+- test/testcases/span/02_emphasis/normal.html
+- test/testcases/span/02_emphasis/normal.text
+- test/testcases/span/03_codespan/empty.html
+- test/testcases/span/03_codespan/empty.text
+- test/testcases/span/03_codespan/errors.html
+- test/testcases/span/03_codespan/errors.text
+- test/testcases/span/03_codespan/highlighting.html
+- test/testcases/span/03_codespan/highlighting.text
+- test/testcases/span/03_codespan/normal.html
+- test/testcases/span/03_codespan/normal.text
+- test/testcases/span/04_footnote/definitions.html
+- test/testcases/span/04_footnote/definitions.latex
+- test/testcases/span/04_footnote/definitions.text
+- test/testcases/span/04_footnote/footnote_nr.html
+- test/testcases/span/04_footnote/footnote_nr.latex
+- test/testcases/span/04_footnote/footnote_nr.options
+- test/testcases/span/04_footnote/footnote_nr.text
+- test/testcases/span/04_footnote/markers.html
+- test/testcases/span/04_footnote/markers.latex
+- test/testcases/span/04_footnote/markers.text
+- test/testcases/span/05_html/across_lines.html
+- test/testcases/span/05_html/across_lines.text
+- test/testcases/span/05_html/invalid.html
+- test/testcases/span/05_html/invalid.text
+- test/testcases/span/05_html/link_with_mailto.html
+- test/testcases/span/05_html/link_with_mailto.text
+- test/testcases/span/05_html/markdown_attr.html
+- test/testcases/span/05_html/markdown_attr.text
+- test/testcases/span/05_html/normal.html
+- test/testcases/span/05_html/normal.text
+- test/testcases/span/abbreviations/abbrev.html
+- test/testcases/span/abbreviations/abbrev.text
+- test/testcases/span/abbreviations/abbrev_defs.html
+- test/testcases/span/abbreviations/abbrev_defs.text
+- test/testcases/span/autolinks/url_links.html
+- test/testcases/span/autolinks/url_links.text
+- test/testcases/span/escaped_chars/normal.html
+- test/testcases/span/escaped_chars/normal.text
+- test/testcases/span/extension/comment.html
+- test/testcases/span/extension/comment.text
+- test/testcases/span/extension/ignored.html
+- test/testcases/span/extension/ignored.text
+- test/testcases/span/extension/nomarkdown.html
+- test/testcases/span/extension/nomarkdown.text
+- test/testcases/span/extension/options.html
+- test/testcases/span/extension/options.text
+- test/testcases/span/ial/simple.html
+- test/testcases/span/ial/simple.text
+- test/testcases/span/line_breaks/normal.html
+- test/testcases/span/line_breaks/normal.latex
+- test/testcases/span/line_breaks/normal.text
+- test/testcases/span/math/normal.html
+- test/testcases/span/math/normal.text
+- test/testcases/span/text_substitutions/entities.html
+- test/testcases/span/text_substitutions/entities.options
+- test/testcases/span/text_substitutions/entities.text
+- test/testcases/span/text_substitutions/entities_as_char.html
+- test/testcases/span/text_substitutions/entities_as_char.html.19
+- test/testcases/span/text_substitutions/entities_as_char.options
+- test/testcases/span/text_substitutions/entities_as_char.text
+- test/testcases/span/text_substitutions/entities_as_input.html
+- test/testcases/span/text_substitutions/entities_as_input.options
+- test/testcases/span/text_substitutions/entities_as_input.text
+- test/testcases/span/text_substitutions/entities_numeric.html
+- test/testcases/span/text_substitutions/entities_numeric.options
+- test/testcases/span/text_substitutions/entities_numeric.text
+- test/testcases/span/text_substitutions/entities_symbolic.html
+- test/testcases/span/text_substitutions/entities_symbolic.options
+- test/testcases/span/text_substitutions/entities_symbolic.text
+- test/testcases/span/text_substitutions/greaterthan.html
+- test/testcases/span/text_substitutions/greaterthan.text
+- test/testcases/span/text_substitutions/lowerthan.html
+- test/testcases/span/text_substitutions/lowerthan.text
+- test/testcases/span/text_substitutions/typography.html
+- test/testcases/span/text_substitutions/typography.options
+- test/testcases/span/text_substitutions/typography.text
 homepage: http://kramdown.rubyforge.org
 licenses: []
 post_install_message: 
diff --git a/test/testcases/block/04_header/atx_header.html b/test/testcases/block/04_header/atx_header.html
index 0f18713..ecbfafc 100644
--- a/test/testcases/block/04_header/atx_header.html
+++ b/test/testcases/block/04_header/atx_header.html
@@ -26,6 +26,12 @@
 ### not a header</p>
 </blockquote>
 
+<h1>header</h1>
+
+<p># </p>
+
+<p>#</p>
+
 <h3 id="id">Header</h3>
 
 <h3 id="id">Header</h3>
diff --git a/test/testcases/block/04_header/atx_header.text b/test/testcases/block/04_header/atx_header.text
index 8848333..f9bf020 100644
--- a/test/testcases/block/04_header/atx_header.text
+++ b/test/testcases/block/04_header/atx_header.text
@@ -23,6 +23,13 @@ paragraph
 > blockquote
 ### not a header
 
+
+# header
+
+# 
+
+#
+
 ### Header {#id}
 
 ### Header ## {#id}
diff --git a/test/testcases/span/01_link/reference.html b/test/testcases/span/01_link/reference.html
index 1ba2b28..49afd2e 100644
--- a/test/testcases/span/01_link/reference.html
+++ b/test/testcases/span/01_link/reference.html
@@ -34,3 +34,4 @@ test [urldef]</p>
 
 <p>this <a href="occasion.html">is a ‘special’ occasion for /all/ of us</a></p>
 
+<p>this is <a href="predefined.html">predefined</a> for <a href="uri.html" title="My URI">URI</a></p>
diff --git a/test/testcases/span/01_link/reference.html.19 b/test/testcases/span/01_link/reference.html.19
index 430dc3d..f6fed18 100644
--- a/test/testcases/span/01_link/reference.html.19
+++ b/test/testcases/span/01_link/reference.html.19
@@ -34,3 +34,4 @@ test [urldef]</p>
 
 <p>this <a href="occasion.html">is a ‘special’ occasion for /all/ of us</a></p>
 
+<p>this is <a href="predefined.html">predefined</a> for <a href="uri.html" title="My URI">URI</a></p>
diff --git a/test/testcases/span/01_link/reference.options b/test/testcases/span/01_link/reference.options
new file mode 100644
index 0000000..efb4b01
--- /dev/null
+++ b/test/testcases/span/01_link/reference.options
@@ -0,0 +1,3 @@
+:link_defs:
+  predefined: [predefined.html]
+  URI: [uri.html, My URI]
diff --git a/test/testcases/span/01_link/reference.text b/test/testcases/span/01_link/reference.text
index f2d7be2..9f39fa7 100644
--- a/test/testcases/span/01_link/reference.text
+++ b/test/testcases/span/01_link/reference.text
@@ -48,3 +48,6 @@ some [with spaces]
 this [is a 'special' occasion for /all/ of us]
 
 [is a 'special' occasion for /all/ of us]: occasion.html
+
+
+this is [predefined] for [URI]

-- 
ruby-kramdown.git



More information about the Pkg-ruby-extras-commits mailing list