kramdown 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of kramdown might be problematic. Click here for more details.
- checksums.yaml +6 -14
 - data/CONTRIBUTERS +4 -2
 - data/Rakefile +2 -2
 - data/VERSION +1 -1
 - data/data/kramdown/document.html +4 -0
 - data/doc/documentation.page +1 -1
 - data/doc/installation.page +2 -2
 - data/doc/sidebar.template +2 -2
 - data/doc/syntax.page +4 -5
 - data/lib/kramdown/converter/base.rb +1 -1
 - data/lib/kramdown/converter/html.rb +1 -1
 - data/lib/kramdown/converter/latex.rb +2 -2
 - data/lib/kramdown/parser.rb +1 -0
 - data/lib/kramdown/parser/gfm.rb +40 -0
 - data/lib/kramdown/parser/html.rb +1 -0
 - data/lib/kramdown/parser/kramdown/codeblock.rb +4 -4
 - data/lib/kramdown/parser/kramdown/extensions.rb +1 -1
 - data/lib/kramdown/parser/kramdown/header.rb +1 -1
 - data/lib/kramdown/utils/unidecoder.rb +8 -3
 - data/lib/kramdown/version.rb +1 -1
 - data/test/test_files.rb +74 -0
 - data/test/testcases/block/03_paragraph/indented.html.gfm +18 -0
 - data/test/testcases/block/04_header/atx_header.html +5 -1
 - data/test/testcases/block/04_header/atx_header.text +5 -1
 - data/test/testcases/block/04_header/setext_header.html +3 -1
 - data/test/testcases/block/04_header/setext_header.text +4 -1
 - data/test/testcases/block/07_horizontal_rule/normal.html +2 -0
 - data/test/testcases/block/07_horizontal_rule/normal.text +3 -0
 - data/test/testcases_gfm/backticks_disable_highlighting.html +2 -0
 - data/test/testcases_gfm/backticks_disable_highlighting.options +1 -0
 - data/test/testcases_gfm/backticks_disable_highlighting.text +3 -0
 - data/test/testcases_gfm/backticks_syntax.html +20 -0
 - data/test/testcases_gfm/backticks_syntax.text +19 -0
 - data/test/testcases_gfm/two_para_hard_line_breaks.html +4 -0
 - data/test/testcases_gfm/two_para_hard_line_breaks.text +4 -0
 - metadata +16 -9
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,15 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
              metadata.gz: !binary |-
         
     | 
| 
       9 
     | 
    
         
            -
                ZmIzYWNkYzE2Mjg1MGNkM2E3MjM0YTNiMWI5Y2VkZmM2ZDdiNzJjNjdjMjU1
         
     | 
| 
       10 
     | 
    
         
            -
                MjlhNmFlNjRiODM0MjE4ODBmMzA5YjFjOTM4ZTdkOWViZTcxMTE3ZjUzNThk
         
     | 
| 
       11 
     | 
    
         
            -
                ZmMzZjRhOTlkMDM5NTY2NTNkMmEwNDhkY2RiZGUwNjQxOTRlMDU=
         
     | 
| 
       12 
     | 
    
         
            -
              data.tar.gz: !binary |-
         
     | 
| 
       13 
     | 
    
         
            -
                ZjI5NjUxZDZhOWRhZTA2MGEzOWUyZDg4NGI0OTZmZGU5M2RiM2U0ZTgwZGNi
         
     | 
| 
       14 
     | 
    
         
            -
                ZDRkMzk4NWE0ZGU2ZTI5YjBhNzBjNDA3NWQ0ZjZjM2Y2NDBhNWYwODk0ZWZj
         
     | 
| 
       15 
     | 
    
         
            -
                NDY5N2ZmYWI2ZTVlZWI1YTQ1NWQyNzU0N2JhODZmMWUyZGQxNjE=
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA1:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 32280f4fafeca55aeecb04530f975715e811f7f2
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 093389e9fa3fcf20e987c12043377358ff03d632
         
     | 
| 
      
 5 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 62f5d75971e5d2a217d97638e9f961be1961d9d0f860a6b1bef082dd2471ae8207dd6eef5500a277ade27a02a60051c863a2d611f1973a3abfba0adf500b37b6
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 78b3ec99523df42f35a0c3cbc264c2aa3b15ba4c6a9570b316673edc2d88edcb2c1d9e831afbddcd7c6bbd5ceac695f950bd8f94785275d020f1f7fef3c176ed
         
     | 
    
        data/CONTRIBUTERS
    CHANGED
    
    | 
         @@ -1,17 +1,19 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
              Count Name
         
     | 
| 
       2 
2 
     | 
    
         
             
            ======= ====
         
     | 
| 
       3 
     | 
    
         
            -
                 
     | 
| 
      
 3 
     | 
    
         
            +
                603 Thomas Leitner <t_leitner@gmx.at>
         
     | 
| 
       4 
4 
     | 
    
         
             
                  6 Gioele Barabucci <gioele@svario.it>
         
     | 
| 
       5 
5 
     | 
    
         
             
                  4 Ted Pak <powerpak006@gmail.com>
         
     | 
| 
      
 6 
     | 
    
         
            +
                  4 Arne Brasseur <arne@arnebrasseur.net>
         
     | 
| 
      
 7 
     | 
    
         
            +
                  3 Henning Perl <perl@fast-sicher.de>
         
     | 
| 
       6 
8 
     | 
    
         
             
                  3 gettalong <t_leitner@gmx.at>
         
     | 
| 
       7 
9 
     | 
    
         
             
                  3 Ben Armston <ben.armston@googlemail.com>
         
     | 
| 
       8 
10 
     | 
    
         
             
                  3 Alex Marandon <contact@alexmarandon.com>
         
     | 
| 
       9 
     | 
    
         
            -
                  2 Henning Perl <perl@fast-sicher.de>
         
     | 
| 
       10 
11 
     | 
    
         
             
                  2 Bran <m.versum@gmail.com>
         
     | 
| 
       11 
12 
     | 
    
         
             
                  1 Trevor Wennblom <trevor@well.com>
         
     | 
| 
       12 
13 
     | 
    
         
             
                  1 tomykaira <tomykaira@gmail.com>
         
     | 
| 
       13 
14 
     | 
    
         
             
                  1 Tim Besard <tim.besard@gmail.com>
         
     | 
| 
       14 
15 
     | 
    
         
             
                  1 Tim Bates <tim@rumpuslabs.com>
         
     | 
| 
      
 16 
     | 
    
         
            +
                  1 Simon Lydell <simon.lydell@gmail.com>
         
     | 
| 
       15 
17 
     | 
    
         
             
                  1 Postmodern <postmodern.mod3@gmail.com>
         
     | 
| 
       16 
18 
     | 
    
         
             
                  1 myqlarson <myqlarson@gmail.com>
         
     | 
| 
       17 
19 
     | 
    
         
             
                  1 Michal Till <michal.till@gmail.com>
         
     | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -218,7 +218,7 @@ EOF 
     | 
|
| 
       218 
218 
     | 
    
         
             
                  rf.configure
         
     | 
| 
       219 
219 
     | 
    
         
             
                  rf.login
         
     | 
| 
       220 
220 
     | 
    
         | 
| 
       221 
     | 
    
         
            -
                  rf.userconfig["release_notes"] = REL_PAGE.blocks['content'] 
     | 
| 
      
 221 
     | 
    
         
            +
                  rf.userconfig["release_notes"] = REL_PAGE.blocks['content']
         
     | 
| 
       222 
222 
     | 
    
         
             
                  rf.userconfig["preformatted"] = false
         
     | 
| 
       223 
223 
     | 
    
         | 
| 
       224 
224 
     | 
    
         
             
                  files = %w[.gem .tgz .zip].collect {|ext| "pkg/kramdown-#{Kramdown::VERSION}" + ext}
         
     | 
| 
         @@ -239,7 +239,7 @@ EOF 
     | 
|
| 
       239 
239 
     | 
    
         | 
| 
       240 
240 
     | 
    
         
             
                  content = REL_PAGE.blocks['content']
         
     | 
| 
       241 
241 
     | 
    
         
             
                  content += "\n\n\nAbout kramdown\n\n#{SUMMARY}\n\n#{DESCRIPTION}"
         
     | 
| 
       242 
     | 
    
         
            -
                  rf.post_news('kramdown', "kramdown #{Kramdown::VERSION} released", content) 
     | 
| 
      
 242 
     | 
    
         
            +
                  rf.post_news('kramdown', "kramdown #{Kramdown::VERSION} released", content)
         
     | 
| 
       243 
243 
     | 
    
         
             
                  puts "done"
         
     | 
| 
       244 
244 
     | 
    
         
             
                end
         
     | 
| 
       245 
245 
     | 
    
         
             
              end
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            1. 
     | 
| 
      
 1 
     | 
    
         
            +
            1.2.0
         
     | 
    
        data/data/kramdown/document.html
    CHANGED
    
    
    
        data/doc/documentation.page
    CHANGED
    
    | 
         @@ -12,7 +12,7 @@ HTML. However, due to its modular architecture it is able to support additional 
     | 
|
| 
       12 
12 
     | 
    
         
             
            formats. The following input and output formats are currently supported:
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
            * Input: [kramdown](parser/kramdown.html) (a superset of Markdown),
         
     | 
| 
       15 
     | 
    
         
            -
              [Markdown](parser/markdown.html), [HTML](parser/html.html)
         
     | 
| 
      
 15 
     | 
    
         
            +
              [Markdown](parser/markdown.html), [Github Flavored Markdown](parser/gfm.html), [HTML](parser/html.html)
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
            * Output: [HTML](converter/html.html), [LaTeX](converter/latex.html),
         
     | 
| 
       18 
18 
     | 
    
         
             
              [kramdown](converter/kramdown.html), [RemoveHtmlTags](converter/remove_html_tags.html) (a special
         
     | 
    
        data/doc/installation.page
    CHANGED
    
    | 
         @@ -8,7 +8,7 @@ sort_info: 5 
     | 
|
| 
       8 
8 
     | 
    
         
             
            ## Dependencies
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
            Since kramdown is written in Ruby, you just need the [Ruby interpreter](http://www.ruby-lang.org),
         
     | 
| 
       11 
     | 
    
         
            -
            version 1.8.5, 1.8.6, 1.8.7, 1.9.2  
     | 
| 
      
 11 
     | 
    
         
            +
            version 1.8.5, 1.8.6, 1.8.7, 1.9.2, 1.9.3 or 2.0.0. There are no other dependencies.
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
            ## Compatibility Notes
         
     | 
| 
         @@ -16,7 +16,7 @@ version 1.8.5, 1.8.6, 1.8.7, 1.9.2 or 1.9.3. There are no other dependencies. 
     | 
|
| 
       16 
16 
     | 
    
         
             
            kramdown should work on any platform which supports Ruby. It has been successfully tested on the
         
     | 
| 
       17 
17 
     | 
    
         
             
            following platforms:
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
            * Linux with Ruby 1.8.5, 1.8.6, 1.8.7, 1.9.2, 1.9.3 and jruby 1. 
     | 
| 
      
 19 
     | 
    
         
            +
            * Linux with Ruby 1.8.5, 1.8.6, 1.8.7, 1.9.2, 1.9.3, 2.0.0 and jruby 1.7.3.
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
            See the platform specific installation notes for more information!
         
     | 
| 
       22 
22 
     | 
    
         | 
    
        data/doc/sidebar.template
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            <h2>News</h2>
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            <p>The latest version of kramdown is <span class="inline-important">1. 
     | 
| 
       4 
     | 
    
         
            -
            on <span class="inline-important">2013- 
     | 
| 
      
 3 
     | 
    
         
            +
            <p>The latest version of kramdown is <span class="inline-important">1.2.0</span> and it was released
         
     | 
| 
      
 4 
     | 
    
         
            +
            on <span class="inline-important">2013-08-31</span></p>
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            <p>More <a href="{relocatable: news.html}">news</a>…</p>
         
     | 
| 
       7 
7 
     | 
    
         | 
    
        data/doc/syntax.page
    CHANGED
    
    | 
         @@ -1543,11 +1543,10 @@ key-value pairs 
     | 
|
| 
       1543 
1543 
     | 
    
         | 
| 
       1544 
1544 
     | 
    
         
             
            ID name
         
     | 
| 
       1545 
1545 
     | 
    
         | 
| 
       1546 
     | 
    
         
            -
            : An ID name is defined by using a hash and then the identifier name which needs to start with  
     | 
| 
       1547 
     | 
    
         
            -
               
     | 
| 
       1548 
     | 
    
         
            -
               
     | 
| 
       1549 
     | 
    
         
            -
               
     | 
| 
       1550 
     | 
    
         
            -
              `#myid`.
         
     | 
| 
      
 1546 
     | 
    
         
            +
            : An ID name is defined by using a hash and then the identifier name which needs to start with an
         
     | 
| 
      
 1547 
     | 
    
         
            +
              ASCII character, optionally followed by other ASCII characters, digits, dashes or colons. This is
         
     | 
| 
      
 1548 
     | 
    
         
            +
              a short hand for the key-value pair `id="IDNAME"` since this is often used. The ID name specifies
         
     | 
| 
      
 1549 
     | 
    
         
            +
              the unique ID of a block or span-level element. For example, an ID name looks like `#myid`.
         
     | 
| 
       1551 
1550 
     | 
    
         | 
| 
       1552 
1551 
     | 
    
         
             
            class names
         
     | 
| 
       1553 
1552 
     | 
    
         | 
| 
         @@ -77,8 +77,8 @@ module Kramdown 
     | 
|
| 
       77 
77 
     | 
    
         
             
                  def self.convert(tree, options = {})
         
     | 
| 
       78 
78 
     | 
    
         
             
                    converter = new(tree, ::Kramdown::Options.merge(options.merge(tree.options[:options] || {})))
         
     | 
| 
       79 
79 
     | 
    
         
             
                    result = converter.convert(tree)
         
     | 
| 
       80 
     | 
    
         
            -
                    result = apply_template(converter, result) if !converter.options[:template].empty?
         
     | 
| 
       81 
80 
     | 
    
         
             
                    result.encode!(tree.options[:encoding]) if result.respond_to?(:encode!)
         
     | 
| 
      
 81 
     | 
    
         
            +
                    result = apply_template(converter, result) if !converter.options[:template].empty?
         
     | 
| 
       82 
82 
     | 
    
         
             
                    [result, converter.warnings]
         
     | 
| 
       83 
83 
     | 
    
         
             
                  end
         
     | 
| 
       84 
84 
     | 
    
         | 
| 
         @@ -206,9 +206,9 @@ module Kramdown 
     | 
|
| 
       206 
206 
     | 
    
         
             
                  def convert_a(el, opts)
         
     | 
| 
       207 
207 
     | 
    
         
             
                    url = el.attr['href']
         
     | 
| 
       208 
208 
     | 
    
         
             
                    if url =~ /^#/
         
     | 
| 
       209 
     | 
    
         
            -
                      "\\hyperlink{#{url[1..-1]}}{#{inner(el, opts)}}"
         
     | 
| 
      
 209 
     | 
    
         
            +
                      "\\hyperlink{#{escape(url[1..-1])}}{#{inner(el, opts)}}"
         
     | 
| 
       210 
210 
     | 
    
         
             
                    else
         
     | 
| 
       211 
     | 
    
         
            -
                      "\\href{#{url}}{#{inner(el, opts)}}"
         
     | 
| 
      
 211 
     | 
    
         
            +
                      "\\href{#{escape(url)}}{#{inner(el, opts)}}"
         
     | 
| 
       212 
212 
     | 
    
         
             
                    end
         
     | 
| 
       213 
213 
     | 
    
         
             
                  end
         
     | 
| 
       214 
214 
     | 
    
         | 
    
        data/lib/kramdown/parser.rb
    CHANGED
    
    
| 
         @@ -0,0 +1,40 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # -*- coding: utf-8 -*-
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'kramdown/parser/kramdown'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            module Kramdown
         
     | 
| 
      
 6 
     | 
    
         
            +
              module Parser
         
     | 
| 
      
 7 
     | 
    
         
            +
                class GFM < Kramdown::Parser::Kramdown
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  def initialize(source, options)
         
     | 
| 
      
 10 
     | 
    
         
            +
                    super
         
     | 
| 
      
 11 
     | 
    
         
            +
                    i = @block_parsers.index(:codeblock_fenced)
         
     | 
| 
      
 12 
     | 
    
         
            +
                    @block_parsers.delete(:codeblock_fenced)
         
     | 
| 
      
 13 
     | 
    
         
            +
                    @block_parsers.insert(i, :codeblock_fenced_gfm)
         
     | 
| 
      
 14 
     | 
    
         
            +
                  end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                  FENCED_CODEBLOCK_MATCH = /^(([~`]){3,})\s*?(\w+)?\s*?\n(.*?)^\1\2*\s*?\n/m
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                  define_parser(:codeblock_fenced_gfm, /^[~`]{3,}/, nil, 'parse_codeblock_fenced')
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  def parse_paragraph
         
     | 
| 
      
 21 
     | 
    
         
            +
                    result = @src.scan(PARAGRAPH_MATCH)
         
     | 
| 
      
 22 
     | 
    
         
            +
                    while !@src.match?(self.class::PARAGRAPH_END)
         
     | 
| 
      
 23 
     | 
    
         
            +
                      result << @src.scan(PARAGRAPH_MATCH)
         
     | 
| 
      
 24 
     | 
    
         
            +
                    end
         
     | 
| 
      
 25 
     | 
    
         
            +
                    result.chomp!
         
     | 
| 
      
 26 
     | 
    
         
            +
                    unless @tree.children.last && @tree.children.last.type == :p
         
     | 
| 
      
 27 
     | 
    
         
            +
                      @tree.children << new_block_el(:p)
         
     | 
| 
      
 28 
     | 
    
         
            +
                    end
         
     | 
| 
      
 29 
     | 
    
         
            +
                    lines = result.lstrip.split(/\n/)
         
     | 
| 
      
 30 
     | 
    
         
            +
                    lines.each_with_index do |line, index|
         
     | 
| 
      
 31 
     | 
    
         
            +
                      @tree.children.last.children << Element.new(@text_type, line) << Element.new(:br) << Element.new(@text_type, "\n")
         
     | 
| 
      
 32 
     | 
    
         
            +
                    end
         
     | 
| 
      
 33 
     | 
    
         
            +
                    @tree.children.last.children.pop # added one \n too many
         
     | 
| 
      
 34 
     | 
    
         
            +
                    @tree.children.last.children.pop # added one :br too many
         
     | 
| 
      
 35 
     | 
    
         
            +
                    true
         
     | 
| 
      
 36 
     | 
    
         
            +
                  end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                end
         
     | 
| 
      
 39 
     | 
    
         
            +
              end
         
     | 
| 
      
 40 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/kramdown/parser/html.rb
    CHANGED
    
    
| 
         @@ -31,14 +31,14 @@ module Kramdown 
     | 
|
| 
       31 
31 
     | 
    
         | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         
             
                  FENCED_CODEBLOCK_START = /^~{3,}/
         
     | 
| 
       34 
     | 
    
         
            -
                  FENCED_CODEBLOCK_MATCH = /^(~{3,})\s*?(\w+)?\s*?\n(.*?)^\1 
     | 
| 
      
 34 
     | 
    
         
            +
                  FENCED_CODEBLOCK_MATCH = /^((~){3,})\s*?(\w+)?\s*?\n(.*?)^\1\2*\s*?\n/m
         
     | 
| 
       35 
35 
     | 
    
         | 
| 
       36 
36 
     | 
    
         
             
                  # Parse the fenced codeblock at the current location.
         
     | 
| 
       37 
37 
     | 
    
         
             
                  def parse_codeblock_fenced
         
     | 
| 
       38 
     | 
    
         
            -
                    if @src.check(FENCED_CODEBLOCK_MATCH)
         
     | 
| 
      
 38 
     | 
    
         
            +
                    if @src.check(self.class::FENCED_CODEBLOCK_MATCH)
         
     | 
| 
       39 
39 
     | 
    
         
             
                      @src.pos += @src.matched_size
         
     | 
| 
       40 
     | 
    
         
            -
                      el = new_block_el(:codeblock, @src[ 
     | 
| 
       41 
     | 
    
         
            -
                      lang = @src[ 
     | 
| 
      
 40 
     | 
    
         
            +
                      el = new_block_el(:codeblock, @src[4])
         
     | 
| 
      
 41 
     | 
    
         
            +
                      lang = @src[3].to_s.strip
         
     | 
| 
       42 
42 
     | 
    
         
             
                      el.attr['class'] = "language-#{lang}" unless lang.empty?
         
     | 
| 
       43 
43 
     | 
    
         
             
                      @tree.children << el
         
     | 
| 
       44 
44 
     | 
    
         
             
                      true
         
     | 
| 
         @@ -129,7 +129,7 @@ module Kramdown 
     | 
|
| 
       129 
129 
     | 
    
         
             
                  ALD_ID_NAME = /\w#{ALD_ID_CHARS}*/
         
     | 
| 
       130 
130 
     | 
    
         
             
                  ALD_TYPE_KEY_VALUE_PAIR = /(#{ALD_ID_NAME})=("|')((?:\\\}|\\\2|[^\}\2])*?)\2/
         
     | 
| 
       131 
131 
     | 
    
         
             
                  ALD_TYPE_CLASS_NAME = /\.(#{ALD_ID_NAME})/
         
     | 
| 
       132 
     | 
    
         
            -
                  ALD_TYPE_ID_NAME = /#( 
     | 
| 
      
 132 
     | 
    
         
            +
                  ALD_TYPE_ID_NAME = /#([A-Za-z][\w:-]*)/
         
     | 
| 
       133 
133 
     | 
    
         
             
                  ALD_TYPE_ID_OR_CLASS = /#{ALD_TYPE_ID_NAME}|#{ALD_TYPE_CLASS_NAME}/
         
     | 
| 
       134 
134 
     | 
    
         
             
                  ALD_TYPE_ID_OR_CLASS_MULTI = /((?:#{ALD_TYPE_ID_NAME}|#{ALD_TYPE_CLASS_NAME})+)/
         
     | 
| 
       135 
135 
     | 
    
         
             
                  ALD_TYPE_REF = /(#{ALD_ID_NAME})/
         
     | 
| 
         @@ -13,7 +13,7 @@ module Kramdown 
     | 
|
| 
       13 
13 
     | 
    
         
             
              module Parser
         
     | 
| 
       14 
14 
     | 
    
         
             
                class Kramdown
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
                  HEADER_ID=/(?:[ \t]+\{#( 
     | 
| 
      
 16 
     | 
    
         
            +
                  HEADER_ID=/(?:[ \t]+\{#([A-Za-z][\w:-]*)\})?/
         
     | 
| 
       17 
17 
     | 
    
         
             
                  SETEXT_HEADER_START = /^(#{OPT_SPACE}[^ \t].*?)#{HEADER_ID}[ \t]*?\n(-|=)+\s*?\n/
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
                  # Parse the Setext header at the current location.
         
     | 
| 
         @@ -15,20 +15,25 @@ module Kramdown 
     | 
|
| 
       15 
15 
     | 
    
         
             
                # Provides the ability to tranliterate Unicode strings into plain ASCII ones.
         
     | 
| 
       16 
16 
     | 
    
         
             
                module Unidecoder
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
                   
     | 
| 
      
 18 
     | 
    
         
            +
                  gem 'stringex' if defined?(Gem)
         
     | 
| 
      
 19 
     | 
    
         
            +
                  path = $:.find {|dir| File.directory?(File.join(File.expand_path(dir), "stringex", "unidecoder_data"))}
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                  if RUBY_VERSION <= '1.8.6' || !path
         
     | 
| 
       19 
22 
     | 
    
         
             
                    def self.decode(string)
         
     | 
| 
       20 
23 
     | 
    
         
             
                      string
         
     | 
| 
       21 
24 
     | 
    
         
             
                    end
         
     | 
| 
       22 
25 
     | 
    
         
             
                  else
         
     | 
| 
       23 
26 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
                     
     | 
| 
      
 27 
     | 
    
         
            +
                    CODEPOINTS = Hash.new do |h, k|
         
     | 
| 
      
 28 
     | 
    
         
            +
                      h[k] = YAML.load_file(File.join(path, "stringex", "unidecoder_data", "#{k}.yml"))
         
     | 
| 
      
 29 
     | 
    
         
            +
                    end
         
     | 
| 
       25 
30 
     | 
    
         | 
| 
       26 
31 
     | 
    
         
             
                    # Transliterate string from Unicode into ASCII.
         
     | 
| 
       27 
32 
     | 
    
         
             
                    def self.decode(string)
         
     | 
| 
       28 
33 
     | 
    
         
             
                      string.gsub(/[^\x00-\x7f]/u) do |codepoint|
         
     | 
| 
       29 
34 
     | 
    
         
             
                        begin
         
     | 
| 
       30 
35 
     | 
    
         
             
                          unpacked = codepoint.unpack("U")[0]
         
     | 
| 
       31 
     | 
    
         
            -
                           
     | 
| 
      
 36 
     | 
    
         
            +
                          CODEPOINTS["x%02x" % (unpacked >> 8)][unpacked & 255]
         
     | 
| 
       32 
37 
     | 
    
         
             
                        rescue
         
     | 
| 
       33 
38 
     | 
    
         
             
                          "?"
         
     | 
| 
       34 
39 
     | 
    
         
             
                        end
         
     | 
    
        data/lib/kramdown/version.rb
    CHANGED
    
    
    
        data/test/test_files.rb
    CHANGED
    
    | 
         @@ -171,6 +171,80 @@ class TestFiles < Test::Unit::TestCase 
     | 
|
| 
       171 
171 
     | 
    
         
             
                end
         
     | 
| 
       172 
172 
     | 
    
         
             
              end
         
     | 
| 
       173 
173 
     | 
    
         | 
| 
      
 174 
     | 
    
         
            +
              EXCLUDE_GFM_FILES = [
         
     | 
| 
      
 175 
     | 
    
         
            +
                'test/testcases/block/03_paragraph/no_newline_at_end.text',
         
     | 
| 
      
 176 
     | 
    
         
            +
                'test/testcases/block/03_paragraph/indented.text',
         
     | 
| 
      
 177 
     | 
    
         
            +
                'test/testcases/block/03_paragraph/two_para.text',
         
     | 
| 
      
 178 
     | 
    
         
            +
                'test/testcases/block/04_header/atx_header.text',
         
     | 
| 
      
 179 
     | 
    
         
            +
                'test/testcases/block/04_header/setext_header.text',
         
     | 
| 
      
 180 
     | 
    
         
            +
                'test/testcases/block/05_blockquote/indented.text',
         
     | 
| 
      
 181 
     | 
    
         
            +
                'test/testcases/block/05_blockquote/lazy.text',
         
     | 
| 
      
 182 
     | 
    
         
            +
                'test/testcases/block/05_blockquote/nested.text',
         
     | 
| 
      
 183 
     | 
    
         
            +
                'test/testcases/block/05_blockquote/no_newline_at_end.text',
         
     | 
| 
      
 184 
     | 
    
         
            +
                'test/testcases/block/06_codeblock/error.text',
         
     | 
| 
      
 185 
     | 
    
         
            +
                'test/testcases/block/07_horizontal_rule/error.text',
         
     | 
| 
      
 186 
     | 
    
         
            +
                'test/testcases/block/08_list/escaping.text',
         
     | 
| 
      
 187 
     | 
    
         
            +
                'test/testcases/block/08_list/item_ial.text',
         
     | 
| 
      
 188 
     | 
    
         
            +
                'test/testcases/block/08_list/lazy.text',
         
     | 
| 
      
 189 
     | 
    
         
            +
                'test/testcases/block/08_list/list_and_others.text',
         
     | 
| 
      
 190 
     | 
    
         
            +
                'test/testcases/block/08_list/other_first_element.text',
         
     | 
| 
      
 191 
     | 
    
         
            +
                'test/testcases/block/08_list/simple_ul.text',
         
     | 
| 
      
 192 
     | 
    
         
            +
                'test/testcases/block/08_list/special_cases.text',
         
     | 
| 
      
 193 
     | 
    
         
            +
                'test/testcases/block/09_html/comment.text',
         
     | 
| 
      
 194 
     | 
    
         
            +
                'test/testcases/block/09_html/html_to_native/code.text',
         
     | 
| 
      
 195 
     | 
    
         
            +
                'test/testcases/block/09_html/html_to_native/emphasis.text',
         
     | 
| 
      
 196 
     | 
    
         
            +
                'test/testcases/block/09_html/html_to_native/typography.text',
         
     | 
| 
      
 197 
     | 
    
         
            +
                'test/testcases/block/09_html/parse_as_raw.text',
         
     | 
| 
      
 198 
     | 
    
         
            +
                'test/testcases/block/09_html/simple.text',
         
     | 
| 
      
 199 
     | 
    
         
            +
                'test/testcases/block/12_extension/comment.text',
         
     | 
| 
      
 200 
     | 
    
         
            +
                'test/testcases/block/12_extension/ignored.text',
         
     | 
| 
      
 201 
     | 
    
         
            +
                'test/testcases/block/12_extension/nomarkdown.text',
         
     | 
| 
      
 202 
     | 
    
         
            +
                'test/testcases/block/13_definition_list/item_ial.text',
         
     | 
| 
      
 203 
     | 
    
         
            +
                'test/testcases/block/13_definition_list/multiple_terms.text',
         
     | 
| 
      
 204 
     | 
    
         
            +
                'test/testcases/block/13_definition_list/no_def_list.text',
         
     | 
| 
      
 205 
     | 
    
         
            +
                'test/testcases/block/13_definition_list/simple.text',
         
     | 
| 
      
 206 
     | 
    
         
            +
                'test/testcases/block/13_definition_list/with_blocks.text',
         
     | 
| 
      
 207 
     | 
    
         
            +
                'test/testcases/block/14_table/errors.text',
         
     | 
| 
      
 208 
     | 
    
         
            +
                'test/testcases/block/14_table/escaping.text',
         
     | 
| 
      
 209 
     | 
    
         
            +
                'test/testcases/block/14_table/simple.text',
         
     | 
| 
      
 210 
     | 
    
         
            +
                'test/testcases/block/15_math/normal.text',
         
     | 
| 
      
 211 
     | 
    
         
            +
                'test/testcases/encoding.text',
         
     | 
| 
      
 212 
     | 
    
         
            +
                'test/testcases/span/01_link/inline.text',
         
     | 
| 
      
 213 
     | 
    
         
            +
                'test/testcases/span/01_link/link_defs.text',
         
     | 
| 
      
 214 
     | 
    
         
            +
                'test/testcases/span/01_link/reference.text',
         
     | 
| 
      
 215 
     | 
    
         
            +
                'test/testcases/span/02_emphasis/normal.text',
         
     | 
| 
      
 216 
     | 
    
         
            +
                'test/testcases/span/03_codespan/normal.text',
         
     | 
| 
      
 217 
     | 
    
         
            +
                'test/testcases/span/04_footnote/definitions.text',
         
     | 
| 
      
 218 
     | 
    
         
            +
                'test/testcases/span/04_footnote/markers.text',
         
     | 
| 
      
 219 
     | 
    
         
            +
                'test/testcases/span/05_html/across_lines.text',
         
     | 
| 
      
 220 
     | 
    
         
            +
                'test/testcases/span/05_html/markdown_attr.text',
         
     | 
| 
      
 221 
     | 
    
         
            +
                'test/testcases/span/05_html/normal.text',
         
     | 
| 
      
 222 
     | 
    
         
            +
                'test/testcases/span/autolinks/url_links.text',
         
     | 
| 
      
 223 
     | 
    
         
            +
                'test/testcases/span/extension/comment.text',
         
     | 
| 
      
 224 
     | 
    
         
            +
                'test/testcases/span/ial/simple.text',
         
     | 
| 
      
 225 
     | 
    
         
            +
                'test/testcases/span/line_breaks/normal.text',
         
     | 
| 
      
 226 
     | 
    
         
            +
                'test/testcases/span/text_substitutions/entities_as_char.text',
         
     | 
| 
      
 227 
     | 
    
         
            +
                'test/testcases/span/text_substitutions/entities.text',
         
     | 
| 
      
 228 
     | 
    
         
            +
                'test/testcases/span/text_substitutions/typography.text'
         
     | 
| 
      
 229 
     | 
    
         
            +
              ]
         
     | 
| 
      
 230 
     | 
    
         
            +
             
     | 
| 
      
 231 
     | 
    
         
            +
              # Generate test methods for gfm-to-html conversion
         
     | 
| 
      
 232 
     | 
    
         
            +
              Dir[File.dirname(__FILE__) + '/{testcases,testcases_gfm}/**/*.text'].each do |text_file|
         
     | 
| 
      
 233 
     | 
    
         
            +
                next if EXCLUDE_GFM_FILES.any? {|f| text_file =~ /#{f}$/}
         
     | 
| 
      
 234 
     | 
    
         
            +
                basename = text_file.sub(/\.text$/, '')
         
     | 
| 
      
 235 
     | 
    
         
            +
             
     | 
| 
      
 236 
     | 
    
         
            +
                html_file = [(".html.19" if RUBY_VERSION >= '1.9'), ".html"].compact.
         
     | 
| 
      
 237 
     | 
    
         
            +
                  map {|ext| basename + ext }.
         
     | 
| 
      
 238 
     | 
    
         
            +
                  detect {|file| File.exist?(file) }
         
     | 
| 
      
 239 
     | 
    
         
            +
             
     | 
| 
      
 240 
     | 
    
         
            +
                define_method('test_gfm_' + text_file.tr('.', '_') + "_to_html") do
         
     | 
| 
      
 241 
     | 
    
         
            +
                  opts_file = basename + '.options'
         
     | 
| 
      
 242 
     | 
    
         
            +
                  opts_file = File.join(File.dirname(html_file), 'options') if !File.exist?(opts_file)
         
     | 
| 
      
 243 
     | 
    
         
            +
                  options = File.exist?(opts_file) ? YAML::load(File.read(opts_file)) : {:auto_ids => false, :footnote_nr => 1}
         
     | 
| 
      
 244 
     | 
    
         
            +
                  doc = Kramdown::Document.new(File.read(text_file), options.merge(:input => 'GFM'))
         
     | 
| 
      
 245 
     | 
    
         
            +
                  assert_equal(File.read(html_file), doc.to_html)
         
     | 
| 
      
 246 
     | 
    
         
            +
                end
         
     | 
| 
      
 247 
     | 
    
         
            +
              end
         
     | 
| 
       174 
248 
     | 
    
         | 
| 
       175 
249 
     | 
    
         | 
| 
       176 
250 
     | 
    
         
             
              # Generate test methods for asserting that converters don't modify the document tree.
         
     | 
| 
         @@ -0,0 +1,18 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <p>This is a para.</p>
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            <p>This is a para.</p>
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            <p>This is a para.</p>
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            <p>This is a para.</p>
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            <pre><code>This is a code block.
         
     | 
| 
      
 10 
     | 
    
         
            +
            </code></pre>
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            <p>And this is another.</p>
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            <p>A para
         
     | 
| 
      
 15 
     | 
    
         
            +
            <br /> with
         
     | 
| 
      
 16 
     | 
    
         
            +
            <br />  mixed
         
     | 
| 
      
 17 
     | 
    
         
            +
            <br />indents.
         
     | 
| 
      
 18 
     | 
    
         
            +
            <br />   and with much indent</p>
         
     | 
| 
         @@ -34,10 +34,14 @@ 
     | 
|
| 
       34 
34 
     | 
    
         | 
| 
       35 
35 
     | 
    
         
             
            <h3 id="id">Header</h3>
         
     | 
| 
       36 
36 
     | 
    
         | 
| 
       37 
     | 
    
         
            -
            <h3 id=" 
     | 
| 
      
 37 
     | 
    
         
            +
            <h3 id="Id">Header</h3>
         
     | 
| 
       38 
38 
     | 
    
         | 
| 
       39 
39 
     | 
    
         
             
            <h3 id="id">Header</h3>
         
     | 
| 
       40 
40 
     | 
    
         | 
| 
      
 41 
     | 
    
         
            +
            <h3 id="A-Za-z0-9_:t">Header</h3>
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
            <h3>Header {#9ab}</h3>
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
       41 
45 
     | 
    
         
             
            <h3>Header{#noid}</h3>
         
     | 
| 
       42 
46 
     | 
    
         | 
| 
       43 
47 
     | 
    
         
             
            <h3>Header ##{#noid}</h3>
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            :enable_coderay: false
         
     | 
| 
         @@ -0,0 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <pre><code>Three backticks
         
     | 
| 
      
 2 
     | 
    
         
            +
            </code></pre>
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            <pre><code>Four backticks
         
     | 
| 
      
 5 
     | 
    
         
            +
            </code></pre>
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            <pre><code>Unbalanced bottom heavy
         
     | 
| 
      
 8 
     | 
    
         
            +
            </code></pre>
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            <div><div class="CodeRay">
         
     | 
| 
      
 11 
     | 
    
         
            +
              <div class="code"><pre><span class="line-numbers"><a href="#n1" name="n1">1</a></span>language no space
         
     | 
| 
      
 12 
     | 
    
         
            +
            </pre></div>
         
     | 
| 
      
 13 
     | 
    
         
            +
            </div>
         
     | 
| 
      
 14 
     | 
    
         
            +
            </div>
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            <div><div class="CodeRay">
         
     | 
| 
      
 17 
     | 
    
         
            +
              <div class="code"><pre><span class="line-numbers"><a href="#n1" name="n1">1</a></span>language with space
         
     | 
| 
      
 18 
     | 
    
         
            +
            </pre></div>
         
     | 
| 
      
 19 
     | 
    
         
            +
            </div>
         
     | 
| 
      
 20 
     | 
    
         
            +
            </div>
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: kramdown
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.2.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Thomas Leitner
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2013- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2013-08-31 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: coderay
         
     | 
| 
         @@ -38,11 +38,9 @@ dependencies: 
     | 
|
| 
       38 
38 
     | 
    
         
             
                - - ~>
         
     | 
| 
       39 
39 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       40 
40 
     | 
    
         
             
                    version: 1.5.1
         
     | 
| 
       41 
     | 
    
         
            -
            description:  
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
      
 41 
     | 
    
         
            +
            description: |
         
     | 
| 
      
 42 
     | 
    
         
            +
              kramdown is yet-another-markdown-parser but fast, pure Ruby,
         
     | 
| 
       43 
43 
     | 
    
         
             
              using a strict syntax definition and supporting several common extensions.
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
            '
         
     | 
| 
       46 
44 
     | 
    
         
             
            email: t_leitner@gmx.at
         
     | 
| 
       47 
45 
     | 
    
         
             
            executables:
         
     | 
| 
       48 
46 
     | 
    
         
             
            - kramdown
         
     | 
| 
         @@ -79,6 +77,7 @@ files: 
     | 
|
| 
       79 
77 
     | 
    
         
             
            - lib/kramdown/options.rb
         
     | 
| 
       80 
78 
     | 
    
         
             
            - lib/kramdown/parser.rb
         
     | 
| 
       81 
79 
     | 
    
         
             
            - lib/kramdown/parser/base.rb
         
     | 
| 
      
 80 
     | 
    
         
            +
            - lib/kramdown/parser/gfm.rb
         
     | 
| 
       82 
81 
     | 
    
         
             
            - lib/kramdown/parser/html.rb
         
     | 
| 
       83 
82 
     | 
    
         
             
            - lib/kramdown/parser/kramdown.rb
         
     | 
| 
       84 
83 
     | 
    
         
             
            - lib/kramdown/parser/kramdown/abbreviation.rb
         
     | 
| 
         @@ -146,6 +145,7 @@ files: 
     | 
|
| 
       146 
145 
     | 
    
         
             
            - test/testcases/block/02_eob/middle.html
         
     | 
| 
       147 
146 
     | 
    
         
             
            - test/testcases/block/02_eob/middle.text
         
     | 
| 
       148 
147 
     | 
    
         
             
            - test/testcases/block/03_paragraph/indented.html
         
     | 
| 
      
 148 
     | 
    
         
            +
            - test/testcases/block/03_paragraph/indented.html.gfm
         
     | 
| 
       149 
149 
     | 
    
         
             
            - test/testcases/block/03_paragraph/indented.text
         
     | 
| 
       150 
150 
     | 
    
         
             
            - test/testcases/block/03_paragraph/no_newline_at_end.html
         
     | 
| 
       151 
151 
     | 
    
         
             
            - test/testcases/block/03_paragraph/no_newline_at_end.text
         
     | 
| 
         @@ -490,6 +490,13 @@ files: 
     | 
|
| 
       490 
490 
     | 
    
         
             
            - test/testcases/span/text_substitutions/typography.html
         
     | 
| 
       491 
491 
     | 
    
         
             
            - test/testcases/span/text_substitutions/typography.options
         
     | 
| 
       492 
492 
     | 
    
         
             
            - test/testcases/span/text_substitutions/typography.text
         
     | 
| 
      
 493 
     | 
    
         
            +
            - test/testcases_gfm/backticks_disable_highlighting.html
         
     | 
| 
      
 494 
     | 
    
         
            +
            - test/testcases_gfm/backticks_disable_highlighting.options
         
     | 
| 
      
 495 
     | 
    
         
            +
            - test/testcases_gfm/backticks_disable_highlighting.text
         
     | 
| 
      
 496 
     | 
    
         
            +
            - test/testcases_gfm/backticks_syntax.html
         
     | 
| 
      
 497 
     | 
    
         
            +
            - test/testcases_gfm/backticks_syntax.text
         
     | 
| 
      
 498 
     | 
    
         
            +
            - test/testcases_gfm/two_para_hard_line_breaks.html
         
     | 
| 
      
 499 
     | 
    
         
            +
            - test/testcases_gfm/two_para_hard_line_breaks.text
         
     | 
| 
       493 
500 
     | 
    
         
             
            homepage: http://kramdown.rubyforge.org
         
     | 
| 
       494 
501 
     | 
    
         
             
            licenses:
         
     | 
| 
       495 
502 
     | 
    
         
             
            - MIT
         
     | 
| 
         @@ -502,17 +509,17 @@ require_paths: 
     | 
|
| 
       502 
509 
     | 
    
         
             
            - lib
         
     | 
| 
       503 
510 
     | 
    
         
             
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
       504 
511 
     | 
    
         
             
              requirements:
         
     | 
| 
       505 
     | 
    
         
            -
              - -  
     | 
| 
      
 512 
     | 
    
         
            +
              - - '>='
         
     | 
| 
       506 
513 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       507 
514 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       508 
515 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       509 
516 
     | 
    
         
             
              requirements:
         
     | 
| 
       510 
     | 
    
         
            -
              - -  
     | 
| 
      
 517 
     | 
    
         
            +
              - - '>='
         
     | 
| 
       511 
518 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       512 
519 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       513 
520 
     | 
    
         
             
            requirements: []
         
     | 
| 
       514 
521 
     | 
    
         
             
            rubyforge_project: kramdown
         
     | 
| 
       515 
     | 
    
         
            -
            rubygems_version: 2.0. 
     | 
| 
      
 522 
     | 
    
         
            +
            rubygems_version: 2.0.3
         
     | 
| 
       516 
523 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       517 
524 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       518 
525 
     | 
    
         
             
            summary: kramdown is a fast, pure-Ruby Markdown-superset converter.
         
     |