kramdown-1.2.0/0000755000004100000410000000000012211563134013362 5ustar www-datawww-datakramdown-1.2.0/test/0000755000004100000410000000000012211563134014341 5ustar www-datawww-datakramdown-1.2.0/test/run_tests.rb0000644000004100000410000000252612211563134016721 0ustar www-datawww-data# -*- coding: utf-8 -*- # #-- # Copyright (C) 2009-2013 Thomas Leitner # # This file is part of kramdown which is licensed under the MIT. #++ # $:.unshift File.dirname(__FILE__) + '/../lib' require 'kramdown' require 'test/unit/assertions' require 'yaml' include Test::Unit::Assertions arg = ARGV[0] || File.join(File.dirname(__FILE__), 'testcases') arg = if File.directory?(arg) File.join(arg, '**/*.text') else arg + '.text' end width = ((size = %x{stty size 2>/dev/null}).length > 0 ? size.split.last.to_i : 72) rescue 72 width -= 8 fwidth = 0 Dir[arg].each {|f| fwidth = [fwidth, f.length + 10].max }.each do |file| print(('Testing ' + file + ' ').ljust([fwidth, width].min)) $stdout.flush html_file = file.sub('.text', '.html') opts_file = file.sub('.text', '.options') opts_file = File.join(File.dirname(file), 'options') if !File.exist?(opts_file) options = File.exist?(opts_file) ? YAML::load(File.read(opts_file)) : {:auto_ids => false, :footnote_nr => 1} doc = Kramdown::Document.new(File.read(file), options) begin assert_equal(File.read(html_file), doc.to_html) puts 'PASSED' rescue Exception => e puts ' FAILED' puts $!.message if $VERBOSE puts $!.backtrace if $DEBUG end puts "Warnings:\n" + doc.warnings.join("\n") if !doc.warnings.empty? && $VERBOSE end kramdown-1.2.0/test/testcases/0000755000004100000410000000000012211563134016337 5ustar www-datawww-datakramdown-1.2.0/test/testcases/encoding.text0000644000004100000410000000120212211563134021026 0ustar www-datawww-dataDas ist gewöhnlich *ein* [Über-Problem](http://example.org) mit manchen Sälen und anderen Dinge. Siehe ![Über mich](http://example.org)! > Vielleicht *höre*{:.red} ich nicht richtig? {:.test} * Sollten wir uns das überl*egen*? *Verhöhne* mich nicht! * Ho ho höher! Sind \*wir\* da? Titel sind urschön ================== ## Manche mögens *ärmer* {#hot} öha was nun? Töne : Laute Geräusche : vielleicht noch was ä*hnliches* | hoch | höher | am höchsten | |----------------------------| | über | drüber | müde |

Das ist schön gemacht

kramdown-1.2.0/test/testcases/block/0000755000004100000410000000000012211563134017431 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/16_toc/0000755000004100000410000000000012211563134020524 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/16_toc/toc_exclude.options0000644000004100000410000000002012211563134024427 0ustar www-datawww-data:auto_ids: true kramdown-1.2.0/test/testcases/block/16_toc/toc_with_footnotes.options0000644000004100000410000000002012211563134026051 0ustar www-datawww-data:auto_ids: true kramdown-1.2.0/test/testcases/block/16_toc/toc_levels.html0000644000004100000410000000124612211563134023554 0ustar www-datawww-data

Header level 1

Header level 2

Header level 3

Header level 4

Other header level 1

Other header level 2

Other header level 3

kramdown-1.2.0/test/testcases/block/16_toc/toc_exclude.html0000644000004100000410000000202512211563134023707 0ustar www-datawww-data

Contents

Header level 1

Header level 2

Header level 3

Header level 4

Other header level 1

Other header level 2

Other header level 3

kramdown-1.2.0/test/testcases/block/16_toc/toc_levels.text0000644000004100000410000000030212211563134023564 0ustar www-datawww-data* Here comes the table of content {:toc} # Header level 1 ## Header level 2 ### Header level 3 #### Header level 4 # Other header level 1 ## Other header level 2 ### Other header level 3 kramdown-1.2.0/test/testcases/block/16_toc/toc_with_footnotes.html0000644000004100000410000000055512211563134025337 0ustar www-datawww-data

Header1 level 1

  1. Some footnote content here

kramdown-1.2.0/test/testcases/block/16_toc/no_toc.html0000644000004100000410000000030112211563134022665 0ustar www-datawww-data

Header level 1

Header level 2

Header level 3

Header level 4

Other header level 1

Other header level 2

Other header level 3

kramdown-1.2.0/test/testcases/block/16_toc/toc_with_footnotes.text0000644000004100000410000000014112211563134025346 0ustar www-datawww-data* Here comes the table of content {:toc} # Header[^1] level 1 [^1]: Some footnote content here kramdown-1.2.0/test/testcases/block/16_toc/toc_exclude.text0000644000004100000410000000033112211563134023725 0ustar www-datawww-data# Contents {:.no_toc} * Here comes the table of content {:toc} # Header level 1 ## Header level 2 ### Header level 3 #### Header level 4 # Other header level 1 ## Other header level 2 ### Other header level 3 kramdown-1.2.0/test/testcases/block/16_toc/toc_levels.options0000644000004100000410000000004212211563134024274 0ustar www-datawww-data:toc_levels: 2..3 :auto_ids: true kramdown-1.2.0/test/testcases/block/16_toc/no_toc.text0000644000004100000410000000030212211563134022706 0ustar www-datawww-data* Here comes the table of content {:toc} # Header level 1 ## Header level 2 ### Header level 3 #### Header level 4 # Other header level 1 ## Other header level 2 ### Other header level 3 kramdown-1.2.0/test/testcases/block/01_blank_line/0000755000004100000410000000000012211563134022027 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/01_blank_line/tabs.text0000644000004100000410000000001612211563134023663 0ustar www-datawww-data kramdown-1.2.0/test/testcases/block/01_blank_line/spaces.text0000644000004100000410000000002012211563134024203 0ustar www-datawww-data kramdown-1.2.0/test/testcases/block/01_blank_line/tabs.html0000644000004100000410000000000112211563134023635 0ustar www-datawww-data kramdown-1.2.0/test/testcases/block/01_blank_line/spaces.html0000644000004100000410000000000112211563134024162 0ustar www-datawww-data kramdown-1.2.0/test/testcases/block/09_html/0000755000004100000410000000000012211563134020705 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/09_html/markdown_attr.text0000644000004100000410000000053412211563134024471 0ustar www-datawww-data
*para*
*para*
*para*
*para*

*para*

*para*

*para*

*para*

*emphasize*
para
kramdown-1.2.0/test/testcases/block/09_html/not_parsed.html0000644000004100000410000000040112211563134023724 0ustar www-datawww-data
This is some text
This is some text

Foo

This is some text

http://example.com

<http://example.com>
kramdown-1.2.0/test/testcases/block/09_html/comment.text0000644000004100000410000000015012211563134023251 0ustar www-datawww-data para1 para2 para > This is > kramdown-1.2.0/test/testcases/block/09_html/invalid_html_2.html0000644000004100000410000000004112211563134024461 0ustar www-datawww-data

para


para

kramdown-1.2.0/test/testcases/block/09_html/simple.html.190000644000004100000410000000113112211563134023310 0ustar www-datawww-data

test

para2

tes

test weiter

para4

foo

bar 

para5

id

test

hallo

hallo

para6

Another para.

doit

Test

Test

Test

kramdown-1.2.0/test/testcases/block/09_html/simple.options0000644000004100000410000000003012211563134023604 0ustar www-datawww-data:parse_block_html: true kramdown-1.2.0/test/testcases/block/09_html/parse_block_html.options0000644000004100000410000000003012211563134025623 0ustar www-datawww-data:parse_block_html: true kramdown-1.2.0/test/testcases/block/09_html/simple.html0000644000004100000410000000113512211563134023064 0ustar www-datawww-data

test

para2

tes

test weiter

para4

foo

bar 

para5

id

test

hallo

hallo

para6

Another para.

doit

Test

Test

Test

kramdown-1.2.0/test/testcases/block/09_html/parse_as_raw.htmlinput0000644000004100000410000000104512211563134025321 0ustar www-datawww-data

baz { |qux| quux }

This is some para.

parsed This too

http://example.com

kramdown-1.2.0/test/testcases/block/09_html/parse_as_raw.html0000644000004100000410000000104612211563134024242 0ustar www-datawww-data

baz { |qux| quux }

This is some para.

parsed This too

http://example.com

kramdown-1.2.0/test/testcases/block/09_html/html_and_codeblocks.options0000644000004100000410000000003012211563134026271 0ustar www-datawww-data:parse_block_html: true kramdown-1.2.0/test/testcases/block/09_html/html_and_headers.html0000644000004100000410000000004512211563134025053 0ustar www-datawww-data

header

======
kramdown-1.2.0/test/testcases/block/09_html/html5_attributes.text0000644000004100000410000000045312211563134025114 0ustar www-datawww-data

paragraph

paragraph

paragraph

paragraph

paragraph

paragraph

paragraph

kramdown-1.2.0/test/testcases/block/09_html/not_parsed.text0000644000004100000410000000033112211563134023746 0ustar www-datawww-data
This is some text
This is some text

Foo

This is some text

kramdown-1.2.0/test/testcases/block/09_html/html_and_codeblocks.text0000644000004100000410000000012412211563134025566 0ustar www-datawww-datapara codeblock
test

codeblock

test
kramdown-1.2.0/test/testcases/block/09_html/processing_instruction.html0000644000004100000410000000015612211563134026412 0ustar www-datawww-data

para

para

other

kramdown-1.2.0/test/testcases/block/09_html/markdown_attr.html0000644000004100000410000000044512211563134024452 0ustar www-datawww-data

para

para

para

*para*

para

para

para

*para*

emphasize

para

kramdown-1.2.0/test/testcases/block/09_html/parse_as_span.html0000644000004100000410000000024512211563134024412 0ustar www-datawww-data

This text should be parsed as span

This produces `

` an unwanted result.</p>

This text too

some text

kramdown-1.2.0/test/testcases/block/09_html/html5_attributes.html0000644000004100000410000000047612211563134025101 0ustar www-datawww-data

paragraph

paragraph

paragraph

paragraph

paragraph

paragraph

paragraph

kramdown-1.2.0/test/testcases/block/09_html/parse_as_raw.options0000644000004100000410000000003012211563134024761 0ustar www-datawww-data:parse_block_html: true kramdown-1.2.0/test/testcases/block/09_html/html_and_codeblocks.html0000644000004100000410000000023712211563134025553 0ustar www-datawww-data

para

codeblock

test

<p>codeblock</p>

test

kramdown-1.2.0/test/testcases/block/09_html/html_to_native/0000755000004100000410000000000012211563134023721 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/09_html/html_to_native/list_dl.html0000644000004100000410000000015312211563134026240 0ustar www-datawww-data
kram
down
kram
down
kram
down
kramdown-1.2.0/test/testcases/block/09_html/html_to_native/table_simple.text0000644000004100000410000000102312211563134027263 0ustar www-datawww-data
Usage Output
Some *data* Some more
Usage Output
Some *data* Some more
foot locker
Usage Output
Some *data* Some more
kramdown-1.2.0/test/testcases/block/09_html/html_to_native/table_normal.text0000644000004100000410000000022512211563134027265 0ustar www-datawww-data
Usage Other
Some *data*

Some more

kramdown-1.2.0/test/testcases/block/09_html/html_to_native/code.text0000644000004100000410000000041312211563134025537 0ustar www-datawww-dataThis is a code span with <entities> that should be preserved. This is a simple code span.

Some <

Some very important < thing
Some code<<
kramdown-1.2.0/test/testcases/block/09_html/html_to_native/list_ul.text0000644000004100000410000000043312211563134026302 0ustar www-datawww-data
  • This is a simple list item
  • Followed by another

  • Followed by

    a para list item

  • and a normal one
  • and

    a para

  • multi line list item
kramdown-1.2.0/test/testcases/block/09_html/html_to_native/list_ul.html0000644000004100000410000000043112211563134026260 0ustar www-datawww-data
  • This is a simple list item
  • Followed by another

  • Followed by

    a para list item

  • and a normal one
  • and

    a para

  • multi line list item
kramdown-1.2.0/test/testcases/block/09_html/html_to_native/header.options0000644000004100000410000000004612211563134026566 0ustar www-datawww-data:auto_ids: true :html_to_native: true kramdown-1.2.0/test/testcases/block/09_html/html_to_native/comment.text0000644000004100000410000000006412211563134026271 0ustar www-datawww-data
kramdown-1.2.0/test/testcases/block/09_html/html_to_native/typography.text0000644000004100000410000000007512211563134027037 0ustar www-datawww-data

This is … something “to remember”!

kramdown-1.2.0/test/testcases/block/09_html/html_to_native/options0000644000004100000410000000002612211563134025335 0ustar www-datawww-data:html_to_native: true kramdown-1.2.0/test/testcases/block/09_html/html_to_native/list_ol.html0000644000004100000410000000035512211563134026257 0ustar www-datawww-data
  1. This is a simple list item
  2. Followed by another

  3. Followed by

    a para list item

  4. and a normal one
  5. and

    a para

kramdown-1.2.0/test/testcases/block/09_html/html_to_native/entity.html0000644000004100000410000000007112211563134026121 0ustar www-datawww-data

This is *raw* HTML text containing < entities!

kramdown-1.2.0/test/testcases/block/09_html/html_to_native/paragraph.html0000644000004100000410000000011012211563134026544 0ustar www-datawww-data

Some text here and end

Some other text here

kramdown-1.2.0/test/testcases/block/09_html/html_to_native/entity.text0000644000004100000410000000007112211563134026141 0ustar www-datawww-data

This is *raw* HTML text containing < entities!

kramdown-1.2.0/test/testcases/block/09_html/html_to_native/header.html0000644000004100000410000000031312211563134026034 0ustar www-datawww-data

Some headerhere!

hallo

hallo

hallo

hallo
hallo
kramdown-1.2.0/test/testcases/block/09_html/html_to_native/typography.html0000644000004100000410000000007412211563134027016 0ustar www-datawww-data

This is … something “to remember”!

kramdown-1.2.0/test/testcases/block/09_html/html_to_native/typography.html.190000644000004100000410000000006012211563134027241 0ustar www-datawww-data

This is … something “to remember”!

kramdown-1.2.0/test/testcases/block/09_html/html_to_native/list_ol.text0000644000004100000410000000035712211563134026301 0ustar www-datawww-data
  1. This is a simple list item
  2. Followed by another

  3. Followed by

    a para list item

  4. and a normal one
  5. and

    a para

kramdown-1.2.0/test/testcases/block/09_html/html_to_native/header.text0000644000004100000410000000020412211563134026053 0ustar www-datawww-data

Some headerhere!

hallo

hallo

hallo

hallo
hallo
kramdown-1.2.0/test/testcases/block/09_html/html_to_native/list_dl.text0000644000004100000410000000015312211563134026260 0ustar www-datawww-data
kram
down
kram
down
kram
down
kramdown-1.2.0/test/testcases/block/09_html/html_to_native/table_simple.html0000644000004100000410000000116012211563134027245 0ustar www-datawww-data
Usage Output
Some *data* Some more
Usage Output
Some *data* Some more
foot locker
Usage Output
Some *data* Some more
kramdown-1.2.0/test/testcases/block/09_html/html_to_native/paragraph.text0000644000004100000410000000011112211563134026565 0ustar www-datawww-data

Some text here and end

Some other text here

kramdown-1.2.0/test/testcases/block/09_html/html_to_native/emphasis.html0000644000004100000410000000026212211563134026420 0ustar www-datawww-data

This is sizedhallo.

This is strongitalic, yes!.

This is not converted, as is this.

kramdown-1.2.0/test/testcases/block/09_html/html_to_native/code.html0000644000004100000410000000040512211563134025520 0ustar www-datawww-data

This is a code span with <entities> that should be preserved. This is a simple code span.

Some <

Some very important < thing
Some code<<
kramdown-1.2.0/test/testcases/block/09_html/html_to_native/emphasis.text0000644000004100000410000000022112211563134026433 0ustar www-datawww-dataThis is sizedhallo. This is strongitalic, yes!. This is not converted, as is this. kramdown-1.2.0/test/testcases/block/09_html/html_to_native/table_normal.html0000644000004100000410000000022512211563134027245 0ustar www-datawww-data
Usage Other
Some *data*

Some more

kramdown-1.2.0/test/testcases/block/09_html/html_to_native/comment.html0000644000004100000410000000006312211563134026250 0ustar www-datawww-data
kramdown-1.2.0/test/testcases/block/09_html/html_and_headers.text0000644000004100000410000000004312211563134025071 0ustar www-datawww-dataheader ======
======
kramdown-1.2.0/test/testcases/block/09_html/parse_as_span.options0000644000004100000410000000003012211563134025131 0ustar www-datawww-data:parse_block_html: true kramdown-1.2.0/test/testcases/block/09_html/invalid_html_1.html0000644000004100000410000000005612211563134024466 0ustar www-datawww-data

para

</div>

para

kramdown-1.2.0/test/testcases/block/09_html/parse_block_html.html0000644000004100000410000000035512211563134025106 0ustar www-datawww-data

test

test
test
code block with </div>

No matching end tag

kramdown-1.2.0/test/testcases/block/09_html/invalid_html_2.text0000644000004100000410000000002112211563134024477 0ustar www-datawww-datapara
para kramdown-1.2.0/test/testcases/block/09_html/parse_as_span.htmlinput0000644000004100000410000000024512211563134025472 0ustar www-datawww-data

This text should be parsed as span

This produces `

` an unwanted result.</p>

This text too

some text

kramdown-1.2.0/test/testcases/block/09_html/content_model/0000755000004100000410000000000012211563134023537 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/09_html/content_model/deflists.options0000644000004100000410000000003012211563134026762 0ustar www-datawww-data:parse_block_html: true kramdown-1.2.0/test/testcases/block/09_html/content_model/tables.html0000644000004100000410000000027712211563134025705 0ustar www-datawww-data
Usage Output
Some data

Some more

kramdown-1.2.0/test/testcases/block/09_html/content_model/deflists.text0000644000004100000410000000005312211563134026260 0ustar www-datawww-data
*text*
para
kramdown-1.2.0/test/testcases/block/09_html/content_model/tables.text0000644000004100000410000000030012211563134025710 0ustar www-datawww-data
*Usage* Output
Some *data* # Some more
kramdown-1.2.0/test/testcases/block/09_html/content_model/deflists.html0000644000004100000410000000010312211563134026234 0ustar www-datawww-data
text

para

kramdown-1.2.0/test/testcases/block/09_html/content_model/tables.options0000644000004100000410000000003012211563134026417 0ustar www-datawww-data:parse_block_html: true kramdown-1.2.0/test/testcases/block/09_html/invalid_html_1.text0000644000004100000410000000002312211563134024500 0ustar www-datawww-datapara para kramdown-1.2.0/test/testcases/block/09_html/simple.text0000644000004100000410000000074412211563134023111 0ustar www-datawww-data
test

para2

tes

test weiter

para4
foo
bar 
para5
id
test
hallo
hallo
para6
Another para.
doit Test

Test

Test

kramdown-1.2.0/test/testcases/block/09_html/parse_as_raw.text0000644000004100000410000000076012211563134024264 0ustar www-datawww-data

baz { |qux| quux }

This is some para.

*parsed* This too

kramdown-1.2.0/test/testcases/block/09_html/processing_instruction.text0000644000004100000410000000013112211563134026423 0ustar www-datawww-data para para other kramdown-1.2.0/test/testcases/block/09_html/parse_as_span.text0000644000004100000410000000020312211563134024424 0ustar www-datawww-data

This *text should* be parsed as span

This produces `

` an unwanted result.

This *text* too

some text kramdown-1.2.0/test/testcases/block/09_html/comment.html0000644000004100000410000000023512211563134023235 0ustar www-datawww-data

para1

para2

para

This is

kramdown-1.2.0/test/testcases/block/09_html/parse_block_html.text0000644000004100000410000000021112211563134025115 0ustar www-datawww-data
test
test
test
code block with
No matching end tag kramdown-1.2.0/test/testcases/block/15_math/0000755000004100000410000000000012211563134020667 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/15_math/normal.text0000644000004100000410000000037412211563134023071 0ustar www-datawww-dataThis is a para. $$ \text{LaTeX} \lambda_5 $$ $$\lambda_5 = \alpha + 4$$ $$\lambda_\alpha > 5$$ This is a para. $$\begin{align*} &=5 \\ &=6 \\ \end{align*}$$ $$5+5$$ $$5+5$$ $$5+5$$ $$5+5$$ $$5+5$$ {:.cls} $$5+5$$ ^ $$5+5$$ {:.cls} kramdown-1.2.0/test/testcases/block/15_math/normal.html0000644000004100000410000000125012211563134023043 0ustar www-datawww-data

This is a para.

This is a para.

$$5+5$$
kramdown-1.2.0/test/testcases/block/14_table/0000755000004100000410000000000012211563134021024 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/14_table/errors.html0000644000004100000410000000013612211563134023226 0ustar www-datawww-data

No table body

|-|-|-

|no|table|here|

|no|table|here| paragraph

kramdown-1.2.0/test/testcases/block/14_table/escaping.text0000644000004100000410000000040712211563134023524 0ustar www-datawww-data`cell 1 | cell 2` cell 1 \| cell 2 cell 1 | cell 2 \| continued cell 1 | cell `2` cell 1 | `code | span` cell 1 `code | span` cell 1 \| `code | span` cell 1 | cell `2 | cell 3 cell 1` | cell 2 | cell 3 cell 1 \| cell `2 | cell 3 cell 1` | cell 2 | cell 3 kramdown-1.2.0/test/testcases/block/14_table/no_table.html0000644000004100000410000000005612211563134023476 0ustar www-datawww-data

No table

| Some | thing | here

kramdown-1.2.0/test/testcases/block/14_table/footer.html0000644000004100000410000000144512211563134023214 0ustar www-datawww-data

Simple footer

cell1 cell2
cell3 cell4

Full footer

cell1 cell2
cell3 cell4

Footer with separator lines

cell1 cell2
cell3 cell4
cell5 cell6

Empty footer

cell1 cell2
kramdown-1.2.0/test/testcases/block/14_table/simple.html.190000644000004100000410000000456212211563134023442 0ustar www-datawww-data
cell1 cell2
cell3 cell4
cell5 cell6 |
cell7 cell8

Missing cells at end

cell1 cell2 cell3
cell1    
  cell2 cell3

Escaped pipe characters

cell1 | cell1 cell2
cell1 cell2 |
cell1 | con cell2

Table with code elements

This is a span | with a pipe.      
Some span </em> here a span | with a pipe.

Special cases regarding codespan syntax

a b
a
table with ial
table with ial

not starting with a bar

simple table
head1 head2
cell1 cell2
head1 head2
  cell2
a b
c d
e f
kramdown-1.2.0/test/testcases/block/14_table/simple.html0000644000004100000410000000461612211563134023212 0ustar www-datawww-data
cell1 cell2
cell3 cell4
cell5 cell6 |
cell7 cell8

Missing cells at end

cell1 cell2 cell3
cell1    
  cell2 cell3

Escaped pipe characters

cell1 | cell1 cell2
cell1 cell2 |
cell1 | con cell2

Table with code elements

This is a span | with a pipe.      
Some span </em> here a span | with a pipe.

Special cases regarding codespan syntax

a b
a
table with ial
table with ial

not starting with a bar

simple table
head1 head2
cell1 cell2
head1 head2
  cell2
a b
c d
e f
kramdown-1.2.0/test/testcases/block/14_table/errors.text0000644000004100000410000000011412211563134023242 0ustar www-datawww-dataNo table body |-|-|- [5]: test |no|table|here| |no|table|here| paragraph kramdown-1.2.0/test/testcases/block/14_table/header.html0000644000004100000410000000274412211563134023151 0ustar www-datawww-data

Simple header

cell1 cell2
cell3 cell4

Full header

cell1 cell2
cell3 cell4

With alignment and superfluous alignment defs

default left center right default
cell1 cell2 cell3 cell4 cell5

With leading sep line

cell1 cell2
cell3 cell4

Multiple bodies

cell1 cell2
cell3 cell4
cell5 cell6
kramdown-1.2.0/test/testcases/block/14_table/escaping.html0000644000004100000410000000140512211563134023503 0ustar www-datawww-data

cell 1 | cell 2

cell 1 | cell 2

cell 1 cell 2 | continued
cell 1 cell 2
cell 1 code | span

cell 1 code | span

cell 1 | code | span

cell 1 cell `2 cell 3
cell 1` cell 2 cell 3

cell 1 | cell 2 | cell 3 cell 1 | cell 2 | cell 3

kramdown-1.2.0/test/testcases/block/14_table/header.text0000644000004100000410000000070012211563134023157 0ustar www-datawww-dataSimple header | cell1 | cell2 |----- | cell3 | cell4 Full header | cell1 | cell2 |-------|-------| | cell3 | cell4 With alignment and superfluous alignment defs | default | left | center | right | default |-| :- |:-: | -: | - | :-: | :- | cell1 | cell2 | cell3 | cell4 | cell5 With leading sep line |:-:|-:| | cell1 | cell2 |-------|-------| | cell3 | cell4 Multiple bodies | cell1 | cell2 + :-: | | cell3 | cell4 |----||| | cell5 | cell6 kramdown-1.2.0/test/testcases/block/14_table/table_with_footnote.latex0000644000004100000410000000023512211563134026122 0ustar www-datawww-data\begin{longtable}{|l|l|} \hline this is \footnote{Something \begin{quote} special here \end{quote}} & a table\\ with a & footnote\\ \hline \end{longtable} kramdown-1.2.0/test/testcases/block/14_table/no_table.text0000644000004100000410000000004312211563134023512 0ustar www-datawww-dataNo table \| Some \| thing \| here kramdown-1.2.0/test/testcases/block/14_table/footer.text0000644000004100000410000000037612211563134023236 0ustar www-datawww-dataSimple footer | cell1 | cell2 |= | cell3 | cell4 Full footer | cell1 | cell2 |=======|=======| | cell3 | cell4 Footer with separator lines | cell1 | cell2 |=======|=======| | cell3 | cell4 |--- | cell5 | cell6 |--- Empty footer | cell1 | cell2 |= kramdown-1.2.0/test/testcases/block/14_table/table_with_footnote.html0000644000004100000410000000072212211563134025752 0ustar www-datawww-data
this is 1 a table
with a footnote
  1. Something

    special here

kramdown-1.2.0/test/testcases/block/14_table/simple.text0000644000004100000410000000123012211563134023217 0ustar www-datawww-data| cell1 | cell2 | |cell3 | cell4| |cell5|cell6 \| | cell7|cell8 Missing cells at end | cell1 | cell2 | cell3 | | cell1 || || cell2 | cell3 Escaped pipe characters | cell1 \| cell1 | cell2 | | cell1 | cell2 \| | cell1 `|` con | cell2 Table with code elements | This is a span | with a pipe. | Some span | here | a span | with a | pipe. Special cases regarding codespan syntax |a|`b` |`a` {:.cls} | table | with | ial | table | with | ial {:.cls} not starting with a bar simple | table head1 | head2 ------|------ cell1 | cell2 head1 | head2 -------|------ | cell2 | a | b | c | d | e | f | kramdown-1.2.0/test/testcases/block/14_table/table_with_footnote.text0000644000004100000410000000012212211563134025764 0ustar www-datawww-data| this is [^1] | a table | with a | footnote [^1]: Something > special here kramdown-1.2.0/test/testcases/block/03_paragraph/0000755000004100000410000000000012211563134021700 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/03_paragraph/indented.text0000644000004100000410000000027212211563134024401 0ustar www-datawww-dataThis is a para. This is a para. This is a para. This is a para. This is a code block. And this is another. A para with mixed indents. and with much indent kramdown-1.2.0/test/testcases/block/03_paragraph/indented.html0000644000004100000410000000035212211563134024360 0ustar www-datawww-data

This is a para.

This is a para.

This is a para.

This is a para.

This is a code block.

And this is another.

A para with mixed indents. and with much indent

kramdown-1.2.0/test/testcases/block/03_paragraph/no_newline_at_end.text0000644000004100000410000000010412211563134026250 0ustar www-datawww-data One paragraph over multiple lines. Second one without newline.kramdown-1.2.0/test/testcases/block/03_paragraph/one_para.html0000644000004100000410000000005012211563134024345 0ustar www-datawww-data

This is just a normal paragraph.

kramdown-1.2.0/test/testcases/block/03_paragraph/two_para.text0000644000004100000410000000012612211563134024421 0ustar www-datawww-dataThis is just a normal paragraph. That goes on to the second line. Another paragraph. kramdown-1.2.0/test/testcases/block/03_paragraph/two_para.html0000644000004100000410000000014412211563134024401 0ustar www-datawww-data

This is just a normal paragraph. That goes on to the second line.

Another paragraph.

kramdown-1.2.0/test/testcases/block/03_paragraph/indented.html.gfm0000644000004100000410000000040212211563134025124 0ustar www-datawww-data

This is a para.

This is a para.

This is a para.

This is a para.

This is a code block.

And this is another.

A para
with
mixed
indents.
and with much indent

kramdown-1.2.0/test/testcases/block/03_paragraph/one_para.text0000644000004100000410000000004112211563134024365 0ustar www-datawww-dataThis is just a normal paragraph. kramdown-1.2.0/test/testcases/block/03_paragraph/no_newline_at_end.html0000644000004100000410000000012112211563134026227 0ustar www-datawww-data

One paragraph over multiple lines.

Second one without newline.

kramdown-1.2.0/test/testcases/block/04_header/0000755000004100000410000000000012211563134021164 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/04_header/atx_header_no_newline_at_end.text0000644000004100000410000000001012211563134027714 0ustar www-datawww-data# headerkramdown-1.2.0/test/testcases/block/04_header/setext_header.text0000644000004100000410000000043012211563134024713 0ustar www-datawww-datatest - test2 ========= test - para header = = This is a para. With two lines. And not a header. ================= > Blockquote. Not a Header - header {#id} ------------ header {#Id} ====== header {#A-Za-z0-9_:} ------ header{#noid} ----- header ------ kramdown-1.2.0/test/testcases/block/04_header/header_type_offset.html0000644000004100000410000000020312211563134025704 0ustar www-datawww-data

Lorem ipsum

Lorem ipsum

Lorem ipsum

Lorem ipsum

Lorem ipsum

Lorem ipsum

kramdown-1.2.0/test/testcases/block/04_header/setext_header_no_newline_at_end.html0000644000004100000410000000002012211563134030415 0ustar www-datawww-data

header

kramdown-1.2.0/test/testcases/block/04_header/with_auto_ids.html0000644000004100000410000000065612211563134024723 0ustar www-datawww-data

This is a header

12. Another one-1-here

Do ^& it now

Hallo

Not now

Hallo

23232

33333

hallO

Header without ID

Transliterated: Đây-là-ví-dụ

kramdown-1.2.0/test/testcases/block/04_header/header_type_offset.latex0000644000004100000410000000025112211563134026060 0ustar www-datawww-data\subsection*{Lorem ipsum} \subsubsection*{Lorem ipsum} \paragraph*{Lorem ipsum} \subparagraph*{Lorem ipsum} \subsection*{Lorem ipsum} \subsubsection*{Lorem ipsum} kramdown-1.2.0/test/testcases/block/04_header/with_auto_ids.options0000644000004100000410000000006112211563134025440 0ustar www-datawww-data:auto_ids: true :transliterated_header_ids: true kramdown-1.2.0/test/testcases/block/04_header/with_auto_id_prefix.html0000644000004100000410000000010712211563134026104 0ustar www-datawww-data

Header 1

123

kramdown-1.2.0/test/testcases/block/04_header/setext_header.html0000644000004100000410000000056212211563134024701 0ustar www-datawww-data

test

test2

test

para

   header =

=

This is a para. With two lines. And not a header. =================

Blockquote. Not a Header -

header

header

header

header{#noid}

header

kramdown-1.2.0/test/testcases/block/04_header/with_auto_id_prefix.text0000644000004100000410000000002212211563134026120 0ustar www-datawww-data# Header 1 # 123 kramdown-1.2.0/test/testcases/block/04_header/header_type_offset.kramdown0000644000004100000410000000015012211563134026563 0ustar www-datawww-data## Lorem ipsum ### Lorem ipsum #### Lorem ipsum ###### Lorem ipsum ## Lorem ipsum ### Lorem ipsum kramdown-1.2.0/test/testcases/block/04_header/with_auto_id_prefix.options0000644000004100000410000000005012211563134026630 0ustar www-datawww-data:auto_ids: true :auto_id_prefix: hallo_ kramdown-1.2.0/test/testcases/block/04_header/atx_header.html0000644000004100000410000000112312211563134024153 0ustar www-datawww-data

This is a header

This is a header

This is a header

This is a header

This is a header
This is a header

Header

Header

Header

blockquote

header

paragraph

blockquote ### not a header

header

#

#

Header

Header

Header

Header

Header {#9ab}

Header{#noid}

Header ##{#noid}

Last

kramdown-1.2.0/test/testcases/block/04_header/with_auto_ids.text0000644000004100000410000000031012211563134024726 0ustar www-datawww-data# This is a header ## 12. Another one-1-here ### Do ^& it now Hallo ===== Not now ------- # Hallo # 23232 # 33333 ## hallO # Header without ID {: id=""} # Transliterated: Đây-là-ví-dụ kramdown-1.2.0/test/testcases/block/04_header/header_type_offset.text0000644000004100000410000000016512211563134025733 0ustar www-datawww-data# Lorem ipsum ## Lorem ipsum ### Lorem ipsum ###### Lorem ipsum Lorem ipsum =========== Lorem ipsum ----------- kramdown-1.2.0/test/testcases/block/04_header/header_type_offset.options0000644000004100000410000000004212211563134026434 0ustar www-datawww-data:header_offset: 1 :auto_ids: falsekramdown-1.2.0/test/testcases/block/04_header/atx_header_no_newline_at_end.html0000644000004100000410000000002012211563134027675 0ustar www-datawww-data

header

kramdown-1.2.0/test/testcases/block/04_header/setext_header_no_newline_at_end.text0000644000004100000410000000001512211563134030441 0ustar www-datawww-dataheader ======kramdown-1.2.0/test/testcases/block/04_header/atx_header.text0000644000004100000410000000065312211563134024202 0ustar www-datawww-data# This is a header ## This is a header ### This is a header #### This is a header ##### This is a header ###### This is a header # Header ^ # Header ##Header ##### > blockquote ###### header paragraph > blockquote ### not a header # header # # ### Header {#id} ### Header ## {#Id} ### Header ## {#id} ### Header {#A-Za-z0-9_:t} ### Header {#9ab} ### Header{#noid} ### Header ##{#noid} ### Last kramdown-1.2.0/test/testcases/block/12_extension/0000755000004100000410000000000012211563134021747 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/12_extension/nomarkdown.kramdown0000644000004100000410000000040712211563134025673 0ustar www-datawww-dataThis is a simple paragraph. {::nomarkdown} This *is* not processed {:/} And another paragraph {::nomarkdown type="html"} bold {:/} {::nomarkdown type="latex"} \begin{itemize} \item[Yes] YESSSS! \end{itemize} {:/} \{::nomarkdown} Another paragraph kramdown-1.2.0/test/testcases/block/12_extension/comment.text0000644000004100000410000000030012211563134024310 0ustar www-datawww-dataThis is a simple paragraph. {::comment} This is a comment {:/}which is {:/comment} ignored. {:/comment} And another paragraph {::comment this='is' .ignore /} {::comment} Another paragraph kramdown-1.2.0/test/testcases/block/12_extension/options3.text0000644000004100000410000000026012211563134024431 0ustar www-datawww-data x = Class.new {: .language-ruby} {::options coderay_wrap="span" coderay_line_numbers="" coderay_css="class" coderay_tab_width="4" /} x = Class.new {: .language-ruby} kramdown-1.2.0/test/testcases/block/12_extension/nomarkdown.latex0000644000004100000410000000024412211563134025165 0ustar www-datawww-dataThis is a simple paragraph. This *is* not processed And another paragraph \begin{itemize} \item[Yes] YESSSS! \end{itemize} \{::nomarkdown\} Another paragraph kramdown-1.2.0/test/testcases/block/12_extension/ignored.text0000644000004100000410000000011612211563134024302 0ustar www-datawww-dataparagraph {::something} anotherthing {:/something} {::something/} paragraph kramdown-1.2.0/test/testcases/block/12_extension/options2.text0000644000004100000410000000010512211563134024426 0ustar www-datawww-data{::options footnote_nr="da10" /} Some text[^ab]. [^ab]: Some text. kramdown-1.2.0/test/testcases/block/12_extension/options.html0000644000004100000410000000061412211563134024331 0ustar www-datawww-data

No header id

without header id

some *para*

some para

Some text10.

  1. Some text.

kramdown-1.2.0/test/testcases/block/12_extension/options2.html0000644000004100000410000000036012211563134024411 0ustar www-datawww-data

Some text1.

  1. Some text.

kramdown-1.2.0/test/testcases/block/12_extension/nomarkdown.html0000644000004100000410000000022312211563134025011 0ustar www-datawww-data

This is a simple paragraph.

This *is* not processed

And another paragraph

bold

{::nomarkdown} Another paragraph

kramdown-1.2.0/test/testcases/block/12_extension/ignored.html0000644000004100000410000000014312211563134024262 0ustar www-datawww-data

paragraph

{::something} anotherthing {:/something}

{::something/} paragraph

kramdown-1.2.0/test/testcases/block/12_extension/options.text0000644000004100000410000000042312211563134024347 0ustar www-datawww-data# No header id {::options unusedvar="val" /} # without header id
some *para*
{::options parse_block_html="true" parse_span_html="true" /}
some *para*
{::options footnote_nr="10" /} Some text[^ab]. [^ab]: Some text. kramdown-1.2.0/test/testcases/block/12_extension/options3.html0000644000004100000410000000025512211563134024415 0ustar www-datawww-data
x = Class.new
x = Class.new
kramdown-1.2.0/test/testcases/block/12_extension/nomarkdown.text0000644000004100000410000000046612211563134025042 0ustar www-datawww-dataThis is a simple paragraph. {::nomarkdown} This *is* not processed {:/nomarkdown} And another paragraph {::nomarkdown this='is' .ignore /} {::nomarkdown type='html'} bold {:/} {::nomarkdown type="latex"} \begin{itemize} \item[Yes] YESSSS! \end{itemize} {:/} {::nomarkdown} Another paragraph kramdown-1.2.0/test/testcases/block/12_extension/comment.html0000644000004100000410000000024512211563134024300 0ustar www-datawww-data

This is a simple paragraph.

And another paragraph

{::comment} Another paragraph

kramdown-1.2.0/test/testcases/block/13_definition_list/0000755000004100000410000000000012211563134023117 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/13_definition_list/item_ial.html0000644000004100000410000000033312211563134025567 0ustar www-datawww-data
item
definition continued
another {:.cls}
code
IAL at last no code bc of text
kramdown-1.2.0/test/testcases/block/13_definition_list/deflist_ial.text0000644000004100000410000000006312211563134026303 0ustar www-datawww-data{:.dl-horizontal} item : definition {:.dl-other} kramdown-1.2.0/test/testcases/block/13_definition_list/with_blocks.text0000644000004100000410000000025012211563134026332 0ustar www-datawww-datakram : this is some text : this is some more text kram : > blockquote kram : code kram : kram : down kram : # header kram : * list * items kramdown-1.2.0/test/testcases/block/13_definition_list/styled_terms.html0000644000004100000410000000006412211563134026523 0ustar www-datawww-data
kram
down
kramdown-1.2.0/test/testcases/block/13_definition_list/simple.html0000644000004100000410000000017712211563134025303 0ustar www-datawww-data
kram
down
novalue
kram
down kram
down
kramdown-1.2.0/test/testcases/block/13_definition_list/too_much_space.text0000644000004100000410000000002712211563134027014 0ustar www-datawww-datapara : no definition kramdown-1.2.0/test/testcases/block/13_definition_list/definition_at_beginning.text0000644000004100000410000000002012211563134030651 0ustar www-datawww-data: no definition kramdown-1.2.0/test/testcases/block/13_definition_list/deflist_ial.html0000644000004100000410000000012012211563134026255 0ustar www-datawww-data
item
definition
kramdown-1.2.0/test/testcases/block/13_definition_list/item_ial.text0000644000004100000410000000020412211563134025604 0ustar www-datawww-dataitem : {:.cls} definition continued : another {:.cls} : {:.class} code : {:.cls} IAL at last no code bc of text kramdown-1.2.0/test/testcases/block/13_definition_list/no_def_list.html0000644000004100000410000000006212211563134026270 0ustar www-datawww-data

This is a para : and not a definition list

kramdown-1.2.0/test/testcases/block/13_definition_list/styled_terms.text0000644000004100000410000000001612211563134026540 0ustar www-datawww-data*kram* : down kramdown-1.2.0/test/testcases/block/13_definition_list/para_wrapping.html0000644000004100000410000000017312211563134026640 0ustar www-datawww-data
term

definition

definition

definition

kramdown-1.2.0/test/testcases/block/13_definition_list/separated_by_eob.text0000644000004100000410000000003212211563134027307 0ustar www-datawww-datakram : down ^ kram : down kramdown-1.2.0/test/testcases/block/13_definition_list/too_much_space.html0000644000004100000410000000004412211563134026773 0ustar www-datawww-data

para

: no definition

kramdown-1.2.0/test/testcases/block/13_definition_list/separated_by_eob.html0000644000004100000410000000012612211563134027273 0ustar www-datawww-data
kram
down
kram
down
kramdown-1.2.0/test/testcases/block/13_definition_list/para_wrapping.text0000644000004100000410000000005612211563134026660 0ustar www-datawww-dataterm : definition : definition : definition kramdown-1.2.0/test/testcases/block/13_definition_list/multiple_terms.text0000644000004100000410000000011712211563134027071 0ustar www-datawww-datakram *down* now : definition 1 : definition 2 : definition 3 : definition 4 kramdown-1.2.0/test/testcases/block/13_definition_list/with_blocks.html0000644000004100000410000000075412211563134026323 0ustar www-datawww-data
kram
this is some text

this is some more text

kram

blockquote

kram
code
kram
kram
down
kram

header

kram
  • list
  • items
kramdown-1.2.0/test/testcases/block/13_definition_list/multiple_terms.html0000644000004100000410000000030112211563134027044 0ustar www-datawww-data
kram
down
now
definition 1
definition 2

definition 3

definition 4

kramdown-1.2.0/test/testcases/block/13_definition_list/simple.text0000644000004100000410000000006312211563134025315 0ustar www-datawww-datakram : down novalue : kram : down kram : down kramdown-1.2.0/test/testcases/block/13_definition_list/no_def_list.text0000644000004100000410000000005412211563134026311 0ustar www-datawww-dataThis is a para \: and not a definition list kramdown-1.2.0/test/testcases/block/13_definition_list/definition_at_beginning.html0000644000004100000410000000002712211563134030640 0ustar www-datawww-data

: no definition

kramdown-1.2.0/test/testcases/block/11_ial/0000755000004100000410000000000012211563134020477 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/11_ial/auto_id_and_ial.text0000644000004100000410000000003212211563134024473 0ustar www-datawww-data## A header {:#myid .cls} kramdown-1.2.0/test/testcases/block/11_ial/simple.html0000644000004100000410000000100612211563134022653 0ustar www-datawww-data

Some paragraph.

Some paragraph.

quote

  • list
code block
other code block

A header

Some paragraph here

Paragraph

Paragraph

Another header

kramdown-1.2.0/test/testcases/block/11_ial/auto_id_and_ial.options0000644000004100000410000000002012211563134025177 0ustar www-datawww-data:auto_ids: true kramdown-1.2.0/test/testcases/block/11_ial/nested.html0000644000004100000410000000022412211563134022645 0ustar www-datawww-data
test

test

para

kramdown-1.2.0/test/testcases/block/11_ial/nested.text0000644000004100000410000000014712211563134022671 0ustar www-datawww-data{:.cls}
test
{:#id} {:.cls}
test
{:#id} {:.cls} > para {:#id} kramdown-1.2.0/test/testcases/block/11_ial/simple.text0000644000004100000410000000067012211563134022701 0ustar www-datawww-dataSome paragraph. {:.class id key="val"} Some paragraph. {:.cls1#id.cls2} > quote {: #id} {: .class} * list {: key="val"} code block {: #other} other code block ## A header {:#myid} {:.cls} Some paragraph here Paragraph {:.cls} Paragraph Another header ============== {: .class #other} {:id: #id key="valo"} {:id: #other .myclass other} {:other: key1="val\"" - ig.nored as_is#this key2='val\'' .other-class} {:.invalid} kramdown-1.2.0/test/testcases/block/11_ial/auto_id_and_ial.html0000644000004100000410000000005012211563134024453 0ustar www-datawww-data

A header

kramdown-1.2.0/test/testcases/block/10_ald/0000755000004100000410000000000012211563134020471 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/10_ald/simple.html0000644000004100000410000000002712211563134022647 0ustar www-datawww-data

Some paragraph

kramdown-1.2.0/test/testcases/block/10_ald/simple.text0000644000004100000410000000025612211563134022673 0ustar www-datawww-dataSome paragraph {:id: ref1} {:id: .class1} {:id: #id} {:id: key="value"} {:id: .class2 .class3 ref2 #id-with key="value" key='value' key='dfsd\}' } {:test: k ey=value} kramdown-1.2.0/test/testcases/block/05_blockquote/0000755000004100000410000000000012211563134022105 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/05_blockquote/lazy.html0000644000004100000410000000073112211563134023753 0ustar www-datawww-data

This is a long long line.

Nested quote inside still inside

This is a subquote. over multipline lines. continuing here

This is a quote no code

This is a quote

This is a quote

kramdown-1.2.0/test/testcases/block/05_blockquote/indented.text0000644000004100000410000000024212211563134024603 0ustar www-datawww-data> A normal blockquote. > A normal blockquote. > A normal blockquote. > A normal blockquote. > A codeblock > Blockquote > with >mixed > indents. kramdown-1.2.0/test/testcases/block/05_blockquote/indented.html0000644000004100000410000000052612211563134024570 0ustar www-datawww-data

A normal blockquote.

A normal blockquote.

A normal blockquote.

A normal blockquote.

> A codeblock

Blockquote with mixed indents.

kramdown-1.2.0/test/testcases/block/05_blockquote/no_newline_at_end.text0000644000004100000410000000005212211563134026457 0ustar www-datawww-data> This is a block quote > with no newline.kramdown-1.2.0/test/testcases/block/05_blockquote/very_long_line.text0000644000004100000410000001576212211563134026041 0ustar www-datawww-data> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. kramdown-1.2.0/test/testcases/block/05_blockquote/lazy.text0000644000004100000410000000033112211563134023767 0ustar www-datawww-data> This is a long long line. > > Nested quote inside > still inside > > This is a subquote. > > over multipline lines. > continuing here > This is a quote no code > This is a quote {: #id} > This is a quote ^ kramdown-1.2.0/test/testcases/block/05_blockquote/nested.html0000644000004100000410000000015212211563134024253 0ustar www-datawww-data

foo

bar baz

foo

kramdown-1.2.0/test/testcases/block/05_blockquote/with_code_blocks.html0000644000004100000410000000027412211563134026300 0ustar www-datawww-data

Example:

sub status {
    print "working";
}

Or:

sub status {
    return "working";
}
kramdown-1.2.0/test/testcases/block/05_blockquote/nested.text0000644000004100000410000000004012211563134024267 0ustar www-datawww-data> foo > > > bar >> baz > > foo kramdown-1.2.0/test/testcases/block/05_blockquote/with_code_blocks.text0000644000004100000410000000020612211563134026313 0ustar www-datawww-data>Example: > > sub status { > print "working"; > } > > Or: > > sub status { > return "working"; > } kramdown-1.2.0/test/testcases/block/05_blockquote/very_long_line.html0000644000004100000410000001602412211563134026011 0ustar www-datawww-data

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

kramdown-1.2.0/test/testcases/block/05_blockquote/no_newline_at_end.html0000644000004100000410000000011312211563134026435 0ustar www-datawww-data

This is a block quote with no newline.

kramdown-1.2.0/test/testcases/block/08_list/0000755000004100000410000000000012211563134020713 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/08_list/item_ial.html0000644000004100000410000000024412211563134023364 0ustar www-datawww-data
  • IAL at first continued
  • another {:.cls}
  • IAL at last code
  • X test
  • X OK
kramdown-1.2.0/test/testcases/block/08_list/lazy.html0000644000004100000410000000071012211563134022556 0ustar www-datawww-data
  • This is a simple list item
  • Followed by another list item

  • Followed by

    a para list item continued here

  • and a normal one
  • and

    a para continued here

para

  • multi line list item

para

  • list item line1 one line two lines
  • list item line2 one line two lines
kramdown-1.2.0/test/testcases/block/08_list/mixed.html0000644000004100000410000000244312211563134022712 0ustar www-datawww-data

With tabs/spaces, no paras:

  • item1
  • item2
  • item3

With tabs/spaces, paras:

  • item1

  • item2

  • item3

With tabs/spaces, no paras:

  1. item1
  2. item2
  3. item3

With tabs/spaces, paras:

  1. item1

  2. item2

  3. item3

Nested, without paras:

  • item1
    • item2
      • item3

Nested, with paras:

  • item1

    • item2
      • item3 (level 3)

Ordered, without paras:

  1. item1
  2. item2
    • do
    • it
    • now
  3. item3

Ordered, with paras:

  1. item1

  2. item2

    • do
    • it
    • now
  3. item3

Mixed tabs and spaces:

  • some text
    • nested
kramdown-1.2.0/test/testcases/block/08_list/simple_ul.text0000644000004100000410000000055012211563134023612 0ustar www-datawww-data* This is a simple list item * Followed by another * Followed by a para list item * and a normal one * and a para para * multi line list item para * list item line1 one line two lines * list item line2 one line two lines para * list item line3 one line two lines * list item line4 one line two lines para kramdown-1.2.0/test/testcases/block/08_list/simple_ul.html0000644000004100000410000000104212211563134023567 0ustar www-datawww-data
  • This is a simple list item
  • Followed by another

  • Followed by

    a para list item

  • and a normal one
  • and

    a para

para

  • multi line list item

para

  • list item line1 one line two lines
  • list item line2 one line two lines

para

  • list item line3 one line two lines
  • list item line4 one line two lines

para

kramdown-1.2.0/test/testcases/block/08_list/list_and_hr.html0000644000004100000410000000013112211563134024062 0ustar www-datawww-data
  • Starting a list

  • Starting a new list
kramdown-1.2.0/test/testcases/block/08_list/escaping.text0000644000004100000410000000037412211563134023416 0ustar www-datawww-dataI have read the book 1984. It was great - other say that, too! I have read the book 1984\. It was great \- other say that, too! I have read the book 1984. It was great. I have read the book 1984. - it was great! 1984\. Was great! \- This too! kramdown-1.2.0/test/testcases/block/08_list/list_and_hr.text0000644000004100000410000000006012211563134024103 0ustar www-datawww-data* Starting a list * * * * Starting a new list kramdown-1.2.0/test/testcases/block/08_list/special_cases.html0000644000004100000410000000132312211563134024376 0ustar www-datawww-data
  • not a para here

    blockquote

  • and not here

    blockquote

  • this is a para

  • blockquote

  • this too

A paragraph 1. followed not by ol - followed not by ul

A compact list:

  • compact
  • list
  • items

A normal list:

  • not

  • compact

  • but here

List item without content:

  • a
kramdown-1.2.0/test/testcases/block/08_list/simple_ol.text0000644000004100000410000000021212211563134023577 0ustar www-datawww-data1. This is a simple list item 3. Followed by another 10. Followed by a para list item 1. and a normal one 2. and a para para kramdown-1.2.0/test/testcases/block/08_list/item_ial.text0000644000004100000410000000027612211563134023411 0ustar www-datawww-data* {:.cls} IAL at first continued * another {:.cls} * {:.cls} IAL at last code * {::nomarkdown type="html"}X{:/nomarkdown} test * {::nomarkdown type="html"}X{:/nomarkdown} OK kramdown-1.2.0/test/testcases/block/08_list/mixed.text0000644000004100000410000000106712211563134022733 0ustar www-datawww-dataWith tabs/spaces, no paras: * item1 + item2 - item3 With tabs/spaces, paras: - item1 * item2 + item3 With tabs/spaces, no paras: 1. item1 20. item2 3. item3 With tabs/spaces, paras: 1. item1 2. item2 3. item3 Nested, without paras: * item1 * item2 * item3 Nested, with paras: + item1 * item2 * item3 (level 3) Ordered, without paras: 1. item1 2. item2 * do * it * now 3. item3 Ordered, with paras: 1. item1 2. item2 * do * it * now 3. item3 Mixed tabs and spaces: * some text * nested kramdown-1.2.0/test/testcases/block/08_list/special_cases.text0000644000004100000410000000046312211563134024422 0ustar www-datawww-data* not a para here > blockquote * and not here >blockquote * this is a para * > blockquote * this too ^ A paragraph 1. followed not by ol - followed not by ul A compact list: * compact * list * items A normal list: * not * compact * but here List item without content: * * a kramdown-1.2.0/test/testcases/block/08_list/escaping.html0000644000004100000410000000044212211563134023372 0ustar www-datawww-data

I have read the book 1984. It was great - other say that, too!

I have read the book 1984. It was great - other say that, too!

I have read the book 1984. It was great.

I have read the book 1984. - it was great!

1984. Was great!

- This too!

kramdown-1.2.0/test/testcases/block/08_list/other_first_element.text0000644000004100000410000000041112211563134025656 0ustar www-datawww-data* This is a code block. * > This is a blockquote. * ## A header ^ * This is a code block. * > This is a blockquote. continued by some para. * A header ========= a para ^ * * nested list * other nested item * item 2 kramdown-1.2.0/test/testcases/block/08_list/lazy.text0000644000004100000410000000043512211563134022602 0ustar www-datawww-data* This is a simple list item * Followed by another list item * Followed by a para list item continued here * and a normal one * and a para continued here para * multi line list item para * list item line1 one line two lines * list item line2 one line two lines kramdown-1.2.0/test/testcases/block/08_list/nested.html0000644000004100000410000000027212211563134023064 0ustar www-datawww-data
  • some item
    • nested
  • last item
  • some text

    • nested
kramdown-1.2.0/test/testcases/block/08_list/nested.text0000644000004100000410000000007612211563134023106 0ustar www-datawww-data* some item * nested * last item ^ * some text * nested kramdown-1.2.0/test/testcases/block/08_list/list_and_others.html0000644000004100000410000000063312211563134024764 0ustar www-datawww-data
  • list item

blockquote

para * * * para - no list

  • item

    block

    header

  • test

    codeblock
    

    test

  • test

    codeblock
    

    test

kramdown-1.2.0/test/testcases/block/08_list/single_item.html0000644000004100000410000000003512211563134024076 0ustar www-datawww-data
  • single
kramdown-1.2.0/test/testcases/block/08_list/simple_ol.html0000644000004100000410000000037412211563134023570 0ustar www-datawww-data
  1. This is a simple list item
  2. Followed by another

  3. Followed by

    a para list item

  4. and a normal one
  5. and

    a para

para

kramdown-1.2.0/test/testcases/block/08_list/single_item.text0000644000004100000410000000001112211563134024110 0ustar www-datawww-data* single kramdown-1.2.0/test/testcases/block/08_list/other_first_element.html0000644000004100000410000000106312211563134025642 0ustar www-datawww-data
  • This is a code block.
    
  • This is a blockquote.

  • A header

  • This is a code block.
    
  • This is a blockquote. continued by some para.

  • A header

    a para

    • nested list
    • other nested item
  • item 2
kramdown-1.2.0/test/testcases/block/08_list/list_and_others.text0000644000004100000410000000022412211563134025000 0ustar www-datawww-data* list item > blockquote para * * * para - no list + item > block ## header * test codeblock test * test codeblock test kramdown-1.2.0/test/testcases/block/02_eob/0000755000004100000410000000000012211563134020477 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/02_eob/middle.html0000644000004100000410000000000112211563134022612 0ustar www-datawww-data kramdown-1.2.0/test/testcases/block/02_eob/middle.text0000644000004100000410000000000612211563134022637 0ustar www-datawww-data ^ kramdown-1.2.0/test/testcases/block/02_eob/beginning.html0000644000004100000410000000000112211563134023314 0ustar www-datawww-data kramdown-1.2.0/test/testcases/block/02_eob/end.html0000644000004100000410000000000112211563134022122 0ustar www-datawww-data kramdown-1.2.0/test/testcases/block/02_eob/beginning.text0000644000004100000410000000000412211563134023337 0ustar www-datawww-data^ kramdown-1.2.0/test/testcases/block/02_eob/end.text0000644000004100000410000000000412211563134022145 0ustar www-datawww-data ^ kramdown-1.2.0/test/testcases/block/07_horizontal_rule/0000755000004100000410000000000012211563134023157 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/07_horizontal_rule/septabs.html0000644000004100000410000000002512211563134025503 0ustar www-datawww-data


kramdown-1.2.0/test/testcases/block/07_horizontal_rule/septabs.text0000644000004100000410000000003312211563134025522 0ustar www-datawww-data- - - * * * _ _ _ _ _ kramdown-1.2.0/test/testcases/block/07_horizontal_rule/normal.text0000644000004100000410000000014012211563134025350 0ustar www-datawww-data*** * * * - - - d- - --- ___ *** para ----------- text * * * - - - * * * {:.test} kramdown-1.2.0/test/testcases/block/07_horizontal_rule/error.text0000644000004100000410000000011512211563134025213 0ustar www-datawww-data_ * _ --- * * * _ - * ---------------------------------------------- test kramdown-1.2.0/test/testcases/block/07_horizontal_rule/error.html0000644000004100000410000000025112211563134025174 0ustar www-datawww-data

_ * _

— * * *

_ - *

———————————————- test

kramdown-1.2.0/test/testcases/block/07_horizontal_rule/sepspaces.html0000644000004100000410000000002512211563134026030 0ustar www-datawww-data


kramdown-1.2.0/test/testcases/block/07_horizontal_rule/normal.html0000644000004100000410000000022012211563134025327 0ustar www-datawww-data


d- -




para

text


- - -

kramdown-1.2.0/test/testcases/block/07_horizontal_rule/sepspaces.text0000644000004100000410000000004512211563134026052 0ustar www-datawww-data- - - * * * _ _ _ _ _ kramdown-1.2.0/test/testcases/block/07_horizontal_rule/error.html.190000644000004100000410000000015112211563134025423 0ustar www-datawww-data

_ * _

— * * *

_ - *

———————————————- test

kramdown-1.2.0/test/testcases/block/06_codeblock/0000755000004100000410000000000012211563134021663 5ustar www-datawww-datakramdown-1.2.0/test/testcases/block/06_codeblock/lazy.html0000644000004100000410000000010512211563134023524 0ustar www-datawww-data
This is some code

This is some  other code
kramdown-1.2.0/test/testcases/block/06_codeblock/disable-highlighting.options0000644000004100000410000000002712211563134027345 0ustar www-datawww-data:enable_coderay: false kramdown-1.2.0/test/testcases/block/06_codeblock/with_eob_marker.html0000644000004100000410000000013412211563134025710 0ustar www-datawww-data
code block

continued here
new block here
kramdown-1.2.0/test/testcases/block/06_codeblock/no_newline_at_end_1.text0000644000004100000410000000002012211563134026450 0ustar www-datawww-data test test kramdown-1.2.0/test/testcases/block/06_codeblock/no_newline_at_end.text0000644000004100000410000000001212211563134026231 0ustar www-datawww-data test kramdown-1.2.0/test/testcases/block/06_codeblock/highlighting.html0000644000004100000410000000031212211563134025212 0ustar www-datawww-data
x = Class.new
<a>href</a>
kramdown-1.2.0/test/testcases/block/06_codeblock/with_ial.html0000644000004100000410000000015012211563134024345 0ustar www-datawww-data
code block

continued here
new block here
kramdown-1.2.0/test/testcases/block/06_codeblock/highlighting.text0000644000004100000410000000006712211563134025241 0ustar www-datawww-data x = Class.new ^ href {: .language-html} kramdown-1.2.0/test/testcases/block/06_codeblock/with_blank_line.html0000644000004100000410000000023512211563134025702 0ustar www-datawww-data

paragraph

code block

continued here

ended

next blank line has 4 spaces

paragraph

kramdown-1.2.0/test/testcases/block/06_codeblock/with_eob_marker.text0000644000004100000410000000007012211563134025727 0ustar www-datawww-data code block continued here ^ new block here kramdown-1.2.0/test/testcases/block/06_codeblock/no_newline_at_end_1.html0000644000004100000410000000004512211563134026437 0ustar www-datawww-data
test   test
kramdown-1.2.0/test/testcases/block/06_codeblock/whitespace.html0000644000004100000410000000070212211563134024704 0ustar www-datawww-data
This	issome
whitespace
kramdown-1.2.0/test/testcases/block/06_codeblock/normal.text0000644000004100000410000000013712211563134024062 0ustar www-datawww-data starting code paragraph other code with samples paragraph ending code kramdown-1.2.0/test/testcases/block/06_codeblock/issue_gh45.html0000644000004100000410000000671112211563134024535 0ustar www-datawww-data

B

                       BBBBBBBB. 



           BBBB BB BBBBBBBB BBBBB. BBBBBBB BB BBBBB BB BBB BBBB BBBBB BBB BBB BBBB BBB BBBBBBB BBB BBBBBBB. B BBB'B BBBBB BBBB BBB BBBB BBBBBBB BBBB BBBB BBBB BBBBBBBB.


                BBB BBBBB BBBBB BBB BBBB BBBB BBBB, BBB BBBBB BB BBBBB BBB BB BBBBBB BBBB BBB BBBBB BBBB BB. BBBBB BBB BBBBB BBBBB BBB BBBB BB BBBB BBBB BBBBB.


                         BBBB BBBBB, BBBBB, BBBBBBBB?

                   BB BBB BB BBBB BBB BBBB BBB BBBBBB /BBB BB BBBBBBBBB BBBB BBBBBBB BBBBBB BB BBB. 


                   BBBB BBBBBBBB BBB BBBB BB BBBBB BBB BBBBBB BBBB BBBBB BBBBBB BBBBBBBBB BBBB BB BBBBB......................................................................





















              BBBBB B'B BBB BBBBB. BBBB BBBBB BBBBB. ( B BBBBB BBBBBBBBBB BBBBB BBBB'B BBBBB BBBBB. BBB BBBB BBBBB BBBB BBBB. BBBBBBB BBB BB BBBBBBB BBB BBB B BBBB BBBBBBBBBBBB. BBBBB BBBBB.)




























             BBBB'B BB

.

        B BBB BBB BBB ? B. B BBB BBBBBB BBBB BBB BBBB. BBBBBBB BB BBBBBBB B BBBB BBBB BBB BBBBBB. 













         BBBB BB 'BBBB' BBBB BBBBB.


                           BBBBBBBB B BBBB BBBBBB BB BBBBBBBB BBB BBBBBBB BBBBBBB BBBBBBB. 


     B BBBB BB BBBB. BBBBB BBBBBBBB. BBB BB BB. BB BB BBBB BB BBBBBBBBBB. BB BBBBBBBB BB BBBBBBBBB. 


                     BBBBBBBB BB BBBB. BBBBBBB BBB BBBBB BBBBB BBBBB. B'BB BBBBBBB BB BBBBB BBBBB BBBBBBB BBB BBBBB. BBBB. 

  B BBBBBB BBBB BB BBBB BBB. (BB BBB BBBBB BBBBB...............B)



           BBBB!



         BBBB BB BBB BBBBBBB BBBBBB.            B

B

     BBBBB BB/BBB BBBBB!  BBBB BBBB BBBBBBBBBBB 'BBB'B BBBBBB.' 














          BBBB BBBBBBB BBBB BB BBB BBBBBBBB BB BBBB BBBBBB BBB BBBBBBBBB BBBB. BBBBBBBB BBBBBBB BBBB BBBB BBBB BB BBBB BB BBBB BB BBBB B BBB BB BBBBB BBBBBB.  B BBBB BBBBBBB BB BBBB BBBBB B BBB BBBBBBB BB BBBBB BBBB. BBB BBBBBBB BBBB. B BBB BBBB BBBB B BBBB BBBBBB BBB B BBBBBB BBBBBB. BBB BB BBBBBB BBBBBB BBBBBBBBBB BB...BBBBB BBBB BBBB BB BBBBB. (BBBBBBB BBB BBBBBB BBB'B BBBB BBB BBBBB BBB BB BBBBB BBBBBBBBBBB  BBBBB B BBBB BBBB BBBBB. 









BBBBB BB BB BBBB B'B BBBB BBBBB BBBBB BBB BB BBBBBB/BBB (BBBBB) BBBBBB BB. 
                          BBBBBBBB. B BBB BBBB BB BB BBB/BBBBBB BBBBBB BBB BBBB BBBBBBBB BB BB B BBBBBB BBBBBB BBBBB. (BBB/B BBB BBBB BBBB...BBB BBB BBB BBBB BB BB B BBBB BB BBB BB? BBBBBBB B BBB B BBBB BBBBBBBB BBB B BBB BBB BBBBB BBBB BBB BBBB BB B BBBBBBBB BB BBBBB BB BB BBB BBBBB BBB BB BBBBB BBBBBBB B BBB BBBBBBB. BBBBBB (BBBBB) BBBB BBBBB BBBBBBB BBBBB BBBB BBBB BBB. 100 BBBBBB BB BBBBB. BBBB BBB BBB BBBBBB BBB BB. BBB BBBB BB BBB BBBBB! BBB BB BBBBBB BBBBB B BBB'B BBBBBBBBB BBBB BBB BBB. (BBBBBB BBBBBBB BB BBBB BBBBB (BBBBBB BBBBB BBBBB BBBBB.))


    BBB B BBBBBBBBBBB BBBB BBB BB BBB. BBBBB BBB BBBBB B BBBB BBBBBB BBBBB BBB. BB BBBBBB BBB BBBB B BBB BB BBBBBBBB BBBBBB BBBB BBB B BBBBBB BBBB BBBBBB BBBBBBB BBBB BBBB BBB BBBBBBBB.











           BBBBB!!!!!!!


         B BBB BBBB BBBBBB BBBB BBBB BBBB B BBB BBBBB BBB BBBBB B BBBB BBBBBBB BB BB BBBB BBBBBBBBB. B BBBB BBBBBB BBBBBBB BBBB BBBB BBB BBBB.

                                               BB BB, BB BBBBBB BBBB, (BBBBBB BB BBB BBBB . BBBBB BB BBBB BBBB BB BB BBBB BBBB B BBBB BB BB (BB BBBB BB BBB BBBBBBB BB BBBBBBB. )) BB'BB BBB BBB'B BB BB BBBB BB B BBBB B BBBBB (BB BBBBBB BB BBB B'BB BBBBBBBB BB BBBB BBBB.)


  B BBBBB B'BB BBB BB BBBB BBB BBB.
kramdown-1.2.0/test/testcases/block/06_codeblock/with_ial.text0000644000004100000410000000007612211563134024374 0ustar www-datawww-data code block continued here {:.cls} new block here kramdown-1.2.0/test/testcases/block/06_codeblock/error.text0000644000004100000410000000004012211563134023714 0ustar www-datawww-dataSome para ~~~~~~ not codeblock kramdown-1.2.0/test/testcases/block/06_codeblock/with_lang_in_fenced_block.options0000644000004100000410000000003012211563134030411 0ustar www-datawww-data:enable_coderay: false kramdown-1.2.0/test/testcases/block/06_codeblock/error.html0000644000004100000410000000005612211563134023703 0ustar www-datawww-data

Some para

~~~~~~ not codeblock

kramdown-1.2.0/test/testcases/block/06_codeblock/tilde_syntax.text0000644000004100000410000000015312211563134025277 0ustar www-datawww-data~~~~~~~~ Here comes some code. ~~~~~~~~ ~~~~~~~~~~~~ ~~~~~~~ code with tildes ~~~~~~~~ ~~~~~~~~~~~~~~~~~~ kramdown-1.2.0/test/testcases/block/06_codeblock/lazy.text0000644000004100000410000000006412211563134023550 0ustar www-datawww-data This is some code This is some other code kramdown-1.2.0/test/testcases/block/06_codeblock/normal.html0000644000004100000410000000025012211563134024036 0ustar www-datawww-data
starting code

paragraph

other code  
with samples 

paragraph

  ending code
kramdown-1.2.0/test/testcases/block/06_codeblock/whitespace.text0000644000004100000410000000007512211563134024727 0ustar www-datawww-data This is some whitespace {:.show-whitespaces} kramdown-1.2.0/test/testcases/block/06_codeblock/with_lang_in_fenced_block.html0000644000004100000410000000061512211563134027673 0ustar www-datawww-data
def what?
  42
end
def what?
  42
end
def what?
  42
end
def what?
  42
end
def what?
  42
end
kramdown-1.2.0/test/testcases/block/06_codeblock/disable-highlighting.text0000644000004100000410000000006412211563134026637 0ustar www-datawww-data x = Class.new ^ href {: lang="html"} kramdown-1.2.0/test/testcases/block/06_codeblock/with_lang_in_fenced_block.text0000644000004100000410000000035612211563134027715 0ustar www-datawww-data~~~ ruby def what? 42 end ~~~ ~~~ ruby def what? 42 end ~~~ {:.class1} ~~~ def what? 42 end ~~~ {: .language-ruby} ~~~ ruby def what? 42 end ~~~ {: .language-python} ~~~ ruby def what? 42 end ~~~ {: class="language-python"} kramdown-1.2.0/test/testcases/block/06_codeblock/highlighting.options0000644000004100000410000000013612211563134025745 0ustar www-datawww-data:coderay_default_lang: ruby :coderay_wrap: span :coderay_line_numbers: ~ :coderay_css: class kramdown-1.2.0/test/testcases/block/06_codeblock/disable-highlighting.html0000644000004100000410000000014412211563134026616 0ustar www-datawww-data
x = Class.new
<a>href</a>
kramdown-1.2.0/test/testcases/block/06_codeblock/issue_gh45.test0000644000004100000410000000726312211563134024553 0ustar www-datawww-data B BBBBBBBB. BBBB BB BBBBBBBB BBBBB. BBBBBBB BB BBBBB BB BBB BBBB BBBBB BBB BBB BBBB BBB BBBBBBB BBB BBBBBBB. B BBB'B BBBBB BBBB BBB BBBB BBBBBBB BBBB BBBB BBBB BBBBBBBB. BBB BBBBB BBBBB BBB BBBB BBBB BBBB, BBB BBBBB BB BBBBB BBB BB BBBBBB BBBB BBB BBBBB BBBB BB. BBBBB BBB BBBBB BBBBB BBB BBBB BB BBBB BBBB BBBBB. BBBB BBBBB, BBBBB, BBBBBBBB? BB BBB BB BBBB BBB BBBB BBB BBBBBB /BBB BB BBBBBBBBB BBBB BBBBBBB BBBBBB BB BBB. BBBB BBBBBBBB BBB BBBB BB BBBBB BBB BBBBBB BBBB BBBBB BBBBBB BBBBBBBBB BBBB BB BBBBB...................................................................... BBBBB B'B BBB BBBBB. BBBB BBBBB BBBBB. ( B BBBBB BBBBBBBBBB BBBBB BBBB'B BBBBB BBBBB. BBB BBBB BBBBB BBBB BBBB. BBBBBBB BBB BB BBBBBBB BBB BBB B BBBB BBBBBBBBBBBB. BBBBB BBBBB.) BBBB'B BB . B BBB BBB BBB ? B. B BBB BBBBBB BBBB BBB BBBB. BBBBBBB BB BBBBBBB B BBBB BBBB BBB BBBBBB. BBBB BB 'BBBB' BBBB BBBBB. BBBBBBBB B BBBB BBBBBB BB BBBBBBBB BBB BBBBBBB BBBBBBB BBBBBBB. B BBBB BB BBBB. BBBBB BBBBBBBB. BBB BB BB. BB BB BBBB BB BBBBBBBBBB. BB BBBBBBBB BB BBBBBBBBB. BBBBBBBB BB BBBB. BBBBBBB BBB BBBBB BBBBB BBBBB. B'BB BBBBBBB BB BBBBB BBBBB BBBBBBB BBB BBBBB. BBBB. B BBBBBB BBBB BB BBBB BBB. (BB BBB BBBBB BBBBB...............B) BBBB! BBBB BB BBB BBBBBBB BBBBBB. B B BBBBB BB/BBB BBBBB! BBBB BBBB BBBBBBBBBBB 'BBB'B BBBBBB.' BBBB BBBBBBB BBBB BB BBB BBBBBBBB BB BBBB BBBBBB BBB BBBBBBBBB BBBB. BBBBBBBB BBBBBBB BBBB BBBB BBBB BB BBBB BB BBBB BB BBBB B BBB BB BBBBB BBBBBB. B BBBB BBBBBBB BB BBBB BBBBB B BBB BBBBBBB BB BBBBB BBBB. BBB BBBBBBB BBBB. B BBB BBBB BBBB B BBBB BBBBBB BBB B BBBBBB BBBBBB. BBB BB BBBBBB BBBBBB BBBBBBBBBB BB...BBBBB BBBB BBBB BB BBBBB. (BBBBBBB BBB BBBBBB BBB'B BBBB BBB BBBBB BBB BB BBBBB BBBBBBBBBBB BBBBB B BBBB BBBB BBBBB. BBBBB BB BB BBBB B'B BBBB BBBBB BBBBB BBB BB BBBBBB/BBB (BBBBB) BBBBBB BB. BBBBBBBB. B BBB BBBB BB BB BBB/BBBBBB BBBBBB BBB BBBB BBBBBBBB BB BB B BBBBBB BBBBBB BBBBB. (BBB/B BBB BBBB BBBB...BBB BBB BBB BBBB BB BB B BBBB BB BBB BB? BBBBBBB B BBB B BBBB BBBBBBBB BBB B BBB BBB BBBBB BBBB BBB BBBB BB B BBBBBBBB BB BBBBB BB BB BBB BBBBB BBB BB BBBBB BBBBBBB B BBB BBBBBBB. BBBBBB (BBBBB) BBBB BBBBB BBBBBBB BBBBB BBBB BBBB BBB. 100 BBBBBB BB BBBBB. BBBB BBB BBB BBBBBB BBB BB. BBB BBBB BB BBB BBBBB! BBB BB BBBBBB BBBBB B BBB'B BBBBBBBBB BBBB BBB BBB. (BBBBBB BBBBBBB BB BBBB BBBBB (BBBBBB BBBBB BBBBB BBBBB.)) BBB B BBBBBBBBBBB BBBB BBB BB BBB. BBBBB BBB BBBBB B BBBB BBBBBB BBBBB BBB. BB BBBBBB BBB BBBB B BBB BB BBBBBBBB BBBBBB BBBB BBB B BBBBBB BBBB BBBBBB BBBBBBB BBBB BBBB BBB BBBBBBBB. BBBBB!!!!!!! B BBB BBBB BBBBBB BBBB BBBB BBBB B BBB BBBBB BBB BBBBB B BBBB BBBBBBB BB BB BBBB BBBBBBBBB. B BBBB BBBBBB BBBBBBB BBBB BBBB BBB BBBB. BB BB, BB BBBBBB BBBB, (BBBBBB BB BBB BBBB . BBBBB BB BBBB BBBB BB BB BBBB BBBB B BBBB BB BB (BB BBBB BB BBB BBBBBBB BB BBBBBBB. )) BB'BB BBB BBB'B BB BB BBBB BB B BBBB B BBBBB (BB BBBBBB BB BBB B'BB BBBBBBBB BB BBBB BBBB.) B BBBBB B'BB BBB BB BBBB BBB BBB. kramdown-1.2.0/test/testcases/block/06_codeblock/no_newline_at_end.html0000644000004100000410000000004012211563134026212 0ustar www-datawww-data
test  
kramdown-1.2.0/test/testcases/block/06_codeblock/with_blank_line.text0000644000004100000410000000015312211563134025721 0ustar www-datawww-dataparagraph code block continued here ended next blank line has 4 spaces paragraph kramdown-1.2.0/test/testcases/block/06_codeblock/tilde_syntax.html0000644000004100000410000000015312211563134025257 0ustar www-datawww-data
Here comes some code.
~~~~~~~
code with tildes
~~~~~~~~
kramdown-1.2.0/test/testcases/encoding.html0000644000004100000410000000174512211563134021022 0ustar www-datawww-data

Das ist gewöhnlich ein Über-Problem mit manchen
Sälen http://example.org und anderen Dinge. Siehe Über mich!

Vielleicht höre ich nicht richtig?

  • Sollten wir uns das überlegen? Verhöhne mich nicht!
  • Ho ho höher! Sind *wir* da?

Titel sind urschön

Manche mögens ärmer

öha
was nun?
Töne
Laute Geräusche
vielleicht noch was ähnliches
hoch höher am höchsten
über drüber müde

Das ist schön gemacht

kramdown-1.2.0/test/testcases/span/0000755000004100000410000000000012211563134017300 5ustar www-datawww-datakramdown-1.2.0/test/testcases/span/math/0000755000004100000410000000000012211563134020231 5ustar www-datawww-datakramdown-1.2.0/test/testcases/span/math/normal.text0000644000004100000410000000017712211563134022434 0ustar www-datawww-dataThis is $$\lambda_\alpha > 5$$ some math. $$5+5$$ inline math, $5.00 \$$no math$$ \$\$5+5$$ inline math \$$5+5$$ \$\$5+5$$ kramdown-1.2.0/test/testcases/span/math/normal.html0000644000004100000410000000036312211563134022411 0ustar www-datawww-data

This is some math.

inline math, $5.00 $$no math$$

$$5+5$$ inline math

$$5+5$$

kramdown-1.2.0/test/testcases/span/autolinks/0000755000004100000410000000000012211563134021311 5ustar www-datawww-datakramdown-1.2.0/test/testcases/span/autolinks/url_links.text0000644000004100000410000000104012211563134024214 0ustar www-datawww-dataThis should be a link. This should be a link. As should this. As should this. Another ampersand link. More entities . Email international <übung@macht.den.meister.de>, <ü.äß@hülse.de> Email invalid: <[me@example.com](mailtos:me@example.com)> Autolink with underscore: *[CSS]: Cascading kramdown-1.2.0/test/testcases/span/autolinks/url_links.html0000644000004100000410000000372312211563134024206 0ustar www-datawww-data

This should be a http://www.example.com/ link. This should be a john.doe@example.com link. As should john.doe@example.com this. As should CSS@example.com this. Another ampersand http://www.example.com/?doit&x=y link. More entities http://www.example.com/?doit&x="y&z=y.

Email international übung@macht.den.meister.de, ü.äß@hülse.de Email invalid: <me@example.com>

Autolink with underscore: http://www.example.com/with_under_score

http://www.example.com/

kramdown-1.2.0/test/testcases/span/extension/0000755000004100000410000000000012211563134021314 5ustar www-datawww-datakramdown-1.2.0/test/testcases/span/extension/comment.text0000644000004100000410000000041112211563134023660 0ustar www-datawww-dataThis is a {::comment}simple{:/} paragraph. This is a {::comment}simple{:/comment} paragraph. This is a {::comment}simple {:/other} paragraph{:/comment}. This is a {::comment/} paragraph. This is a {:/comment} simple {:/} paragraph. This is a {::comment} paragraph. kramdown-1.2.0/test/testcases/span/extension/ignored.text0000644000004100000410000000004312211563134023646 0ustar www-datawww-dataThis is {::something}paragraph{:/} kramdown-1.2.0/test/testcases/span/extension/options.html0000644000004100000410000000005712211563134023677 0ustar www-datawww-data

This is an option *true*!

kramdown-1.2.0/test/testcases/span/extension/nomarkdown.html0000644000004100000410000000003412211563134024356 0ustar www-datawww-data

This is *some* text.

kramdown-1.2.0/test/testcases/span/extension/ignored.html0000644000004100000410000000005212211563134023626 0ustar www-datawww-data

This is {::something}paragraph{:/}

kramdown-1.2.0/test/testcases/span/extension/options.text0000644000004100000410000000011512211563134023712 0ustar www-datawww-dataThis is an {::options parse_span_html="false" /} option *true*! kramdown-1.2.0/test/testcases/span/extension/nomarkdown.text0000644000004100000410000000004712211563134024402 0ustar www-datawww-dataThis is {::nomarkdown}*some*{:/} text. kramdown-1.2.0/test/testcases/span/extension/comment.html0000644000004100000410000000034412211563134023645 0ustar www-datawww-data

This is a paragraph. This is a paragraph. This is a . This is a paragraph. This is a {:/comment} simple {:/} paragraph. This is a {::comment} paragraph.

kramdown-1.2.0/test/testcases/span/04_footnote/0000755000004100000410000000000012211563134021440 5ustar www-datawww-datakramdown-1.2.0/test/testcases/span/04_footnote/footnote_nr.latex0000644000004100000410000000012212211563134025026 0ustar www-datawww-dataThis is a footnote\footnote{Some text.}. And another\footnote{Some other text.}. kramdown-1.2.0/test/testcases/span/04_footnote/definitions.text0000644000004100000410000000036712211563134024667 0ustar www-datawww-dataSome para. [^footnote]: ignored definition [^footnote]: Some footnote text > blockquote [^other]: some foot note text * a list with some text [^tnote]: foot note * other list ^ code [^1]: > a blockquote and some para kramdown-1.2.0/test/testcases/span/04_footnote/footnote_nr.options0000644000004100000410000000002112211563134025402 0ustar www-datawww-data:footnote_nr: 35 kramdown-1.2.0/test/testcases/span/04_footnote/definitions.html0000644000004100000410000000026012211563134024637 0ustar www-datawww-data

Some para.

blockquote

  • a list with some text
  • other list
code
kramdown-1.2.0/test/testcases/span/04_footnote/markers.html0000644000004100000410000000305212211563134023772 0ustar www-datawww-data

This is some *ref.1

a blockquote 2

  • and a list item 3

And a header4

A marker without a definition [^without].

A marker 5 used twice1 and thrice1.

  1. Some foot note text 2 3

  2. other text with more lines

    and a quote

  3. some text

  4. code block
    continued here
    

kramdown-1.2.0/test/testcases/span/04_footnote/definitions.latex0000644000004100000410000000030112211563134025004 0ustar www-datawww-dataSome para. \begin{quote} blockquote \end{quote} \begin{itemize} \item a list with some text \end{itemize} \begin{itemize} \item other list \end{itemize} \begin{verbatim}code \end{verbatim} kramdown-1.2.0/test/testcases/span/04_footnote/footnote_nr.text0000644000004100000410000000012612211563134024701 0ustar www-datawww-dataThis is a footnote[^ab]. And another[^bc]. [^ab]: Some text. [^bc]: Some other text. kramdown-1.2.0/test/testcases/span/04_footnote/markers.text0000644000004100000410000000053412211563134024014 0ustar www-datawww-dataThis is some *ref.[^fn] [^fn]: Some foot note text > a blockquote [^3] * and a list item [^1] # And a header[^now] [^1]:some *text* [^3]: other text with more lines > and a quote A marker without a definition [^without]. A marker [^empty] used twice[^fn] and thrice[^fn]. [^now]: code block continued here [^empty]: kramdown-1.2.0/test/testcases/span/04_footnote/markers.latex0000644000004100000410000000075312211563134024150 0ustar www-datawww-dataThis is some *ref.\footnote{Some foot note text} \begin{quote} a blockquote \footnote{other text with more lines \begin{quote} and a quote \end{quote}} \end{quote} \begin{itemize} \item and a list item \footnote{some \emph{text}} \end{itemize} \section*{And a header\footnote{\begin{verbatim}code block continued here \end{verbatim}}} A marker without a definition [\^{}without]. A marker \footnote{} used twice\footnote{Some foot note text} and thrice\footnote{Some foot note text}. kramdown-1.2.0/test/testcases/span/04_footnote/footnote_nr.html0000644000004100000410000000070612211563134024665 0ustar www-datawww-data

This is a footnote35. And another36.

  1. Some text.

  2. Some other text.

kramdown-1.2.0/test/testcases/span/text_substitutions/0000755000004100000410000000000012211563134023303 5ustar www-datawww-datakramdown-1.2.0/test/testcases/span/text_substitutions/entities_numeric.text0000644000004100000410000000006612211563134027561 0ustar www-datawww-dataThis is the A&O. © 2008 by me ŗ and λ kramdown-1.2.0/test/testcases/span/text_substitutions/greaterthan.text0000644000004100000410000000001212211563134026506 0ustar www-datawww-data2 > 1 > 0 kramdown-1.2.0/test/testcases/span/text_substitutions/entities_as_input.options0000644000004100000410000000003212211563134030441 0ustar www-datawww-data:entity_output: :as_input kramdown-1.2.0/test/testcases/span/text_substitutions/entities_as_char.html.190000644000004100000410000000007012211563134027722 0ustar www-datawww-data

This "is" 'the' A&O. © 2008 by me ŗ and λ

kramdown-1.2.0/test/testcases/span/text_substitutions/entities_numeric.options0000644000004100000410000000003112211563134030260 0ustar www-datawww-data:entity_output: :numeric kramdown-1.2.0/test/testcases/span/text_substitutions/typography.text0000644000004100000410000000104512211563134026417 0ustar www-datawww-dataThis is... something---this too--! This <> some text, << this >> too! "Fancy quotes" are 'cool', even in the '80s! Je t' aime. You're a funny one! Thomas' name Mark's name. "...you" "'Nested' quotes are 'possible'", too! '"Otherway" is "round"'! 'Opening now!' '80s are really cool. Cluster's Last Stand. Nam liber tempor "...At vero eos et accusam" "_Single underscores_ should work." "*Single asterisks* should work." '__Double underscores__ should work.' '**Double asterisks** should work.' "_Hurrah!_" '__Absolutely__.' kramdown-1.2.0/test/testcases/span/text_substitutions/entities.text0000644000004100000410000000022712211563134026036 0ustar www-datawww-dataThis is the A&O. © 2008 by me As well \& as this. Some ŗ other values may ¯ may also show but not st. like &#xYZ;. This is BS&T; done! kramdown-1.2.0/test/testcases/span/text_substitutions/entities_symbolic.html0000644000004100000410000000010212211563134027707 0ustar www-datawww-data

This is the A&O. © 2008 by me ŗ and λ

kramdown-1.2.0/test/testcases/span/text_substitutions/lowerthan.text0000644000004100000410000000001212211563134026205 0ustar www-datawww-data0 < 1 < 2 kramdown-1.2.0/test/testcases/span/text_substitutions/typography.html0000644000004100000410000000175012211563134026402 0ustar www-datawww-data

This is… something—this too–!

This «is» some text, « this » too!

“Fancy quotes” are ‘cool’, even in the ’80s! Je t’ aime. You’re a funny one! Thomas’ name Mark’s name. “…you” “‘Nested’ quotes are ‘possible’”, too! ‘“Otherway” is “round”’!

‘Opening now!’

’80s are really cool.

Cluster’s Last Stand.

Nam liber tempor “…At vero eos et accusam”

Single underscores should work.”

Single asterisks should work.”

Double underscores should work.’

Double asterisks should work.’

Hurrah!

Absolutely.’

kramdown-1.2.0/test/testcases/span/text_substitutions/entities_symbolic.options0000644000004100000410000000003212211563134030440 0ustar www-datawww-data:entity_output: :symbolic kramdown-1.2.0/test/testcases/span/text_substitutions/entities_as_input.text0000644000004100000410000000006612211563134027741 0ustar www-datawww-dataThis is the A&O. © 2008 by me ŗ and λ kramdown-1.2.0/test/testcases/span/text_substitutions/entities_numeric.html0000644000004100000410000000010012211563134027526 0ustar www-datawww-data

This is the A&O. © 2008 by me ŗ and λ

kramdown-1.2.0/test/testcases/span/text_substitutions/entities_as_char.options0000644000004100000410000000007412211563134030225 0ustar www-datawww-data:entity_output: :as_char :smart_quotes: apos,apos,quot,quot kramdown-1.2.0/test/testcases/span/text_substitutions/entities_as_char.text0000644000004100000410000000007212211563134027514 0ustar www-datawww-dataThis "is" 'the' A&O. © 2008 by me ŗ and λ kramdown-1.2.0/test/testcases/span/text_substitutions/entities.html0000644000004100000410000000026512211563134026020 0ustar www-datawww-data

This is the A&O. © 2008 by me As well \& as this. Some ŗ other values may ¯ may also show but not st. like &#xYZ;.

This is BS&T; done!

kramdown-1.2.0/test/testcases/span/text_substitutions/lowerthan.html0000644000004100000410000000002712211563134026173 0ustar www-datawww-data

0 < 1 < 2

kramdown-1.2.0/test/testcases/span/text_substitutions/greaterthan.html0000644000004100000410000000002712211563134026474 0ustar www-datawww-data

2 > 1 > 0

kramdown-1.2.0/test/testcases/span/text_substitutions/entities_as_input.html0000644000004100000410000000010112211563134027707 0ustar www-datawww-data

This is the A&O. © 2008 by me ŗ and λ

kramdown-1.2.0/test/testcases/span/text_substitutions/entities.options0000644000004100000410000000003212211563134026537 0ustar www-datawww-data:entity_output: :as_input kramdown-1.2.0/test/testcases/span/text_substitutions/typography.options0000644000004100000410000000003112211563134027120 0ustar www-datawww-data:entity_output: symbolic kramdown-1.2.0/test/testcases/span/text_substitutions/entities_as_char.html0000644000004100000410000000012712211563134027475 0ustar www-datawww-data

This "is" 'the' A&O. © 2008 by me ŗ and λ

kramdown-1.2.0/test/testcases/span/text_substitutions/entities_symbolic.text0000644000004100000410000000006612211563134027740 0ustar www-datawww-dataThis is the A&O. © 2008 by me ŗ and λ kramdown-1.2.0/test/testcases/span/abbreviations/0000755000004100000410000000000012211563134022130 5ustar www-datawww-datakramdown-1.2.0/test/testcases/span/abbreviations/abbrev_defs.html0000644000004100000410000000005012211563134025253 0ustar www-datawww-data
*[4]: noabbrev
kramdown-1.2.0/test/testcases/span/abbreviations/abbrev_defs.text0000644000004100000410000000017312211563134025301 0ustar www-datawww-data*[ABBR]: Some abbreviations *[one abbr]: one abbrev *[2 and other]: another *[3]: yet another *[4]: noabbrev kramdown-1.2.0/test/testcases/span/abbreviations/abbrev.html0000644000004100000410000000143212211563134024257 0ustar www-datawww-data

This is some text.

There is some real concern about OtHeR!

is some Think empty about Oesterreich. CSS und CSS3

no abbrev here because there is someone and kulis some

  • (X)HTML test
  • line two

(X)HTML

  • test (X)HTML
kramdown-1.2.0/test/testcases/span/abbreviations/abbrev.text0000644000004100000410000000073312211563134024302 0ustar www-datawww-dataThis is some text. *[is some]: Yes it is *[OtHeR!]: This & that *[is some]: It is, yes *[empty]: There *is some real* concern about OtHeR! is some Think empty about Oesterreich. CSS und CSS3 no abbrev here because there is someone and kulis some *[Oesterreich]: Very nice country *[CSS]: Cascading *[CSS3]: Cascading 3 * (X)HTML test * line two [(X)HTML](http://en.wikipedia.org/wiki/Xhtml) * test (X)HTML *[(X)HTML]: (eXtensible) HyperText Markup Language kramdown-1.2.0/test/testcases/span/escaped_chars/0000755000004100000410000000000012211563134022064 5ustar www-datawww-datakramdown-1.2.0/test/testcases/span/escaped_chars/normal.text0000644000004100000410000000014112211563134024256 0ustar www-datawww-data\\ \. \* \_ \+ \- \` \( \) \[ \] \{ \} \# \! \<< \>> \: \| \" \' \= \> \< kramdown-1.2.0/test/testcases/span/escaped_chars/normal.html0000644000004100000410000000040312211563134024237 0ustar www-datawww-data

\

.

*

_

+

-

`

(

)

[

]

{

}

#

!

<<

>>

:

|

"

'

=

>

<

kramdown-1.2.0/test/testcases/span/line_breaks/0000755000004100000410000000000012211563134021556 5ustar www-datawww-datakramdown-1.2.0/test/testcases/span/line_breaks/normal.text0000644000004100000410000000022412211563134023752 0ustar www-datawww-dataThis is a line with a line break. This is a line without a line break. This is a line \\ with a line\\ break. Line break on last line. kramdown-1.2.0/test/testcases/span/line_breaks/normal.html0000644000004100000410000000027312211563134023736 0ustar www-datawww-data

This is a line
with a line break.

This is a line without a line break.

This is a line
with a line\
break.

Line break on last line.

kramdown-1.2.0/test/testcases/span/line_breaks/normal.latex0000644000004100000410000000026512211563134024110 0ustar www-datawww-dataThis is a line\newline with a line break. This is a line without a line break. This is a line \newline with a line\textbackslash{} \newline break. Line break on last line. kramdown-1.2.0/test/testcases/span/ial/0000755000004100000410000000000012211563134020045 5ustar www-datawww-datakramdown-1.2.0/test/testcases/span/ial/simple.html0000644000004100000410000000031612211563134022224 0ustar www-datawww-data

This is a span.

This is a span.

This is an{: .ignored} span ial. This is an{: .escaped} span ial.

kramdown-1.2.0/test/testcases/span/ial/simple.text0000644000004100000410000000023012211563134022237 0ustar www-datawww-dataThis is a `span`{: .hund #dog}. This is a `span`{: .hund #dog}{: .katz key='val'}. This is an{: .ignored} span ial. This is an\{: .escaped} span ial. kramdown-1.2.0/test/testcases/span/05_html/0000755000004100000410000000000012211563134020550 5ustar www-datawww-datakramdown-1.2.0/test/testcases/span/05_html/link_with_mailto.text0000644000004100000410000000006112211563134025010 0ustar www-datawww-dataLink: text kramdown-1.2.0/test/testcases/span/05_html/markdown_attr.text0000644000004100000410000000047612211563134024341 0ustar www-datawww-dataThis is *text* This is *text* This is *text* This is *text* This is *nothing* to *fear* about. This is . kramdown-1.2.0/test/testcases/span/05_html/invalid.html0000644000004100000410000000004612211563134023064 0ustar www-datawww-data

This is some text

kramdown-1.2.0/test/testcases/span/05_html/across_lines.text0000644000004100000410000000004212211563134024136 0ustar www-datawww-dataLink: test kramdown-1.2.0/test/testcases/span/05_html/normal.text0000644000004100000410000000077412211563134022756 0ustar www-datawww-dataEmpty ! title is a title. This is . This is comment. This is multiline comment. This is tag now . This is tag now. This is an empty tag. This is _something strange_. Auto-closing:
Expanding: An invalid tag:
A

block tag

. An invalid tag. A tag. An unclosed *tag.* kramdown-1.2.0/test/testcases/span/05_html/markdown_attr.html0000644000004100000410000000040512211563134024311 0ustar www-datawww-data

This is text This is *text* This is text This is text This is *nothing* to fear about. This is <http://example.com>.

kramdown-1.2.0/test/testcases/span/05_html/link_with_mailto.html0000644000004100000410000000007012211563134024770 0ustar www-datawww-data

Link: text

kramdown-1.2.0/test/testcases/span/05_html/invalid.text0000644000004100000410000000003012211563134023075 0ustar www-datawww-dataThis is some text kramdown-1.2.0/test/testcases/span/05_html/normal.html0000644000004100000410000000124312211563134022726 0ustar www-datawww-data

Empty !

title is a title.

This is .

This is comment.

This is multiline comment.

This is tag now .

This is tag now.

This is an empty tag.

This is something strange.

Auto-closing:

Expanding:

An invalid tag: <hR>

A <p>block tag</p>.

An invalid </closing> tag.

A tag.

An unclosed tag.

kramdown-1.2.0/test/testcases/span/05_html/across_lines.html0000644000004100000410000000005112211563134024116 0ustar www-datawww-data

Link: test

kramdown-1.2.0/test/testcases/span/03_codespan/0000755000004100000410000000000012211563134021376 5ustar www-datawww-datakramdown-1.2.0/test/testcases/span/03_codespan/errors.html0000644000004100000410000000003012211563134023571 0ustar www-datawww-data

Not ended `span.

kramdown-1.2.0/test/testcases/span/03_codespan/highlighting.html0000644000004100000410000000024012211563134024725 0ustar www-datawww-data

You can say x = Class.new, for example.

kramdown-1.2.0/test/testcases/span/03_codespan/highlighting.text0000644000004100000410000000007312211563134024751 0ustar www-datawww-dataYou can say `x = Class.new`{:.language-ruby}, for example. kramdown-1.2.0/test/testcases/span/03_codespan/empty.text0000644000004100000410000000007012211563134023437 0ustar www-datawww-dataThis is `` empty. This is ``empty. This is ````empty. kramdown-1.2.0/test/testcases/span/03_codespan/errors.text0000644000004100000410000000002112211563134023611 0ustar www-datawww-dataNot ended `span. kramdown-1.2.0/test/testcases/span/03_codespan/normal.text0000644000004100000410000000033312211563134023573 0ustar www-datawww-dataThis is `a` simple span. With `some&ml` in it. And `` ` `` backticks. And ``` ``some`` ``` more. With backslash `in\` it. This is a ` literal backtick. As \`are\` these! No `` literal backtick``. `something` kramdown-1.2.0/test/testcases/span/03_codespan/empty.html0000644000004100000410000000011512211563134023417 0ustar www-datawww-data

This is `` empty.

This is ``empty.

This is ````empty.

kramdown-1.2.0/test/testcases/span/03_codespan/normal.html0000644000004100000410000000053312211563134023555 0ustar www-datawww-data

This is a simple span.

With some<ht>&ml in it.

And ` backticks.

And ``some`` more.

With backslash in\ it.

This is a ` literal backtick. As `are` these!

No literal backtick.

something

kramdown-1.2.0/test/testcases/span/01_link/0000755000004100000410000000000012211563134020535 5ustar www-datawww-datakramdown-1.2.0/test/testcases/span/01_link/reference.text0000644000004100000410000000144012211563134023400 0ustar www-datawww-data[isurl]: someurl.html [1]: otherurl.html simple [URL][1] and [URL][isurl] simple [URL] [1] and [URL] [isurl] simple [1][] and [isurl][] simple [1] and [isurl] this is [a holy [isurl]] no [resolution][] here and [here] with a [break in the text] [break in the text]: url.html this not \[isurl] and not [isurl\] a [Link with_BIG] letters [link WITH_big]: letters.html 'This is the title' bad [no URL] d [isurl] [no url] invalid.html [no url]: [URL but no title]: invalid.html "title" test [url but no title] test [urldef] [urldef]: some.url 'title" some [with spaces] [with spaces]: with spaces.html "title" this [is a 'special' occasion for /all/ of us] [is a 'special' occasion for /all/ of us]: occasion.html this is [predefined] for [URI] kramdown-1.2.0/test/testcases/span/01_link/image_in_a.html0000644000004100000410000000047212211563134023476 0ustar www-datawww-data

Simple: Some alt text

Nested: Some alt ![img](text.png) text

Simple: Some text alt text text

kramdown-1.2.0/test/testcases/span/01_link/inline.html.190000644000004100000410000000260612211563134023135 0ustar www-datawww-data

simple URL

simple URL

simple URL with formatting

simple URL with single quoted title

simple URL with double quoted title

simple URL [with ] escaped

simple URL with ] escaped

simple URL [with] nested

simple URL with [no](link.html) inside

simple URL with parens

simple URL with parens

simple URL broken on line

simple URL with spaces

simple URL with spaces

simple URL with spaces

simple leading/trailing spaces

simple leading/trailing spaces

simple leading/trailing spaces

bad [URL not

bad [URL with parens](something(new.html)

bad [URL with empty title](something.html ‘’)

bad [URL](

bad [URL](no

kramdown-1.2.0/test/testcases/span/01_link/links_with_angle_brackets.html0000644000004100000410000000017512211563134026625 0ustar www-datawww-data

This is a link.

This is a link.

kramdown-1.2.0/test/testcases/span/01_link/imagelinks.html0000644000004100000410000000073212211563134023550 0ustar www-datawww-data

Simple: alt text

Simple with title: alt text

Empty img link: alt text

Reference style: alt text

Reference style with title: alt text

No alt text:

No id: imgo

kramdown-1.2.0/test/testcases/span/01_link/empty.text0000644000004100000410000000010512211563134022575 0ustar www-datawww-dataThis is [] empty. This is [][] empty. This is [](test.html) empty. kramdown-1.2.0/test/testcases/span/01_link/inline.html0000644000004100000410000000261612211563134022706 0ustar www-datawww-data

simple URL

simple URL

simple URL with formatting

simple URL with single quoted title

simple URL with double quoted title

simple URL [with ] escaped

simple URL with ] escaped

simple URL [with] nested

simple URL with [no](link.html) inside

simple URL with parens

simple URL with parens

simple URL broken on line

simple URL with spaces

simple URL with spaces

simple URL with spaces

simple leading/trailing spaces

simple leading/trailing spaces

simple leading/trailing spaces

bad [URL not

bad [URL with parens](something(new.html)

bad [URL with empty title](something.html ‘’)

bad [URL](

bad [URL](no

kramdown-1.2.0/test/testcases/span/01_link/imagelinks.text0000644000004100000410000000045412211563134023571 0ustar www-datawww-dataSimple: ![alt text](/images/other.png) Simple with title: ![alt text](/images/other.png "title") Empty img link: ![alt text]() Reference style: ![alt text][img] Reference style with title: ![alt text][imgo] No alt text: ![](other.png) No id: ![imgo] [img]: other.png [imgo]: other.png "Title" kramdown-1.2.0/test/testcases/span/01_link/empty.html0000644000004100000410000000013212211563134022555 0ustar www-datawww-data

This is [] empty.

This is [][] empty.

This is [](test.html) empty.

kramdown-1.2.0/test/testcases/span/01_link/reference.html0000644000004100000410000000214012211563134023356 0ustar www-datawww-data

simple URL and URL

simple URL and URL

simple 1 and isurl

simple 1 and isurl

this is [a holy isurl]

no [resolution][] here and [here]

with a break in the text

this not [isurl] and not [isurl]

a Link with_BIG letters

bad [no URL] d isurl

[no url] invalid.html [no url]:

“title”

test url but no title test [urldef]

[urldef]: some.url ‘title”

some with spaces

this is a ‘special’ occasion for /all/ of us

this is predefined for URI

kramdown-1.2.0/test/testcases/span/01_link/link_defs.text0000644000004100000410000000110212211563134023373 0ustar www-datawww-dataThis is a para. [id]: http://www.example.com/ [otherid1]: http://wwww.example.com/ "title 1" [otherid2]: http://wwww.example.com/ 'title 2' [otherid3]: [otherid4]: 'title' [otherid5]: some spaces.html [otherid6]: some spaces.html 'title' [otherid7]: some spaces "title" [break]: http://www.example.com/test/asdf.html 'Another title' [1]: ignored.url [1]: one.url [2]: two.url [3]: three.url [4]: nourl Points to [1] and [2] and [3] but not [4] [_.:,;!?-]: http://example.com Points to [_.:,;!?-] kramdown-1.2.0/test/testcases/span/01_link/image_in_a.text0000644000004100000410000000031512211563134023512 0ustar www-datawww-dataSimple: [Some ![alt text](/images/other.png)](local.html) Nested: [Some ![alt ![img](text.png) text](/images/other.png)](local.html) Simple: [Some *text ![alt text](/images/other.png) text*](local.html) kramdown-1.2.0/test/testcases/span/01_link/reference.options0000644000004100000410000000010612211563134024105 0ustar www-datawww-data:link_defs: predefined: [predefined.html] URI: [uri.html, My URI] kramdown-1.2.0/test/testcases/span/01_link/links_with_angle_brackets.text0000644000004100000410000000012712211563134026642 0ustar www-datawww-dataThis is a [link](). This is a [link]( 'and title'). kramdown-1.2.0/test/testcases/span/01_link/link_defs.html0000644000004100000410000000040612211563134023361 0ustar www-datawww-data

This is a para. [id]: http://www.example.com/

[4]: nourl

Points to 1 and 2 and 3 but not [4]

Points to _.:,;!?-

kramdown-1.2.0/test/testcases/span/01_link/inline.text0000644000004100000410000000176212211563134022727 0ustar www-datawww-datasimple [URL]() simple [URL](something.html) simple [URL *with* formatting](something.html) simple [URL with single quoted title](something.html 'a t"itle') simple [URL with double quoted title](something.html "a t'itle") simple [URL \[with \] escaped](something.html) simple [URL with \] escaped](something.html) simple [URL [with] nested](something.html) simple [URL with [no](link.html) inside](something.html) simple [URL with parens](/something/to(do)) simple [URL with parens](/something/to(do "doit") simple [URL broken on line](something.html "title") simple [URL with spaces](with spaces.html) simple [URL with spaces](with spaces.html 'title') simple [URL with spaces](with (spaces).html) simple [leading/trailing spaces]( spaces.html) simple [leading/trailing spaces](spaces.html ) simple [leading/trailing spaces]( spaces.html ) bad [URL [not](something.html) bad [URL with parens](something(new.html) bad [URL with empty title](something.html '') bad [URL]( bad [URL](no kramdown-1.2.0/test/testcases/span/01_link/reference.html.190000644000004100000410000000211012211563134023603 0ustar www-datawww-data

simple URL and URL

simple URL and URL

simple 1 and isurl

simple 1 and isurl

this is [a holy isurl]

no [resolution][] here and [here]

with a break in the text

this not [isurl] and not [isurl]

a Link with_BIG letters

bad [no URL] d isurl

[no url] invalid.html [no url]:

“title”

test url but no title test [urldef]

[urldef]: some.url ‘title”

some with spaces

this is a ‘special’ occasion for /all/ of us

this is predefined for URI

kramdown-1.2.0/test/testcases/span/02_emphasis/0000755000004100000410000000000012211563134021412 5ustar www-datawww-datakramdown-1.2.0/test/testcases/span/02_emphasis/errors.html0000644000004100000410000000021312211563134023610 0ustar www-datawww-data

This is a *star.

This is a **star.

This is *a *star.

This is *a star*.

This** is** a star.

kramdown-1.2.0/test/testcases/span/02_emphasis/empty.text0000644000004100000410000000004712211563134023457 0ustar www-datawww-dataThis __is **empty. This ****is empty. kramdown-1.2.0/test/testcases/span/02_emphasis/errors.text0000644000004100000410000000014212211563134023631 0ustar www-datawww-dataThis is a *star. This is a **star. This is **a *star*. This is *a star\*. This** is** a star. kramdown-1.2.0/test/testcases/span/02_emphasis/normal.text0000644000004100000410000000100012211563134023577 0ustar www-datawww-dataThis *is* so **hard**. This _is_ so __hard__ too. *At* start *At* start At *end* At *end* _At_ start _At_ start At _end_ At _end_ And *nest**ed***. And *nest**ed*. And *nest**ed* like** this. And *not_nest_ed*. And ***nested***. And ___nested___. And **nest*e***. And lonely * here*. And lonely ** here**. And **lonely ** here**. ** and here**. And **compli*cated \*** here Some***what* more * ***he*re Do it *\*this\** way Or this \**this*\* way Or that *\*that*\* way Or that \**that\** way kramdown-1.2.0/test/testcases/span/02_emphasis/empty.html0000644000004100000410000000007412211563134023437 0ustar www-datawww-data

This __is **empty.

This **is empty.

kramdown-1.2.0/test/testcases/span/02_emphasis/normal.html0000644000004100000410000000162212211563134023571 0ustar www-datawww-data

This is so hard.

This is so hard too.

At start At start

At end At end

At start At start

At end At end

And nested.

And nest**ed.

And *nested* like this.

And not_nest_ed.

And nested.

And nested.

And neste.

And lonely * here*.

And lonely ** here**.

And lonely ** here.

** and here**.

And compli*cated * here

Some**what more * **here

Do it *this* way Or this *this* way Or that *that* way Or that *that* way

kramdown-1.2.0/test/testcases/span/02_emphasis/nesting.text0000644000004100000410000000073612211563134023775 0ustar www-datawww-data- ***test test*** - ___test test___ - *test **test*** - **test *test*** - ***test* test** - ***test** test* - ***test* test** - **test *test*** - *test **test*** - _test __test___ - __test _test___ - ___test_ test__ - ___test__ test_ - ___test_ test__ - __test _test___ - _test __test___ ^ - *a*b - a*b* - a*b*c - **a**b - a**b** - a**b**c ^ - _a_b - a_b_ - a_b_c - __a__b - a__b__ - a__b__c - a__2__c - a__2__3 - 1__2__3 ^ - *a _b_ c* - **a __b__ c** kramdown-1.2.0/test/testcases/span/02_emphasis/nesting.html0000644000004100000410000000224312211563134023750 0ustar www-datawww-data
  • test test
  • test test
  • test test
  • test test
  • test test
  • test test
  • test test
  • test test
  • test test
  • test test
  • test test
  • test test
  • test test
  • test test
  • test test
  • test test
  • ab
  • ab
  • abc
  • ab
  • ab
  • abc
  • _a_b
  • a_b_
  • a_b_c
  • __a__b
  • a__b__
  • a__b__c
  • a__2__c
  • a__2__3
  • 1__2__3
  • a _b_ c
  • a __b__ c
kramdown-1.2.0/test/testcases_gfm/0000755000004100000410000000000012211563134017170 5ustar www-datawww-datakramdown-1.2.0/test/testcases_gfm/backticks_syntax.text0000644000004100000410000000023312211563134023440 0ustar www-datawww-data``` Three backticks ``` ```` Four backticks ```` ``` Unbalanced bottom heavy `````` ````ruby language no space ```` ```` ruby language with space ```` kramdown-1.2.0/test/testcases_gfm/two_para_hard_line_breaks.text0000644000004100000410000000011612211563134025244 0ustar www-datawww-dataThis is just a normal paragraph. Containing a line break. Another paragraph. kramdown-1.2.0/test/testcases_gfm/backticks_syntax.html0000644000004100000410000000071012211563134023420 0ustar www-datawww-data
Three backticks
Four backticks
Unbalanced bottom heavy
1language no space
1language with space
kramdown-1.2.0/test/testcases_gfm/backticks_disable_highlighting.text0000644000004100000410000000007212211563134026243 0ustar www-datawww-data```ruby Kramdown::Document.new(text, :input => 'GFM') ``` kramdown-1.2.0/test/testcases_gfm/backticks_disable_highlighting.html0000644000004100000410000000014012211563134026217 0ustar www-datawww-data
Kramdown::Document.new(text, :input => 'GFM')
kramdown-1.2.0/test/testcases_gfm/backticks_disable_highlighting.options0000644000004100000410000000002712211563134026752 0ustar www-datawww-data:enable_coderay: false kramdown-1.2.0/test/testcases_gfm/two_para_hard_line_breaks.html0000644000004100000410000000014212211563134025223 0ustar www-datawww-data

This is just a normal paragraph.
Containing a line break.

Another paragraph.

kramdown-1.2.0/test/test_files.rb0000644000004100000410000003624212211563134017036 0ustar www-datawww-data# -*- coding: utf-8 -*- # #-- # Copyright (C) 2009-2013 Thomas Leitner # # This file is part of kramdown which is licensed under the MIT. #++ # require 'test/unit' require 'kramdown' require 'yaml' require 'tmpdir' Encoding.default_external = 'utf-8' if RUBY_VERSION >= '1.9' class TestFiles < Test::Unit::TestCase EXCLUDE_KD_FILES = [('test/testcases/block/04_header/with_auto_ids.text' if RUBY_VERSION <= '1.8.6'), # bc of dep stringex not working ].compact # Generate test methods for kramdown-to-xxx conversion Dir[File.dirname(__FILE__) + '/testcases/**/*.text'].each do |text_file| next if EXCLUDE_KD_FILES.any? {|f| text_file =~ /#{f}$/} basename = text_file.sub(/\.text$/, '') opts_file = text_file.sub(/\.text$/, '.options') (Dir[basename + ".*"] - [text_file, opts_file]).each do |output_file| next if (RUBY_VERSION >= '1.9' && File.exist?(output_file + '.19')) || (RUBY_VERSION < '1.9' && output_file =~ /\.19$/) output_format = File.extname(output_file.sub(/\.19$/, ''))[1..-1] next if !Kramdown::Converter.const_defined?(output_format[0..0].upcase + output_format[1..-1]) define_method('test_' + text_file.tr('.', '_') + "_to_#{output_format}") do opts_file = File.join(File.dirname(text_file), 'options') if !File.exist?(opts_file) options = File.exist?(opts_file) ? YAML::load(File.read(opts_file)) : {:auto_ids => false, :footnote_nr => 1} doc = Kramdown::Document.new(File.read(text_file), options) assert_equal(File.read(output_file), doc.send("to_#{output_format}")) end end end # Generate test methods for html-to-html conversion `tidy -v 2>&1` if $?.exitstatus != 0 warn("Skipping html-to-html tests because tidy executable is missing") else EXCLUDE_HTML_FILES = ['test/testcases/block/06_codeblock/whitespace.html', # bc of span inside pre 'test/testcases/block/09_html/simple.html', # bc of xml elements 'test/testcases/span/03_codespan/highlighting.html', # bc of span elements inside code element 'test/testcases/block/04_header/with_auto_ids.html', # bc of auto_ids=true option 'test/testcases/block/04_header/header_type_offset.html', # bc of header_offset option ] Dir[File.dirname(__FILE__) + '/testcases/**/*.{html,html.19,htmlinput,htmlinput.19}'].each do |html_file| next if EXCLUDE_HTML_FILES.any? {|f| html_file =~ /#{f}(\.19)?$/} next if (RUBY_VERSION >= '1.9' && File.exist?(html_file + '.19')) || (RUBY_VERSION < '1.9' && html_file =~ /\.19$/) out_file = (html_file =~ /\.htmlinput(\.19)?$/ ? html_file.sub(/input(\.19)?$/, '') : html_file) define_method('test_' + html_file.tr('.', '_') + "_to_html") do opts_file = html_file.sub(/\.html(input)?(\.19)?$/, '.options') opts_file = File.join(File.dirname(html_file), 'options') if !File.exist?(opts_file) options = File.exist?(opts_file) ? YAML::load(File.read(opts_file)) : {:auto_ids => false, :footnote_nr => 1} doc = Kramdown::Document.new(File.read(html_file), options.merge(:input => 'html')) assert_equal(tidy_output(File.read(out_file)), tidy_output(doc.to_html)) end end end def tidy_output(out) cmd = "tidy -q --doctype omit #{RUBY_VERSION >= '1.9' ? '-utf8' : '-raw'} 2>/dev/null" result = IO.popen(cmd, 'r+') do |io| io.write(out) io.close_write io.read end if $?.exitstatus == 2 raise "Problem using tidy" end result end # Generate test methods for text-to-latex conversion and compilation `latex -v 2>&1` if $?.exitstatus != 0 warn("Skipping latex compilation tests because latex executable is missing") else EXCLUDE_LATEX_FILES = ['test/testcases/span/01_link/image_in_a.text', # bc of image link 'test/testcases/span/01_link/imagelinks.text', # bc of image links 'test/testcases/span/04_footnote/markers.text', # bc of footnote in header ] Dir[File.dirname(__FILE__) + '/testcases/**/*.text'].each do |text_file| next if EXCLUDE_LATEX_FILES.any? {|f| text_file =~ /#{f}$/} define_method('test_' + text_file.tr('.', '_') + "_to_latex_compilation") do latex = Kramdown::Document.new(File.read(text_file), :auto_ids => false, :footnote_nr => 1, :template => 'document').to_latex Dir.mktmpdir do |tmpdir| result = IO.popen("latex -output-directory='#{tmpdir}' 2>/dev/null", 'r+') do |io| io.write(latex) io.close_write io.read end assert($?.exitstatus == 0, result.scan(/^!(.*\n.*)/).join("\n")) end end end end # Generate test methods for text->kramdown->html conversion `tidy -v 2>&1` if $?.exitstatus != 0 warn("Skipping text->kramdown->html tests because tidy executable is missing") else EXCLUDE_TEXT_FILES = ['test/testcases/span/05_html/markdown_attr.text', # bc of markdown attr 'test/testcases/block/09_html/markdown_attr.text', # bc of markdown attr 'test/testcases/span/extension/options.text', # bc of parse_span_html option 'test/testcases/block/12_extension/options.text', # bc of options option 'test/testcases/block/12_extension/options3.text', # bc of options option 'test/testcases/block/09_html/content_model/tables.text', # bc of parse_block_html option 'test/testcases/block/09_html/html_to_native/header.text', # bc of auto_ids option that interferes 'test/testcases/block/09_html/simple.text', # bc of webgen:block elements 'test/testcases/block/11_ial/simple.text', # bc of change of ordering of attributes in header 'test/testcases/span/extension/comment.text', # bc of comment text modifications (can this be avoided?) 'test/testcases/block/04_header/header_type_offset.text', # bc of header_offset being applied twice ('test/testcases/block/04_header/with_auto_ids.text' if RUBY_VERSION <= '1.8.6'), # bc of dep stringex not working ].compact Dir[File.dirname(__FILE__) + '/testcases/**/*.text'].each do |text_file| next if EXCLUDE_TEXT_FILES.any? {|f| text_file =~ /#{f}$/} define_method('test_' + text_file.tr('.', '_') + "_to_kramdown_to_html") do html_file = text_file.sub(/\.text$/, '.html') html_file += '.19' if RUBY_VERSION >= '1.9' && File.exist?(html_file + '.19') opts_file = text_file.sub(/\.text$/, '.options') opts_file = File.join(File.dirname(text_file), 'options') if !File.exist?(opts_file) options = File.exist?(opts_file) ? YAML::load(File.read(opts_file)) : {:auto_ids => false, :footnote_nr => 1} kdtext = Kramdown::Document.new(File.read(text_file), options).to_kramdown html = Kramdown::Document.new(kdtext, options).to_html assert_equal(tidy_output(File.read(html_file)), tidy_output(html)) end end end # Generate test methods for html-to-kramdown-to-html conversion `tidy -v 2>&1` if $?.exitstatus != 0 warn("Skipping html-to-kramdown-to-html tests because tidy executable is missing") else EXCLUDE_HTML_KD_FILES = ['test/testcases/span/extension/options.html', # bc of parse_span_html option 'test/testcases/span/05_html/normal.html', # bc of br tag before closing p tag 'test/testcases/block/12_extension/nomarkdown.html', # bc of nomarkdown extension 'test/testcases/block/09_html/simple.html', # bc of webgen:block elements 'test/testcases/block/09_html/markdown_attr.html', # bc of markdown attr 'test/testcases/block/09_html/html_to_native/table_simple.html', # bc of invalidly converted simple table 'test/testcases/block/06_codeblock/whitespace.html', # bc of entity to char conversion 'test/testcases/block/11_ial/simple.html', # bc of change of ordering of attributes in header 'test/testcases/span/03_codespan/highlighting.html', # bc of span elements inside code element 'test/testcases/block/04_header/with_auto_ids.html', # bc of auto_ids=true option 'test/testcases/block/04_header/header_type_offset.html', # bc of header_offset option 'test/testcases/block/16_toc/toc_exclude.html', # bc of different attribute ordering 'test/testcases/span/autolinks/url_links.html', # bc of quot entity being converted to char ] Dir[File.dirname(__FILE__) + '/testcases/**/*.{html,html.19}'].each do |html_file| next if EXCLUDE_HTML_KD_FILES.any? {|f| html_file =~ /#{f}(\.19)?$/} next if (RUBY_VERSION >= '1.9' && File.exist?(html_file + '.19')) || (RUBY_VERSION < '1.9' && html_file =~ /\.19$/) define_method('test_' + html_file.tr('.', '_') + "_to_kramdown_to_html") do kd = Kramdown::Document.new(File.read(html_file), :input => 'html', :auto_ids => false, :footnote_nr => 1).to_kramdown opts_file = html_file.sub(/\.html(\.19)?$/, '.options') opts_file = File.join(File.dirname(html_file), 'options') if !File.exist?(opts_file) options = File.exist?(opts_file) ? YAML::load(File.read(opts_file)) : {:auto_ids => false, :footnote_nr => 1} doc = Kramdown::Document.new(kd, options) assert_equal(tidy_output(File.read(html_file)), tidy_output(doc.to_html)) end end end EXCLUDE_GFM_FILES = [ 'test/testcases/block/03_paragraph/no_newline_at_end.text', 'test/testcases/block/03_paragraph/indented.text', 'test/testcases/block/03_paragraph/two_para.text', 'test/testcases/block/04_header/atx_header.text', 'test/testcases/block/04_header/setext_header.text', 'test/testcases/block/05_blockquote/indented.text', 'test/testcases/block/05_blockquote/lazy.text', 'test/testcases/block/05_blockquote/nested.text', 'test/testcases/block/05_blockquote/no_newline_at_end.text', 'test/testcases/block/06_codeblock/error.text', 'test/testcases/block/07_horizontal_rule/error.text', 'test/testcases/block/08_list/escaping.text', 'test/testcases/block/08_list/item_ial.text', 'test/testcases/block/08_list/lazy.text', 'test/testcases/block/08_list/list_and_others.text', 'test/testcases/block/08_list/other_first_element.text', 'test/testcases/block/08_list/simple_ul.text', 'test/testcases/block/08_list/special_cases.text', 'test/testcases/block/09_html/comment.text', 'test/testcases/block/09_html/html_to_native/code.text', 'test/testcases/block/09_html/html_to_native/emphasis.text', 'test/testcases/block/09_html/html_to_native/typography.text', 'test/testcases/block/09_html/parse_as_raw.text', 'test/testcases/block/09_html/simple.text', 'test/testcases/block/12_extension/comment.text', 'test/testcases/block/12_extension/ignored.text', 'test/testcases/block/12_extension/nomarkdown.text', 'test/testcases/block/13_definition_list/item_ial.text', 'test/testcases/block/13_definition_list/multiple_terms.text', 'test/testcases/block/13_definition_list/no_def_list.text', 'test/testcases/block/13_definition_list/simple.text', 'test/testcases/block/13_definition_list/with_blocks.text', 'test/testcases/block/14_table/errors.text', 'test/testcases/block/14_table/escaping.text', 'test/testcases/block/14_table/simple.text', 'test/testcases/block/15_math/normal.text', 'test/testcases/encoding.text', 'test/testcases/span/01_link/inline.text', 'test/testcases/span/01_link/link_defs.text', 'test/testcases/span/01_link/reference.text', 'test/testcases/span/02_emphasis/normal.text', 'test/testcases/span/03_codespan/normal.text', 'test/testcases/span/04_footnote/definitions.text', 'test/testcases/span/04_footnote/markers.text', 'test/testcases/span/05_html/across_lines.text', 'test/testcases/span/05_html/markdown_attr.text', 'test/testcases/span/05_html/normal.text', 'test/testcases/span/autolinks/url_links.text', 'test/testcases/span/extension/comment.text', 'test/testcases/span/ial/simple.text', 'test/testcases/span/line_breaks/normal.text', 'test/testcases/span/text_substitutions/entities_as_char.text', 'test/testcases/span/text_substitutions/entities.text', 'test/testcases/span/text_substitutions/typography.text' ] # Generate test methods for gfm-to-html conversion Dir[File.dirname(__FILE__) + '/{testcases,testcases_gfm}/**/*.text'].each do |text_file| next if EXCLUDE_GFM_FILES.any? {|f| text_file =~ /#{f}$/} basename = text_file.sub(/\.text$/, '') html_file = [(".html.19" if RUBY_VERSION >= '1.9'), ".html"].compact. map {|ext| basename + ext }. detect {|file| File.exist?(file) } define_method('test_gfm_' + text_file.tr('.', '_') + "_to_html") do opts_file = basename + '.options' opts_file = File.join(File.dirname(html_file), 'options') if !File.exist?(opts_file) options = File.exist?(opts_file) ? YAML::load(File.read(opts_file)) : {:auto_ids => false, :footnote_nr => 1} doc = Kramdown::Document.new(File.read(text_file), options.merge(:input => 'GFM')) assert_equal(File.read(html_file), doc.to_html) end end # Generate test methods for asserting that converters don't modify the document tree. Dir[File.dirname(__FILE__) + '/testcases/**/*.text'].each do |text_file| opts_file = text_file.sub(/\.text$/, '.options') options = File.exist?(opts_file) ? YAML::load(File.read(opts_file)) : {:auto_ids => false, :footnote_nr => 1} (Kramdown::Converter.constants.map {|c| c.to_sym} - [:Base, :RemoveHtmlTags]).each do |conv_class| define_method("test_whether_#{conv_class}_modifies_tree_with_file_#{text_file.tr('.', '_')}") do doc = Kramdown::Document.new(File.read(text_file), options) options_before = Marshal.load(Marshal.dump(doc.options)) tree_before = Marshal.load(Marshal.dump(doc.root)) Kramdown::Converter.const_get(conv_class).convert(doc.root, doc.options) assert_equal(options_before, doc.options) assert_tree_not_changed(tree_before, doc.root) end end end def assert_tree_not_changed(old, new) assert_equal(old.type, new.type, "type mismatch") if old.value.kind_of?(Kramdown::Element) assert_tree_not_changed(old.value, new.value) else assert_equal(old.value, new.value, "value mismatch") end assert_equal(old.attr, new.attr, "attr mismatch") assert_equal(old.options, new.options, "options mismatch") assert_equal(old.children.length, new.children.length, "children count mismatch") old.children.each_with_index do |child, index| assert_tree_not_changed(child, new.children[index]) end end end kramdown-1.2.0/doc/0000755000004100000410000000000012211563134014127 5ustar www-datawww-datakramdown-1.2.0/doc/installation.page0000644000004100000410000000507412211563134017474 0ustar www-datawww-data--- title: Installation in_menu: true sort_info: 5 --- # Download & Installation ## Dependencies Since kramdown is written in Ruby, you just need the [Ruby interpreter](http://www.ruby-lang.org), 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. ## Compatibility Notes kramdown should work on any platform which supports Ruby. It has been successfully tested on the following platforms: * 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. See the platform specific installation notes for more information! ## Platform Specific Installation Instructions ### Linux There are a variety of Linux distributions out there with different package management systems. So we will focus on instructions for Ubuntu 9.04 here (which should probably also work for any newer Ubuntu version or any recent Debian based distribution). After running the following commands, kramdown is installed and ready to use: sudo aptitude install ruby rubygems sudo gem1.8 install kramdown > You will also need to add `export PATH=$PATH:/var/lib/gems/1.8/bin` to your `~/.bashrc` because > this is the binary path the executable files get installed to. ### Mac OS X Mac OS X Snow Leopard comes with Ruby and Rubygems preinstalled. So installing kramdown is as easy as running: sudo gem install kramdown ### Windows You need to install Ruby first. This can easily be done by using the [RubyInstaller] - just download the installation binary and run it. After that open a command shell (select `Start -> Run...`, then enter `cmd` and click on `Ok`) and type in the following: gem install kramdown [RubyInstaller]: http://rubyinstaller.org ## Generic Installation Instructions ### Using Rubygems If you are using Rubygems, installing the latest version of kramdown is as simple as executing gem install kramdown ### Manual Installation The latest version of kramdown can always be downloaded as `.tar.gz` or `.zip` from [its files section on Rubyforge](http://rubyforge.org/frs/?group_id=7403). After the download the package needs to be decompressed and then you can install kramdown using the included `setup.rb` installation method: $ ruby setup.rb config $ ruby setup.rb setup $ ruby setup.rb install ### Using the repository version kramdown uses git as its versioning system and kramdown's repository is hosted on GitHub. The repository always contains a clean state of the current development version of kramdown. To check out kramdown use the following command: git clone git://github.com/gettalong/kramdown.git kramdown-1.2.0/doc/_design.scss0000644000004100000410000002215212211563134016436 0ustar www-datawww-data/* Based on the Less Framework 4 http://lessframework.com by Joni Korpi License: http://opensource.org/licenses/mit-license.php */ /***** Variables for easy customization *****/ /* the baseline height in px */ $baseline-height: 24; /* The overlay color for the background image */ $bg-grad-color: rgba(255,255,128,0.1); /* The font size of the logo in px */ $logo-size: 36; /* Color settings */ $link-color: #1666A3; /* Resets ------ */ html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, hr, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figure, figcaption, hgroup, menu, footer, header, nav, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; } article, aside, canvas, figure, figure img, figcaption, hgroup, footer, header, nav, section, audio, video { display: block; } a img {border: 0;} /* Typography presets ------------------ */ .gigantic { font-size: 59px; line-height: 72px; } .huge { font-size: 36px; line-height: 48px; } .large { font-size: 23px; line-height: 24px; } .bigger { font-size: 18px; line-height: 24px; } .big { font-size: 14px; line-height: 24px; } body { font: 14px/24px 'Palatino Linotype', 'Book Antiqua', Palatino, serif; } .small, small { font-size: 12px; line-height: 24px; } *:target::after { content: " ☜"; } /* Typographics grid overlay */ .grid{ background-image: -moz-linear-gradient(top, rgba(0,0,0,0) 95%, rgba(0,0,0,0.3) 100%); /* FF3.6+ */ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(95%,rgba(0,0,0,0)), color-stop(100%,rgba(0,0,0,0.3))); /* Chrome,Safari4+ */ background-image: -webkit-linear-gradient(top, rgba(0,0,0,0) 95%,rgba(0,0,0,0.3) 100%); /* Chrome10+,Safari5.1+ */ background-image: -o-linear-gradient(top, rgba(0,0,0,0) 95%, rgba(0,0,0,0.3) 100%); /* Opera11.10+ */ background-image: -ms-linear-gradient(top, rgba(0,0,0,0) 95%,rgba(0,0,0,0.3) 100%); /* IE10+ */ background-image: linear-gradient(top, rgba(0,0,0,0.3) 95%,rgba(0,0,0,0.3) 100%); /* W3C */ -webkit-background-size: 100% #{$baseline-height}px; -o-background-size: 100% #{$baseline-height}px; background-size: 100% #{$baseline-height}px; } /* Basic mixins */ @mixin background { background-image: -moz-linear-gradient($bg-grad-color, $bg-grad-color), url('bg.png'); background-image: -webkit-linear-gradient($bg-grad-color, $bg-grad-color), url('bg.png'); background-image: -o-linear-gradient($bg-grad-color, $bg-grad-color), url('bg.png'); background-image: -ms-linear-gradient($bg-grad-color, $bg-grad-color), url('bg.png'); background-image: linear-gradient($bg-grad-color, $bg-grad-color), url('bg.png'); } @mixin typography($size: big) { h3, h4, h5, h6, p, ul, ol, dl, pre, blockquote, table { margin-top: 24px; margin-bottom: 24px; } @if $size == big { h1 { @extend .huge } h2 { @extend .large } h3 { @extend .bigger } h4,h5,h6 { @extend .big } } @else { h1 { @extend .large } h2 { @extend .bigger } h3,h4,h5,h6 { @extend .big } } h1, h2, h3, h4, h5, h6 { font-weight: normal; padding-left: 48px; margin-left: -48px; margin-top: 36px; margin-bottom: -12px; } ul, ol, dd { padding-left: 24px; } ul ul, ul ol, ol ul, ol ol { margin-top: 0; margin-bottom: 0; } pre { padding-left: 12px; padding-right: 12px; border: 1px solid #ccc; font-family: "Bitstream Vera Sans Mono", Consolas, monospace; } dt { font-weight: bold; } a { color: $link-color; text-decoration: underline; } a:hover, a:link { color: $link-color / 2; } } /* Default Layout: 992px. Gutters: 24px. Outer margins: 48px. Leftover space for scrollbars @1024px: 32px. ------------------------------------------------------------------------------- cols 1 2 3 4 5 6 7 8 9 10 px 68 160 252 344 436 528 620 712 804 896 */ body { width: 992px; margin: 0 auto 48px; color: rgb(60,60,60); -webkit-text-size-adjust: 100%; /* Stops Mobile Safari from auto-adjusting font-sizes */ @include background; } body > header { position: relative; padding: 12px; font-family: Verdana; color: #eee; -moz-box-shadow: 0 0 24px rgba(0,0,0,0.6); -webkit-box-shadow: 0 0 24px rgba(0,0,0,0.6); box-shadow: 0 0 24px rgba(0,0,0,0.6); z-index: 1; } #logo { font-size: #{$logo-size}px; line-height: #{$baseline-height * (floor($logo-size / $baseline-height) + 1)}px; margin: 12px; text-shadow: 0px 2px 5px rgba(0, 0, 0, 0.5); a { color: #eee; text-decoration: none; &:hover { color: #fff; } } } #slogan { font-size: 100%; margin: 12px; text-shadow: 0px 2px 5px rgba(0, 0, 0, 0.5); } nav { position: absolute; bottom: 0px; right: 0px; background-color: rgba(255,255,255,0.1); li { display: inline-block; } ul { margin: 0; padding: 0; } a, span { display: block; padding: 12px; color: #ccc; text-decoration: none; } span { background-color: rgba(255,255,255,0.3); } a:hover { background-color: rgba(255,255,255,0.3); } } #wrapper { clear: both; position: relative; background-color: white; -moz-box-shadow: 0 0 24px rgba(0,0,0,0.6); -webkit-box-shadow: 0 0 24px rgba(0,0,0,0.6); box-shadow: 0 0 24px rgba(0,0,0,0.6); } aside { float: right; right: 0; background-color: white; width: 252px; padding: 24px; @include typography(small); h1, h2, h3, h4, h5, h6 { padding-left: 48px; margin-left: -48px; } } aside.banner { @include background; position: relative; width: inherit; margin: 0; float: none; padding: 24px; border: 10px solid rgba(255,255,255,0.1); color: #ccc; font-size: 36px; line-height: 48px; a { color: #ccc; text-decoration: underline; } a:hover { background-color: rgba(255,255,255,0.3); } p { margin: 0; } p + p { margin-top: 24px; } } #content { width: 620px; padding: 24px 48px; @include typography(big); } footer { background-color: rgba(255,255,255,0.1); min-height: 24px; color: #eee; } /* Tablet Layout: 768px. Gutters: 24px. Outer margins: 28px. Inherits styles from: Default Layout. ----------------------------------------------------------------- cols 1 2 3 4 5 6 7 8 px 68 160 252 344 436 528 620 712 */ @media only screen and (min-width: 768px) and (max-width: 1005px) { body { width: 716px; } body > header { padding: 0; } aside { position: static; float: right; } nav { position: relative; margin-top: 12px; } } /* Mobile Layout: 320px. Gutters: 24px. Outer margins: 34px. Inherits styles from: Default Layout. --------------------------------------------- cols 1 2 3 px 68 160 252 */ @media only screen and (max-width: 767px) { body { width: 320px; } body > header { padding: 0; } nav { position: relative; margin-top: 12px; } aside { position: relative; } #content, aside { width: 296px; padding: 24px 12px; } #content { h1, h2, h3, h4, h5, h6 { padding-left: 12px; margin-left: -12px; } } } /* Wide Mobile Layout: 480px. Gutters: 24px. Outer margins: 22px. Inherits styles from: Default Layout, Mobile Layout. ------------------------------------------------------------ cols 1 2 3 4 5 px 68 160 252 344 436 */ @media only screen and (min-width: 480px) and (max-width: 767px) { body { width: 90%; } aside { position: relative; } #content, aside { width: inherit; padding: 24px 48px; } #content { h1, h2, h3, h4, h5, h6 { padding-left: 48px; margin-left: -48px; } } } /* Retina media query. Overrides styles for devices with a device-pixel-ratio of 2+, such as iPhone 4. ----------------------------------------------- */ @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) { body { } } kramdown-1.2.0/doc/metainfo0000644000004100000410000000021112211563134015646 0ustar www-datawww-data--- alcn [converter/*.html, parser/*.html, documentation.en.html, options.en.html, tests.en.html]: template: ../documentation.template kramdown-1.2.0/doc/news.page0000644000004100000410000000154012211563134015741 0ustar www-datawww-data--- title: News in_menu: false sort_info: 30 --- pipeline:tags,blocks,fragments

News

Atom-Feed --- name:newsdata pipeline:erb <% 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('.', '-')} %>
Published on <%= node['created_at'].strftime("%A, %d %B %Y") %>
<%= context.render_block(:name => 'content', :chain => [node]) %>
<% end %> kramdown-1.2.0/doc/sidebar.template0000644000004100000410000000735512211563134017307 0ustar www-datawww-data

News

The latest version of kramdown is 1.2.0 and it was released on 2013-08-31

More news

Support kramdown

If you like kramdown and would like to support it, you are welcome to make a small donation (PayPal or Pledgie) -- it will surely be appreciated! Thanks!

Click here to lend your support to: kramdown and make a donation at www.pledgie.com !

Sponsors

GROSSWEBER provides software development consulting and training services. We like to work on open source. We use it heavily. We love kramdown!

kramdown-1.2.0/doc/default.scss0000644000004100000410000000643112211563134016454 0ustar www-datawww-data@import 'design'; a:hover { background-color: rgba(0,0,0,0.1); } aside.banner { font-size: 18px; line-height: 27px; } aside a { text-decoration: none; &:hover, &:link { text-decoration: underline; } } #content { blockquote.information { border-left: 12px solid #080; background-color: #bfb; padding: 12px 12px 12px 0; margin-left: -48px; padding-left: 48px; } blockquote.markdown-difference { border-left: 12px solid #dc0; background-color: #ffa; padding: 12px 12px 12px 0; margin-left: -48px; padding-left: 48px; &:before { content: "Difference to Standard Markdown"; display: block; font-weight: bold; } } blockquote pre { border: none; } table { border-collapse: collapse; margin-left: auto; margin-right: auto; width: 100%; td, th { padding: 3px 5px; } th { background-color: #080; color: white; } } pre.show-whitespaces .ws-space { background-color: #f44; } pre.show-whitespaces .ws-space-l { background-color: #f22; } pre.show-whitespaces .ws-space-r { background-color: #f00; } pre.show-whitespaces .ws-tab { background-color: #ff4; } pre.show-whitespaces .ws-tab-l { background-color: #ff2; } pre.show-whitespaces .ws-tab-r { background-color: #ff0; } pre.show-whitespaces.ws-lr .ws-tab { background-color: inherit; } pre.show-whitespaces.ws-lr .ws-space { background-color: inherit; opacity: 0; } table.kdexample td { vertical-align: top; } table.kdexample pre { margin: 5px 0px; } .kdexample:hover .kdexample-after-source { display: block; } .kdexample-after-source { display: none; background-color: #ffffee; border: 2px solid #e6e8e9; margin: 0 10px; padding: 5px; } .kdexample-after-live { background-color: #eeffee; border: 2px solid #e6e8e9; margin: 5px 0px 12px; padding: 5px; } div.kdsyntaxlink { float: right; position: relative; top: -17px; padding: 5px; border: 1px solid #e6e8e9; margin-right: 10px; margin-left: 10px; a { text-decoration: none; } } } .news-item { border-top: 2px solid #ddd; margin-top: 46px; } .news-date { float: right; margin-top: 2px; font-size: small; color: #888; } footer { clear: both; font-size: 92%; text-align: left; a { color: #898989; &:hover { text-decoration: none; color: #666; } } } /* common rules */ acronym { cursor: help; border-bottom: 1px solid #777; } .float-left { float: left; } .float-right { float: right; } .a-left, tr.a-left td { text-align: left; } .a-center, tr.a-center td { text-align: center; } .a-right, tr.a-right td { text-align: right; } .clear { clear: both; } .inline-important { font-weight: bold; display: block; text-align: center; } kramdown-1.2.0/doc/options.page0000644000004100000410000000044512211563134016463 0ustar www-datawww-data--- 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}} kramdown-1.2.0/doc/index.page0000644000004100000410000000727112211563134016103 0ustar www-datawww-data--- title: Home in_menu: true sort_info: 1 --- ## Overview If you want to get started with kramdown, have a look at the [installation page](installation.html) to see how you can install it on your system. Then look through the [documentation](documentation.html) for finding information about how to actually use kramdown and its parsers/converters. The [quick reference](quickref.html) provides a overview of the syntax -- if 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 img_attr: {style: 'background:transparent'} 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}, level 2 concept/.append style={font=\Large}, } \node[concept, font=\Large] (lib) {kramdown's internal representation} child[concept color=orange, grow=140, ->] {node[concept] (i-kramdown) {kramdown}} child[concept color=orange, grow=180] {node[concept] (i-html) {HTML}} child[concept color=orange, grow=220] {node[concept] (i-markdown) {Markdown}} child[concept color=green!50!black, grow=40] {node[concept] (o-html) {HTML}} child[concept color=green!50!black, grow=0] {node[concept] (o-kramdown) {kramdown}} child[concept color=green!50!black, grow=-40] { node[concept] (o-latex) {\LaTeX} child[grow=0] { node[concept] (o-latex-pdf) {PDF} } } child[concept color=green!50!black, grow=-40] {node[concept] {\LaTeX}} ; \draw [dash pattern=on 0pt off 2pt,line width=5pt,arrows=-angle 60,shorten >=15pt,shorten <=10pt,color=orange] (i-kramdown) edge(lib) (i-markdown) edge(lib) (i-html) edge (lib); \draw [dash pattern=on 0pt off 2pt,line width=5pt,arrows=-angle 60,shorten >=10pt,shorten <=15pt,color=green!50!black] (lib) edge(o-html) (lib) edge (o-kramdown) (lib) edge (o-latex); {tikz} {: style="text-align: center"} ## Bugs, Forums, Mailing Lists If you have found a bug, you should [report it here][bug_report]. Also, there are [forums][forum] and [mailing lists][ml] available if you have any questions! [bug_report]: http://rubyforge.org/tracker/?atid=28673&group_id=7403&func=browse [forum]: http://rubyforge.org/forum/?group_id=7403 [ml]: http://rubyforge.org/mail/?group_id=7403 ## Thanks kramdown would not be possible without the prior work of many other people. I want to thank everyone involved with making Markdown such a nice markup language and especially the developers of other Markdown implementations because kramdown borrowed many ideas from existing packages. ## Author * Thomas Leitner * e-Mail: [PHP Markdown Extra]: http://michelf.com/projects/php-markdown/extra/ [Maruku]: http://maruku.rubyforge.org [BlueCloth]: http://www.deveiate.org/projects/BlueCloth --- name:intro **kramdown** (sic, not Kramdown or KramDown, just kramdown) is a *free* MIT-licensed [Ruby](http://www.ruby-lang.org) library for parsing and converting a superset of Markdown. It is 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 (March 2013), being about 4x faster than [Maruku] and about 5x faster than [BlueFeather]. [PHP Markdown Extra]: http://michelf.com/projects/php-markdown/extra/ [Maruku]: http://maruku.rubyforge.org [BlueFeather]: http://ruby.morphball.net/bluefeather/index_en.html kramdown-1.2.0/doc/documentation.template0000644000004100000410000000111412211563134020532 0ustar www-datawww-data--- name:sidebar pipeline:erb,tags,kramdown

Documentation

* 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 %>

Contents

<% end %> {menu: {options: {descendants: true, levels: [3,6]}}} kramdown-1.2.0/doc/virtual0000644000004100000410000000005412211563134015537 0ustar www-datawww-datardoc/index.html: title: API Documentation kramdown-1.2.0/doc/bg.png0000644000004100000410000015553412211563134015242 0ustar www-datawww-dataPNG  IHDR,-J tEXtSoftwareAdobe ImageReadyqe<iTXtXML:com.adobe.xmp , IDAT b6 @%% 7*8m:ǽl#N6]쾍B|r0,ܢ ǶwQH睼\ Ġ$r1saΡxb]Pu-ksGq^#)*d=KLK{TH'#ܛ@uYuQ}G"i-HRϴKdo9r^trQ}|AGnyY\TBRg;(B?CB7ְ|GSoh{ٷڻD\NcѶ0r9ц{4кI,v I8ԟp}AZu/Jv&˾ۑ{KPzmx6:1ܧ`%drb vW(W ^ُeahbqOjO1cՕ+8;9 Gx?\P$c ѼҫJO8w+kV8nq;I=nw9#Jh!ss}˹Efg|Iޫ.w!S\r(g;Ľu@M$u{ LJ3qJX4 '[1BB!Wkq ndK\;<|J|w{_CbYL'6~DZO\ϴ >Hwº?;zBg TGIl3^0a(=_M,/K#i)IwLnN{>apY4גdUmS fF94 HjO4 'ry'Y9߅ꓹ%Rh]h&0J qK(L$]1J2ŝ t#P,HqElEܫlGn)q|eC݋y$&=hx8-S[DshJT;g=)~RT,zm»e}Hh})jƧ@jĆRT G 8 x(-y #~+cȭ1=O2) tE Ow4wq*J b_:YGDH|,D#cj}4oWTG<1%/C"CNViT' Fa<9DJ{ mg%\!8 CK럛C[z'';u'N.a<Ӈza!!w< cw4y/aɷU4Z$e@q)Aň3YIr)QAni϶O>JF_Ό:{:Ѡ1;BY=9\k t;[ ;Q&Z"=&^5Y93zp{'(?Itgݽ^&Q3$S ^!maQWSS)}9ķi>e ]| a~̕l:fVU)ܻrQ=OC\G\= X&z\J]%jJrw8\$+R_KBR 5aʸ-#0Dƪښ% sEu|j욄ļuITy4GL9?lOև!PE˞)q%:O[b!Y` ׻L6vE3IԐT2 ,,OF8 G%~ G"Nrr0\~sPn=)nr<#OdP9D [zgF&T+Rj,410bZ@I SXV%T kyO!ynD*,0ۘ.N2L iO<$qe-X)WAm MtGK6C=9Rwlm;1 "${Vb :BԭLw5t\1ɛ%Pr_ lsœ~%RWF:X[CEq $'jw }e]C8'ћq^(KLCF#B2:{4Ww1Mn1HG,P]#{9$rxVّf H{ Tߒ{VNM(4%Cߟt1 2_cZ'aק([wΗü\.44Il $抨'Sv| :c;s-ҷa..m?){ҙ$nW]WGg xBhCO³ jyu Pe_C!+MYdvWQ{6MDyW<8"Ց VQ&6B( چwڗY B3ArP[\c+ectD|7HZ`徒bˢ@ѕ{KxD)OV=%TkmP+$90'9^rtOѓ3^>2C☈h#%8"a>܉ :Y,ND+wtY1&9!K8KtEk!ݥFcJ_`ً wj,( A^Va3C\fF"ԂB2Pp"'z c]y\z*q7&|+g)/JQ#^e 5Gjʞ7cnGs $,lheEr Wyvs en4u%_0?7BxV.v5BZ=Smq>rbWL=x5I̗\|91JH#kD{9frCp.H 1EYmg Bt9a< br]r&xQ@4迷x;q5@sv9]`>\jOEWr>!7%%&Lgzϓ ^g3ɹV?B%mCr"^ޮǪP}MPV~2njNaE\Gi? +OŇ*6oWu~JV?q9Kב 0F\[F򝨜FWOaX8:Ku5 M+dȟg<\m.' Y5[Hϻa?LqN:Sh ]Z(C-; ?ѵz11oh[}ب'vpkAr}_zzvV~YƑ(Θ^u5ƻ3`FؾA>`DmՐYOҽuיcWŐw m#bשW!]OƋ|i+Wי]$J.Υ/H}'1`붐8\Ztᰧ;QeP ~YjWIa)D%\)^:yyMZ1@-TH,P9\tQ-$+|G}_,}4xT-q6{N8WL{6UHYVN&bbeW5Y9ߢn>UôX\jVU&!|\ p6MJb)wTjڍJ:2"*S݁RyGR+ 6㶄ӧMõ+.} WEK؞)lӰIKLKJFvg$m (%!E\ %N{!}Q::.\/uK|/ E@u^{s|+<ٚ` F.jȌ۴w@%A%)TWHuj\ 2bdHr;3- 2$H 0q^4^SnkWԳ&.4H ZX1nҙ%/~aa+A\8X_z׳H,nN>㩇:͇^5Xx -u>R(Ӱq['m!b?lL __ӛz?CxlSC?Gɾ-tjg>^,o( +ҋ~sX]czKZ6W'FXp욡ʳ3ӫCbpCJw\tNP@RHO[TM#u)uv%-(hKL1 uPxl $Ph= BK6rRg⚑ x~#f>4{HRh͓3I u2|]TSW4֞pgb iy%p~) [$)˜:D*wQ#X4D[b!mq1إ fW&A"f,i krK3&:egy2w8%yc*"59[ÇvG] gD=9+@өܗ=̢jkXpc*V&tuXsZUNX.!h'x"_I~L?Vȡ*Ի_O 5}7`H5fW՜?8һ{Y0W9 4u)k360.! loIPc5 h!K?Mm.#=Ow =C/^;%wY~0^/G7a}U~Ou?Flg)ew;upr{!ֳb|rd#g?]^,w4q]@eH.#הorɾf%tHu@ ^|l6 !.J$o||P[x$rx,uc1]rhJb!qSW4pRyjd>j Ⱥ׿((;hO;P|/&J`qN! >۝$םzF`|=<ǓYȀWo G{k/Ag q/0MNq^뙸+''<]qc̳>_Rվ# c9s^'ӵ5%^lL4]u@VYք}c█8i[sHo dSɸjT)?|Ij@ľyY@odtpTaq9`c%݈0WhTii6)Oi$,x&UA :=[q& T?b%E儻"DF*ʹ2L;r;O*56QP^Y1lW Ơ4ᄰЩ+A˗5QJBXSSWg=ئ q)WS//34 kE| ;9< Et7DigZF&:AF&[S'mN!>U9L#kU|0N|RC[IL_!ȫ '96;J յ5wJCE:wtZЌX9%yZ!gtQydih0wc Pak;򠡴جVgwoo8tI`)g!l rI!_@}U\˽ĒN|Dp.I!B*zt'9 & Wkb?[;o"ߜnL~^2w(\/4G:O5~RAבϪ~l]{^ Z?s3xrDd{*GqF>\+ c 6+F߯D_zL:wt,ķ3ℬ8B_O3WCAxG -5ώ5Jy+ (_ѽ觏i| <{{ Vyeϊ eg~0~+{3 Q: gﻄ] 68N~QO=l meřoCՕJ1a t[ To,}SN- ~GY==K, \q)%ߞ#$hHgu_~l跔JmwK*k)XWC&P2ՀH_L1dc ]%Kf-h;zPYqGb ]E)4Ќ̔z`'[a'$w8QdxLN.8#l+4 XǓ2~!0jQegbu;đ^Oo<,;!o5œb}0JF:F^2ay1"K|j»pt'ŧyG|GE]E4_Y[GT;N$ʍ[v] C\#2~T-[I1xe+%|oSWZ/ɮ:ouYgr.V'4,#H=nQO Jpn 53HrN2Nh+1cu]*?t(WwXB;,6H9جjgB启%- q$n5E>Kyfc#~= 瓥dO{`Ng (}*eߑg"+G!BKɡ=p,@5!T i/aL}mș(j+>O11#;wZ`f%gvltN-P3+Mu?ӳRi_2ד/ aTlܘ9Wu;[;Z`NB@?yKx⸊oۣ1,ד9wIx#١q5/U)?ɗ;P =k3χ8cv] ;kfo.NFZճqO:ԕ]CNtgq=\$%G9ng6^w>+;~W0]:b[PsI(>_wJg+lPaXVϾi2f|5Nvyvz,ܬ|1I`obEV|:^|NR Lg}pp/ uY>2C)|0qy\ -B N|aWNPq׀e5_ɂfѸ$Ph}3++R;Z_Deu/ߙvЅᥳRnA05L}+.V7s~Gh,}', r9*yRܢJ!fe >Zi‘Nt|tca|Ƅؗ,g~_ snd H0&q2ݙK~LW"f?Ryxq տe.9X{w".œN.P+I+",L95per0nԵ+;ngq:y5{32W>rP}9)C|b>X(:Ot$ Pxo9*rݹüJSэ!=B:artN:򳈺CKm= WlO*؄ԕwCB~ Dq,A2SeK$cHJvf304lLgpZ3?G@T\|2΀ )-XH{ {R!SZ iewa[0G#yOYwbHL.ݸGg^`T~:+P,OE|w =1:ԧm=ZF 2)R2=_Mb!A]Jw6Nre*`.Մ8S2҄? !5m06pk- J[UR4|-mF~f8&hAy"&zuIB>&i" c20;|RB\B`KNǭBz*؊2Xw &ѪTV'ĴDr/<+o *iE,[1 I>"2 2oVolnC!Hg> yZ~*j|F t);hP@WCBjp23}.u|*0P1uMydz/>&řZqV  Ӄ@oE4a:3ut<QCjPG(`ص-|~7;c_멧Z@|So ӃaZ-*7c8Z+!^;RqYpk)L48U ut>b>7C=@;bT8/gg +<.BG8W<#pq -\oݍ1jEƎe>Δϻ6ڮDWvm'L+C~b^OYuU#R[ #qtcQLp]\B\&n $Ҍ[P;}!-N1\ : J8}mZ?Ft]JC88J22,;(MqyERmtp̎Jշ<-@ɐjc1U̵evvDO91=#\*s[Vk _/)iʾ[_!xֻ>&}fs(! TOcH\9\G:l5'B3躋tHbM  h#5PHzKť3ʥ4z&/gg]c) A\# Sy;} 9I#I(~ͮDٻ{t zi)[ֶWrCK(k|Mf9-\r_쬫;6hC7g< *vY' ^~k>g=wq>..g g8QYw; Z3\(G:F~۽֣8~V:+ɫS^錅d^7ցgvS{dzJ]@~g'+w;Jrڽ: %,kCD?,QKvnA so}u]\V)G]paqS ~|Zqzh6sp.L|Sث/.ޏ7y`J~<'[z5Hg% ɳP0UY`7š![wZ 2{GLPAFSa\Yzj3KEgHΦyQW|v }']fr\m;A(L4LaN3D7RpQQL#BϷWvgї5$N`gUr`\n^7SX|`߇m$+sHD)n:=HT{1>9 <'%VXœ@UGmF"tg/AY٧fѴN! tG!3[KmqGSm{kpp2+2Lb߅Ϩkq,&0!lJBP Lh,|BDq@lm%`,}ipe[JRfAVgD摨, 'zRH&ڽ9iÈ|]ږ8jN9Ҋ̠zfﭧ}{Z@wCOEp zѰ4ҹ=N6g&א_$qy);bN5WV/GU,#zC>_ ixK pv;P0/,gP a=l0J!T\[C4;S*>_]9e-8Y;NW>~pBr?X8wh9exWaɧ*z/;Sݍgr!_F.*5frCA; t{85,CB(g!ns fk"kA:D+B;M(Ǎb@[gh3bg@8G2/JNPs$৽%#0|0vf\C9AU嗴eADAe][W04o2Rs|Pɼ /\Ӿ߯_ѸkօCǚsGqv}9r;]lG3]ٕ{*vWgc4Wδf k/N3[r@nG^+\B,(QȻ"ꉧwMY~Mӹ2 Lc9[MJAKHNLJG V@\\. "9cc9;W,v& @ '8Ě6@5rmzonTW֕Q~>z\ރF~Ұ+3yHe0Ȇ@%oMN$FQeX)iF yP,BYsAuF3P&բ+S+^[?|V!{l !8&`wGCVd˲*U{ Ԓe.n5A<ʥP)]*l)h2!^98 :#![&R'Pʝ`vcm2ѸئhKC\?1:aCjé"fvEb1; #7yAf3 @O>j"6n =h !#3yvBU|40?'ʠ#)z03^+_#ܑFCθݍY\_buq?.oRC}GrmTY j7a.7 xJ1JkU $ i +Zt9UZ@22+h:`og3V}#[i6NHIpEw!Mw C< 1Q'bU#YLXi}4Cr)mnS_ )Or\R=&ZdgVinKVl ަa7;u5b ]S_wvҼ+L8Q9O~9Ds3)Ƴ^ՇolQƝߋ1}V!$_OO9#AHʻ_ db sg7U]ByWtSvXѧU{sQCB,- '{Aj3Jw8GWrڟZҟ ah}_ Tc>v*e8̫=|]<7S%u ͏aY|MKШ_CDO~FgQiAq :ͻI?Uػ 5#~` 5r'WSNa=:cK!*݂95E0jH(ؤq6#uM ǹ/=8-H!ԝ (,!}DA,&ya= QctN@l8`K 4. Ӏ m_Hy+20`:R SɕxA=rKf OGe>=cv}%< \w'BoueDLϰ:C@yUtA8 S>Bާa2Hwet&mSWf_&"J(K[JٰzH$琋wOqd/<of4HvV C`'ˠJ6|9ެ>k>eUҼ+DPv \P'"Dq$_ƲcPByGq8b݃5fd'{+lO0]mHf 1F<\-304(e`^1"iX[*qFD\)LҌ&y&ۙćXL̶\+c\B{W<$I"w'qDRo!XP9IzԳ+ eGTKwLDè^ J/֘F]s͙%A.'W&e[ɁX6{rAR;Hg崔 }ΩG \`S)421X;gQuJZYrKBYi()H38 DET75aҥPO' x}ķ&(ַz9J *Cw B:ϥ\j!misIzCB*:g .d~0+LVCp bڗbd]u-_)-(2-N o:$93B/8t"NN<ٗtr6oMU6穮꨾> ~^g[lG}@>uC,緺zlN^k+c=i5ӷ38\A~+ֳYEU~q B~{!KrEÅ4f}UڊvT{WSI;=uLTߏ{LulޟEumӋ>.5\Yg)}zbHG#] ;..v%qmy归M(A;Rn.u?JH^`13[(˙0tbjhWGxa$6X;OS)Noys!ܳx1\;? J`ړ=ׯfvgPϊHPgO=} TlX5s*p] 3ɸ٘l cE?\H9Bjcw ɼrh.'ؑho/2k ,;41wPOP+嬾6n~cJBj=_n>FPIG^Z߿Sҽ#4d\%8t)'qܤ ןWh RjĊ3>@mkB$#(CN`u$AdAUVA gp!Nv!c!ֶHO(䌌\&Qi$aWQ\PKj\Čb4*X IdDX[(Ud-F].:4^(Uk`+:cID+rkze!JbkFrS)MIp$ցgT"/utmJRҼYV!f"{7&ێR½"eIK !U~{1pڒ<: |ѫO1lIi'I.+ҧMܒSSH bn`N!h!z: 8U^# iuW>ޞӣ:bfv ))-S.12U!/laF,[ȸg^]Cu󷜃 F#~{ p}躓k*X_:7W2̻4WY|gg/{EgLv9)T<̻DR|NO 5ql5@e.~v4WVC8(Wmobtvt{~'.]Tui!.6E涸 q@L!PJS13Ł!@PlOuiUбfwBBü(a"7P/PS\)L )qgπ'鄹Q-ܒt*} Tbn67~D:=Bžih +# G8OjRz_/cS]apz)5Ԧ=(-jR_Oc~QF37ΔB#=GP "ZksW&gyU<&z2BVL>1B7Zrr4|zm>9vxUik2];pD:!]IwE(ի}~Fth<%ǔfGi"pM>xhz`(.+0F]W.N~|u%O^k s\r?~oXV;"TJb9W-7Nsliݕ\OvS^k CHp0Fo9+Ҋ+CZ0NbO%욂Rͅjt  UPaO -Isj@>Wg%>;=BZʑ(1o ; bn|ĸ| Im+֊hQ%PG`9ūJSmj68`N*u 5flF-tĦ B61mzǰ.*ƒ%@V; Ox)8,7 sf$S^H杤21@,a(0?RGEOoc yd]?p(5xc(! mEA-ޘ2R; ̻R$&DkvC[:!N"` I ;xnSqr)J "Im*?Ec$w e2r@'Q{*]HL/ '!nlF@\Ⱥ)o3@v1lOCܷW-XW>@tϭxڅ;*8LmblB3w,:tԽAY󢎚AwW9Bc6䒧R(]䳸O->&c*N{j VY>8Wz)ٱ4?U|~7bC)5]8\i_J̞$G+ L /y+"O|q!WZ%C?8`C|LOѭc:#5crb*v?)]}}f>5䵊44ruG:k'?_Q|%-) QKгCwHPG*h!BQ8gW j\3ʳ4NNآw._a,>$B(B8{I$%#\L5dS)_K ꭓYòg^)qWaJr w(R^hjRFɏvgv㕯K Tͨ^e9Чw;;Kr$3"S#xw.JW1 vnWR{8gWv!r2R@JP2[ 񚨟JT[%r8*' £G4M܊f}B.$,4bT e6ΟH˧H-WE[ 2Bz7Hۄ>I !W$ienp]D:3/+'T&_>xΕPlRb^&{ސ>[@S{Fb^*szH pD:<l) >UZ$kU(QS9uA^{ ep%w=$(i QO*jL_ zN 6{c߭eL?JkG4{WturDg /Osaf b 2tuoJŗk[gV`lGz62׽G.7:-k3dt-v{Sh}$RZOeBS1.gu\"Me37H./4_\vķϿ+pqVyFa9ueC:Wv"gbNܽ/s-R)FGTڮGDx5|bIyUquq4Uslb. |ճ &?T*8{~"7-g1CcjEr/TW Xk^׺2/3\gb[D0ޛjyƹbȯt]5dYw`Mҏ <B B]1ht) nHU.ƈ>_i3v*IKOz_eLX5UѮFȲ?gxɚ)V2#( Kr*W&r/OAZ+^H2ښ($O@< O1ЖLPW:!'<`3]M24NZn"cw rC`3Hkj&63YOY;)yK訜 ,,ɫm6 CdO%.Cbك)o6c y$8杄ر^]xHC5CjT 7bLJȬX8};=/Ղ6Xzd(@2l;#J to "ڄȫaz2G0uOH@K%\I.`g7żz5I:RBvF]@ J\ OEI!xf4 >9$='J3`DA]  e/$7NהA'5mGx,|eeT̑[(ײqk.*NX@'O<a\DCEWmՅ&B=ﭜh%4zm` 3P:wx_CCnr]jQ~Y#,HO wXiX9ӹV?^z_ԥ+všh^pV|>*war-K.εnYSȣ9(ťQQs}ӣߔo.a|R^;ClO(I8k ߉#3w<#gH{z}j׳/ﭼqZҽ9|M[gdb k#N^zßN9z/+ÍbpN>6y(Pj6}Q-^[0 J.a/[O˫@yW߳g~O g]{w {3*q8zD}+=QƶDAw@_~ +Tu5x*G_OW)xE 釄 | p $q d\Ypɧr~'S=Re`TX6;ao~"4 u5A ̈́srdo)4*j HS.iϧV8J6<}]ZHG1},IF`ʎ0Q)"wkrU#d0E2يn`Ub3AcGL{P8(X;Z,W .!'a; {pF ]IUAJl SȬ,IQ(5,, qGIU>IF IPJgO@d=Lm[RJ.g8ʠxݒGD@ّ6x Mկs#;%=*A|QB bi쐯ne.75 '1dHD:`LmRQQj=y2)AITWsʍ=iPLl!4bC0 k23[O>Hj|L efҤ&o8_CśqwqEFs3'(/ ]Op+kY5S~hNv|'9&miPVrUE2^rj迍"uw= %˵ȡo u5Dy^;r04^SL)Hg}2ǵ;K ? i>R^__* U-fpa޻J/$wSE.xm)OnG2fȡ֑!W\o=&wMF8O/r%$ҙƟӂή˂K4kg%Bm6>\{܁{<*5˨W y>5H6j*g:V;)$u-P*ð~$sW4V1\ˡT*\OG!Ѡ8oyi E߮6:Z5z{1o۽}P1Ő\vz_5%kcGy."Ʊ5p5te|{3t!w=Pϝ`t#;H]/~綗 ?4&t{X#ȑ􂢲FyW3 sWHg[yqLOqnBh|Dl$4Oo:vN5o= #z-Aم͗C&jF b3j:ˬO٫ 5$ddˁ֝h8iR1E%GT3 W0\ež+0`G :q߉VV+!ijrG vDe1PѷBZQ6~ X A9'A.:~֑5O -:( GR,!_W`@jG[MCiܬtJџWĴM&98O iK+6;Pj^;AgFִb ChԨKN WARP*KE)l%*/66ytd(rZeeB,jivY{<}˘w1CF詄KpA)0?RAaFw=b  H-s9'BwԱ bPL 0wg b #C@}O:jquDA jqz`{g2dNPv Qs]̔KaYNwHs'0` d6c#|~=7P]wrϮ-|G,v_gp6Coiőq E$>edKkKHa3H8NS\9y_RuP0!&Na*̫0 _z33*`xγDYWO}/JۧO h: ~r /'?;Dhi?xO0Z:bW qQ =xV׽CNC(l ~mov%t 띝b(n1zzS֔\pU0"_Q+Gɡ>byO _ 66n k$p]^Z09fwZz#L {.ˏ/`OǐaCT@X[B̡>\:Ί՗gR(%O8wAŵDɍg_1wi6ql=.vg SOiFk!fWB|? HP+(q ܇˳҄\V NGq [s!\)A'Kc0C50d:d_3UylWHo zpi7Et,)Wꡠh'TW AПJTv@*rSŖAPE1]P< GxbZkC`+ b+Dȭ/3bZ#{$҅rd* 5}/fưQy)G|)3;˨BAX&1a*E8ffeKuB +a(gr+aiĢ;:bb J'eVRyL ʀ"Cq^_QOiD|UVgW=8x6lXԩHG!Pp֧ఁNhfɢ"fc`NH̍|{[*2u^F›]Y cnW6 [uHa Qn:"'mSJc2zwNIA@5YC1Aľ0>po8YŷB$꧵C ]xH' SO'8*VbBcF:h-/숨DO?%5l8s<( O V|9hzwuM:t搚o@p]#o GwZ$rB)=C*?ySkf賹ܳ Ղn>lkd F.gm\-Yg3!~o(sn<^=Cb=tt\w'gEW=*PBzz}_"Ͽ09/>~RA=>}D k_((h;[:O jm\z$_̧ȾmV|.rhUq*S{dP[S ] u_E SZE/>yOye|@^ԮZϣR]qԛ~ XJ~p~2F U9sc`P)9뇅W~>S.dIu%{PL6W|ehzk8~9n#%_41SΘ}=؟rD񻐢#j%cy{'%{I}z}4+9#c]M/(+R}V^C*ʙb69qeBѬ|S(2+3RlR׏Pj/g&|gqߋp 0ߓqwR x+Jr\z*vUy1YY_縢k- k-;x1A'!.Zث\Άk+b;zj,@JaXsɥ8kΧr 0vdL5DuMҙk ?姩0ZJg#K%a.M J9. >諞urεAۑ=`r*}0=`g~GXu~R]=C}oQ$o9ZD;ttFpvpƻȌ,w#pA' bxE w2 ڕ OW~'.c1q'"hlfC l'!1>-8jΗE(@JPm52b@ 1mz>5>RPI{{ Hѷc^w |'wmIDQQɕS7Մ*٪RW>'83QsU]f :FHJ`I2Z%CpЮ *q%i|@^_ S|b/R2=kPTК+=GmTyUmә%b}$g>V/,doOZAƸVF9^X`\,4J0K_%oF\K0w"'Dj.ִ] PK9le.3\j{R>w}r?O>;ԫ*w{/Gܬ¢rmGy_y@=ΕF\Rdn*|:=|N0z!e9k|0f*y@n]]4ʔzܠH)ad.PR,hO/~F1@4ZUк#3+evjT̡CE< ~Z85FH{Z;lߑ6<˧[T<żLXzN*kaHHoњ("XЦ &ӛiuP2OU1YeEVɓZ/h1bCiDOh#sl]fVAm"M9(^}{Lfl+O?ĜLQs[V| GuLbN+ߪLrHKҘBT y*wyAd'aI:ZbU(HjcU4)?)?lC)_У5Z iz\ y*]=&]%h[uO2L iex;NЏ sLOvc 1naX LEɒxn.2O=QAFd/"X9߳`#9PF%̗2&UΚ}a ʣ"tDj[۰0=wJuS[%`sC[0+T0I"J T@ Mts H+o5e! [ w :W\i`dȉ0FhklQ30tgYH. ڭ)اBhP ׺lt7;l(k .߿+DyK^/??Ng+6Pi#;.\`C.wBYQ{; S쭸:H{9r5f*ߍyt"sMI)a?]n;Φʽ~zN hk(Q3~@Z7(%Gb$OXB[s(W>qY4 ?i=%hobe/F}*=3_NdKQ]N?wӽ$VÌH8fGkO.'kZs䆨<aae(? {!zk˿4( 8C4wFRqznB_?nK{o^N^ؗr OzS+H cW4~>́HnfȐ8~0>ʛ O&lͨ;qVy֢Men=fJea:R2]!M#tСQ4ɼIZ$esie(ؑ*s}^JXx r qͤC).!mAĴ̏jKE2w8PPp$GɷFJpK$15.H i X̟1YCSh2՟Jb +3s| `F~/HJz&2Q+#b숳UR)TSeСB!j"I큟y5GCjģ,mE6{r7(D&q@M֟@~7bS>BukMcXl;ŗbe^wdoS hsj󌀅vA?GHWMulKfH09 qh->jHW<~&(:NzKn0/?]zoL:`O~U_9P;]#X1֑^SJ@$IX#$qZ?sϤW `M_\~O؋{:9wQFO/Z?og'ߌOs wo:_̎;.!:62*߁Z]w9Z~kxT39.h ;-XyV_;ʾ@Z`|98Pa]G_%"[r ~o.X<ztS-+0n0/nfI!IT3s޷!qhܟx cu:+IYZ62"=Qٕ!W:dzXĥ1I+EO+%}nAQagڮLٌ+88f'Qo(}*lTz[ȟ_CȞeF++Bw1@oO`:Lm ⌞Q>WAƣ pɈ@}~%M`>$#4ָIx$YUڌ! fX+mCr<,o#I{Z#T $*&Y(y/${ҭRWxj) iO 'N3ԟ}u`nS\!w TCid^Ľ+IH꣐"NOў|[h+a,З!= =PҵͱKvrʖ&I*!s9=˻@O`+16y盩Po|vQ}?L*}5_?PM4&{0(&NCԫḥwx:3t2BfҔ{O՟5+xﱳH[_*o,Bg~{\':ՑhcHAW7;]2\_.8 \~+c*nec[܄<`3=osDK[ ܭ 1vS]2_baN85 ˧*gj(gp{i/"o=#Ur5WB4G)dw =gB^xJN3Aw/|U$Rt^]>7zk|w|;9.PO 泃UZ}P?+d&oSpRyKԽ-l(ƶ\0}Mx<#9|o] h;kaaaO2^Сx?? 鏔.G julťJ?%$,da(πZ(y3¶Wu6`h|f2|FBI),bm痙uoEΰ]#`7gZ7];dQ4.o'ϠFWaО81*GDb{KK#6ŵ5 cn@%=K M\Z+Bd+A+S,`R _d㑉<1Ejxh',b$1qGsIjxG*F/l (ǹ",3Bd"㤰LrlL}=fZᶾ1-fd!m dC4*T{ $RHW% tۧ b({20eDU)mwz X,bV[L?5b @=yWV B~){RPڎ:Lr$nSƵP?Mu ,sЌWMcGOed'4I6 K>5~ᛅ(c\ݨ<([uNÞ )g+ 4uGӂ9L'yg40n?1Drk?Z58J3g }4W$زB?3\]biQ؟$7oLiPk^EeuCǮgEv#Y^qvwOw9o[%|?p9(S*S;z2xC_%^l=tvJjjNCR⹄e;9Z`1!JZJ ݧ0P{o*=I3U^4}{#_Gov7*sQшOkFڧр-nnwG$? a?nc_{ײ??⛈/J2rz<'a[O=O =`^J}8L:YrB,i텔<5)btٌr}BAE4f8 j@\;r>?5ȭ!80U(mKZl9-H0 @_L$sy$Z 'Z2㽐GIPF֜ =źu3X QDG|[ QVF9}8nW;RoF#LH]uTB}~秒팹J50Ȫ`̂6͆g݄@{Hl+oqr-BJlO A`J}B:;- 㢶aēNi aI:grFZҖ~P.gܔ@Y3ĖW XbWCJLܿe3!g,Wr Sco{T^xGS*<-Jxg% &-)A<ӷx(0}3=P߿2v#O]"iԻ1|s>G_Ks)A oۇ_굖^YX,؜^ O$|+s\UrΧ!wj%/S0_\rw^<' oYsm-%LShfKI.uBrLzUTW0]ʀv+?LcL@Ӱu,@wnrեϩΌ+>N0Y.gR7֊L8WqJVG?|ww|=W^5 -{QX3`(?2:3+}RH47 + r ':BݿJ ѷw^w֚.;00$[]|)\s .}'9Q+[S^-)Sѐ$s[f#nw-R.Cfnxij yN|ۮHh.͆ԃ"W+f4ɯbX.hOӘ_yO> ]6LÞ1llR'ǾFBSb^J FыǾ Q&m-A@mLv>L0teuOWLmdJ(@{xP~RO8 gY;p;l$ w<Afk!] R0v7΂!Է`]&3:kDlCҊs-ںDX @jjΈ}x 9+ Jg !Q֒eBD>GsTfixX5|u@B]N mȖu^X{ec>'jbIA-K; ^HsO=Mb'ri;r8 MiC6i a 32dkPE< ?H!m:fe0 Ho덣+ b9Z9=ԃc-_|R0zwKϻ݊u>#XW[3/ *YxYvmFtmK3@LOkǤ#[&_?3L GY7,CK?ݱru:;ݑy d|56r/5 \2ӆiW#n]J+礫``GQ-t;J˞ D_ow>Ohxqk>kDvkQM:~/&CjrgWuU_q[>?%l^˳2_}wl{//e0ɏw̤kO5('ފ`~^;'2ثÍ}AzFai)@Gܨlw!U`ܧ1G iw0)Ϟ}z1Ndox:O@,1aQ(>R/>EDVqwU=PyZtO s_I"^>S|7dރcS/Lϧ5)O3HUNqbáz֟εPK)"KN6 K7"L[nY{xcoK%`_`ea$NCj(>a;3֕gՅWލdZ(PZ%*SC32?#Bm]SQ1'(!vH&IA]N%TnH癑tZ ld&s_ muLX9H7<j(ӽnI]Jՠ.B8y앟Z^K䟏@s`;s>.\ i+isg[QF.!v>ŕ5P9ůwœ(@x(-U5)?[2Q[,K]z,n' kg`1P4̕e)/vZzA%t|r tCaCu"Gc.]szp Z5|H)D*k8^cd7ي-|)rWr ӯܺg$GsǗG_}規{B<ռ`=JI*JcW6-cF,D]`e |gDѝ10b͎X$KlAۃt <@.+ Rn`~{?u`>aSZXo'7kN0P:+4VB+Rr}";'٧ݚfM{`xN,4xPFL}ǧ{W1"PO!:S]D 'Y‚<Խ}~NTg +t.`DjBO Y'$i\gi(@^a8r֛!JD`tC*?Y$} #P}&'li>)b9Q-"ϭ)j(%|< +d;EMkX%t,}ޕJ:m)"}))q0!T 1ۄŔIjAc4;J i6+*zgPyw)ǢHjb=9Et"J<2i5+Cz7Γo5;l-`2p^VckV VkDB1Tt֘?[J/AGET݆8Sܳ3!@Y ܇ƞ+\g49 - q$K%IDÜ+ϥX@SΘ  Nx=rَVa$l'yț%AnT'ix "듹msrd.³c;%mW[.Α)E u싺*@ zC%#I2'% `{]`-2W>'9ٳ *Mn)Dnsu]81MWŋ$,9h?B']RT'%,ƺM!PQP*9 c~nV\>ϩjIbOXG}u] 1KW9G(ngCb\[xͿgR>{k\V$nwVW;< 0vw 8 ivqssO 1pygб7m3hޞ_ɥ X||z W6@7tSuRx&qrîJ.1~^O ;XyʌpwڃS|wj^‹W F2V5yn $43-TEWFO@WγQ}&I~+%'k0OǼ1]C pU)8$&r.y5V.绅  ծta;&ui!VK[{ռ5$?(-R| PvSj`]0M0"Rc}kUJ`s-}_U)Ve +t iǴv RM=A#Tb6ߑ(R >բ*N'⹘*:"Lq4M mVY.2ԹX]9r^3&F$0w'd&gl ܎;iOr`;#ZB-jXPe7a]1 iRO P`oQdK B4"c \/agMBlm0;scb]mӫ~'NS 7\ >Oũ;DK]6bۅ5쒽%Z- M^q'u\[mw:իL7Qw[qS!wMv}wMދL>lk) ;>?QpN”ݸdd->aI;}`k/bS6doCB%[*uEAA.r?.Jh)G;3y5ߐL_(#`1h;q?s}A)=|=hBdQ+⸾)-C1Z5@{kr6ZK!SDj}8 Y{M|MgPzLC3D-!g.c;t]4ʧg>l=}g~:E@s O%7x]D'ͥ^H*.:bwz67Flrds\|==5r&SCU?px({y?3H-FHՠf)`f]ߌ%8q}fKR{* UkS˔=C;VV|麂HQvD]Њ +vqV7ú"] B ҁ0+ RyXo=arҚ;G`4'^ "߆ړZf"O{hUcb-xܝӝ=xdDJ#:R/F"!ӌ*8xD-2s=(a&w GdƧ@:d֔{)1VAڠPBC3`H˂Uu=DJDoog1":^FKq3G' bFFCh$U"å3# &2e%ȧ܁ka\bLw  i aVt;R[ޑ+x"o\ s3mKҮθ8[>DW77fhsvevLX8%wA]HGT M(a`za'{ ;y6fvT)˦1,(.%Tovam1 XZ^ALA`+d$=*:9 df=\ *JS?E2j=8V[ަ=S*]ϲTMɇXZzɵD&;ڞlAl RϷټvYVg?_ޖLƵ{%ބHRWW^ u$cwBҳ\90Rެ˫9>p[r oY!AGޟ6`~M ӟ >׏L~b+]iZ=aX.x`gؘm%wt(^6}(Q́`~MՈ?ϰWY^jVQP=3 s&3 #oM.evxǣ_R<ޣդՑ#˿$bkD Yp!fm bqPhtj.e'M1L齍䑰GWzy;#@<*@ZJr:3Q~c2'u5E^:E€l`gv忍^-cr`fv7XHlm)6|F6bg sh!{i BZ( 7=#zro&]̽c>wluK86髋{{`8XCrԄj@ \>ʼMTjm0;t&-gOucd;tQSAr>:A=øNmķ1|}#\m,ɝHm%3iBŕ=G s>Bʺ3N};> Gy>%/յ5lsm"3U^ٓ a Q a|  ,k+WHkWp{VX[`rȦ_QnU EO?%rh 'l\Ax.~iK&du1[4غ&i]︋Y9ϭ 5o iwac؄!J F9O f1kڊЌPeN'tTMC<`mDʘFĶ-XvzUӰ6D&!Hty,T\Je&WӷlPE]f*WI.=V~6&G͋G$#AAF+jeԪ.4rD =bT(W+q"xi˵oMZD ^U p*.'Ww]rij=!dn6!,r=zSοeXpB.5BƼ0qrDS M"y)0YFn}q6SNϊ'#ݍ\#[qX*pR#MȺIiWӗil3l8wsSm&~dC)fhxƑ3=7ǹ ŤR,x#wcIe~Mb ӸDl i^,x;wXQ3mAgA; !N7FMr=~l4p3|ooyD46?o]8V]thv";O庳A䈫Pj;n3+&y<q7|PbgIƀoL?7-#֮~z #k)sM=@y2E9$5:"1 jYL ʥCWA!TzeR6tdpZbض܂^qyŀ/Rb**lRAtB]ӕLBD ! T@ ]b12@}iȴig!_]s99 b[Q*VEd, 4QRZ=4g6${kC&YwljθgdӻBYo& \%ۃWx.1&yg[=r@ Z>a\o4kG\J+=b38uKV x11_K]M瀘$s3u'ͫQk6j#clb-=,66ܗrhhh 0r=H JOF)QѰnJ&+ԏ?ZhJʚ`CG ! R Ⱦ{W9(LR;z l${CY b\ rLqOYO㖠hȜPiBk2 {5KJ.pql9b+`HANWL'(V9PSGwMK 0 LVإV봍[һ+{XFcV."2eR312;`ϐJp7NOD8G>U.!Pp!7r0sa6ܩhD̋-R" Q9ͩ@;">Y݅u.FR"#pWbXp9NQBo, dJ9hE‘># 7ǟkpjc? o3p Ƅ#PKJ; =Jx:g۴ݖ%Tw>dc&Ό|%Hߔ.0,R?ņc΀|6$3>A8`uAx`R' 5Y޴6,ktl7=Lؒ{Mahgv[th=8fc3ƣ1K^rŰ>(.{2d[X+,]'oyX>Y1Ki6BZ8#m0l.p(J\6q:2q-U,6j y_ y c;#5v֑)~73-]oI\vpQuthnJ--鵝~u(vGAJgnpFF(|rx9IW1yxWm>P) Mv龲 fw#37éu%-3թb_Scy:~Uh C;wmt=Qo>_39s$H'*m'9ڮ?⫴{3"&>BrL:Ӎԣp]+Oui_ߋc>[FWSɥ߸tvۉ@]rx'V8EG|@>ڝCoy<$`w߂ƕLP<%83O g%;i`Qwt5`[,<^J9q]'ae$wieѩkL0BIK=|+rsH:NbJY%%S5?uE*DJ03sW X:\_IwfA &3CijC G]IV?&"Ѹ~>xi 's[^Tb8wCGsE̠Tgu/s8ˇƎ<õsaz.cXW崔<+9|*G> Cn.~?z0ݕV p :XԮ %v)z]z*C(\YVx>ItkաǞqbGn]-aK+x[9O=м1+;@A(aJpm5@#τkyP"Www'Jk=Y\g\7ؙx(keH$*6_3)bnb5mnVOܢzo,&SMSm\l^B@u,C,9=7[ȍO1X]6]e (ÿIZ5s'(;t' ^APw .G[8N`N#1;\`o)JOx}jǽ).0AMƦn͕?tz~M)i5}ȯ{8Kx.qKL]2a5=hDsVlBu-gC^_L'! GiC1^F&1+ Ri_,r3䒑ֽiY?ww2 bX*VG]8jl7j5KW-1"^F_aLmȞZ_l7 hz$ՉZLU[*:*S_>욍W˳ DmS7z< c5= NM6]bG?R6 "2⯦bm %r.Fࠂ^S/-­3zȇ9qؖk4UKgTǧC×b1 o./MN7%+=9*Wq J+`zakT-C>-np _K?1#,Em6lI#b4Tl"΍q3#'i <x@($?A&*Y=$- D\DL2##S(u3r`FqF^ Iʈ&>G&ߋbO+s35A:k-Iv!RȘG%tV0[6plw(&:nMMbh-y+&E|sϧ!u]2Cz7v)ꑮLsCC_kPW;l\MsF=3%Fo(֓+* ;\`dWΌr_ٴ]?b1c6Pw=1ud& cz^gl/)Iʶ͈nh1"t>$X Fܚ 'Шx-Y=Vᘹ?ńl(Hr>k+80SфL7qgS3'jg׍"Y~Sbg0 J!io&ڟ: 8d9'E1t T^Ys}~LOW@|C#xT'g5{HI)bDcu{Z̢ef=j(BUZlY my XczPcҌ'gtso/=w:r4384*#sqzTVI/ Ogs>an:KD쉤8B$`:TL6 $ڧµUb?|{qmVC*b mv!ngyݥ Ӝj*TO7oߺy+zgh \9ض啓ӵ,G0lCRm`I"ld!`tj-Ji2uO<exˮMtG:<y0ඓ#g:(ZNK ?G0-DpWKC;>l'Ε]Gw ,O)2zB8b[$K筰Lp4~8}Uˑ)Ws.[`b(@̖.ڰ꨻f𖃩MH}J4kڠ9ws;rr Ywې_txL}l7oԧۗO%6G&&9H MQi6~o Y5H,;Q]-rc&p͎]![#Z:OMDiE>S*g'hCY͚N1w4y6p26ԤO_o5.D?:x[]<[FZϊ[M@z&HJJ.5 F@j Gw֌/pTBq|N'FX՝(vs6%q:Dbu+t XqJimcCQ_X (]ZD nC\^85{~ V*N i u1qW'Bu-cP+f$vg\|!hfwљ QW8 ^B7A=DN`FOHleGdt9!JU 4qώ' Q~*ཷia_MNrG(l{waAJ{u&e8[da5FӟmP .AYNS쮂iD'QMJFw0l0$ԆĕrMVifbro @bgH;=`UCk >`w;rxTg7Q*Fmh pmah4ݺH;xgL~Jȭ w6m$4o=P}ӣO#xygebӻm&p\ߕ2W'yߜ#w]g*+3-VɚC;S;A挵eݜ9i+C^ݽΕy5DI824r; DoN^^M~0@V'Jg vZ` vgúֻ nFS^yt]DtWs;|E:$&w[!0We7|[i/A0,cwc_8OBl װ)WR Unak@^ץgtǹ"gubq%7 ߃-AiU  MHkNgOE.dܿ ;&~egy#e԰OebWܓdrAh'Iz|4>Uh>|B[I$>BuUϤ2${5֘m#I+G{}F؇1<#w=-PlÇ̄p5Dbm|0^h0\y1LL%rKh_Mh+pĤp^'ɨޓBMYJzj;3R;#j?OV=ٞ"}E0m6t9루UbyX idNXv!D{<RKn]}~';IP'ac5Ihx!:sV]=Y@]F6Ke@f}Ve vu&;3Eq@O5M8ڼJڟ,ĄU Q;nf0%ctn؇;UO汓3;RXn >vWdȖFsL$@Ku7Ddrzg-T8hTvv,< xC&kUoА׵WOtG k H;^}U`kWgkx/xte{83J{7n^Kԁ6C^JbO'i:M͕xrK>..".E6Kwx\Øz盘oL!]e{4~G'gמ7О|~-K7FVO5ΰ?5^ jvarr|ԍDI?t_{8p- }OxeϮ-?J{:aW]nq߉A@zec;=|\'3N:sw0kr>+y\_w{}r7 0e4v&T{TQ=r+Em(cVZQk W|:Ӹ:p.K;wxI*=܇_o}ͤV?+ )Xq8i Ӊ|8ɇ%6KXqJ{(I*h+@]|1J%>XG)]V '2ώ6M00bS 5+ٌQ0QUG !M,xY9YX@Ox P w'mLq.#Pfvg2Ҁ(Jd7S@-]ɴtXTs593Rl#c л0]BAjD -5Jz8}I2wl"EWD&ʬ_wA& hܳO2!LLp l@zfұq&O |\~:I4v WЎQ9|&sfmr7r\ %eгkty|?NosxJ`{&bU:y^qLz,JFدfB߃}z-i*z~7b̀jYW m,Mk3( 5!.p+ўwtp*fϴz!Q<&Op]uN[, NNqJ>\}l>FkjD^q@5ן~;8OPXM醱4BaE٬XUJenӠ" 9Q⬡U!1Ŧ[Ih㝩WzTbjxU)nƜ=:AV* WgJD5F̢t tɖ̌%PG JMFPۅļ v@ԅ 830u/g,8aDBrq@Ѷ9"3I 'P> }e2]-B=8}XYa'RԠc:!@;$Iqf䦣`=œPudŭg]eNaf6}⟂󧰠m{Dǜvg-QAϭ`+(( 6Lg!<Akʯ5ߟ{H2?stۋw{mN;ȴljW5<3f'Cɴ R+W PjWNy?qzY7g*?rIaF>|;aF߂47vY؟r']f#WUYF*\-4OsFr~O._wl zoY_To'Ec e$_`ORz7?\7Gc~jg%_U=nFwI_Kk(ο]h!]͜^ 2+CrUMk16Woח9ʸ7 ʯy==tuRӝzU_%Σ][y'BaW_Y,oʈce7UNvӢ|G/K,#p5G7NgEV5?Ѐ)A\ޝt@Eidg?f*n= Ii\}vha-#VNCZ죁. ]+&TO)1gG\$|&ЬTvE|& $4j tVYEu&.N$b]@H!s<6ʜDp@L#'Pۉ!cN3EmbV'˘z7ڈBJX:Sg",;s-B\'; /d&ȟMk)(eB ԩBE6ٻL3yÿ)%T FFz'8/sBHa{ hyʏyrҎȢMdLa~,U& DS05OaNe[ Bg\ UPvZߨqbP+XqQfƯCoJA<M93(c5Ȫ ِWԄuHYm^!8}3Њm 5 Bv#8PpUpzw*V ̝%Aʮ5 i.$=@} >Y .b8ҪG22<泫R7Z}.Ä&9IENDB`kramdown-1.2.0/doc/tests.page0000644000004100000410000001165612211563134016140 0ustar www-datawww-data--- title: Tests and Benchmark --- # Tests and Benchmark ## 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 suite][MDTest] contains the original test suite and several more tests (some specifically geared towards the extension of the PHP Markdown Extra package). I have used the latter test tool to roughly verify that kramdown is able to parse standard Markdown. However, since the syntax used by kramdown varies slightly from standard Markdown most of the tests fail - which is fine. When looking at the differences one can see that the failures result from these differences. Besides using the above mentioned test suite kramdown comes with its own set of tests which is used to verify that the implementation matches the kramdown specification. If you believe you have found a bug in the implementation, please follow these steps: * Check the [syntax page](syntax.html) and see if the behaviour is not intended. * If the behaviour is not intended and it seems that kramdown should parse some text in another fashion, please open a [bug report] and attach two files: one with the text and one with the HTML conversion you think is correct. [bug report]: http://rubyforge.org/tracker/?atid=28673&group_id=7403&func=browse ## Benchmark kramdown comes with a small benchmark to test how fast it is in regard to four other Ruby Markdown 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 (May 2013) ~3-4x faster than Maruku, ~4-5x faster than BlueFeather but ~30x slower than BlueCloth and RDiscount and ~100x slower than Redcarpet:

Running tests on 2013-05-08 under ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-linux]

Test using file mdsyntax.text and 20 runs
Rehearsal ----------------------------------------------------
kramdown 1.0.1     1.010000   0.000000   1.010000 (  1.014665)
Maruku 0.6.0       2.910000   0.020000   2.930000 (  2.939359)
BlueFeather 0.40   3.890000   0.000000   3.890000 (  3.903594)
BlueCloth 2.2.0    0.050000   0.000000   0.050000 (  0.048246)
RDiscount 1.6.8    0.020000   0.000000   0.020000 (  0.020237)
redcarpet 2.2.2    0.000000   0.000000   0.000000 (  0.005038)
------------------------------------------- total: 7.900000sec

                       user     system      total        real
kramdown 1.0.1     0.850000   0.000000   0.850000 (  0.856454)
Maruku 0.6.0       2.820000   0.030000   2.850000 (  2.856139)
BlueFeather 0.40   3.870000   0.000000   3.870000 (  3.884309)
BlueCloth 2.2.0    0.040000   0.000000   0.040000 (  0.044865)
RDiscount 1.6.8    0.020000   0.000000   0.020000 (  0.022889)
redcarpet 2.2.2    0.010000   0.000000   0.010000 (  0.005234)

Real time of X divided by real time of kramdown
Maruku             3.3348
BlueFeather        4.5353
BlueCloth          0.0524
RDiscount          0.0267
redcarpet          0.0061

Test using file mdbasics.text and 20 runs
Rehearsal ----------------------------------------------------
kramdown 1.0.1     0.150000   0.000000   0.150000 (  0.154616)
Maruku 0.6.0       0.690000   0.000000   0.690000 (  0.689874)
BlueFeather 0.40   1.000000   0.000000   1.000000 (  1.003185)
BlueCloth 2.2.0    0.010000   0.000000   0.010000 (  0.012767)
RDiscount 1.6.8    0.010000   0.000000   0.010000 (  0.004747)
redcarpet 2.2.2    0.000000   0.000000   0.000000 (  0.001594)
------------------------------------------- total: 1.860000sec

                       user     system      total        real
kramdown 1.0.1     0.160000   0.000000   0.160000 (  0.155369)
Maruku 0.6.0       0.670000   0.000000   0.670000 (  0.673886)
BlueFeather 0.40   1.000000   0.000000   1.000000 (  0.995874)
BlueCloth 2.2.0    0.020000   0.000000   0.020000 (  0.013389)
RDiscount 1.6.8    0.010000   0.000000   0.010000 (  0.006698)
redcarpet 2.2.2    0.000000   0.000000   0.000000 (  0.001691)

Real time of X divided by real time of kramdown
Maruku             4.3373
BlueFeather        6.4097
BlueCloth          0.0862
RDiscount          0.0431
redcarpet          0.0109
And here are some graphs which show the execution times of the various kramdown releases on different Ruby interpreters: ![ruby 1.8.5p231]({relocatable: img/graph-ruby-1.8.5-231.png}) ![ruby 1.8.6p399]({relocatable: img/graph-ruby-1.8.6-399.png}) ![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.2p320]({relocatable: img/graph-ruby-1.9.2p320-320.png}) ![ruby 1.9.3p392]({relocatable: img/graph-ruby-1.9.3p392-392.png}) ![ruby 2.0.0]({relocatable: img/graph-ruby-2.0.0p0-0.png}) [Markdown Test Suite]: http://daringfireball.net/projects/downloads/MarkdownTest_1.0.zip [MDTest]: http://www.michelf.com/docs/projets/mdtest-1.0.zip kramdown-1.2.0/doc/links.markdown0000644000004100000410000000041712211563134017015 0ustar www-datawww-data[Maruku]: http://maruku.rubyforge.org [PHP Markdown Extra]: http://michelf.com/projects/php-markdown/extra/ [Pandoc]: http://johnmacfarlane.net/pandoc/ [MathJax]: http://www.mathjax.org [BlueCloth]: http://deveiate.org/projects/BlueCloth [RedCloth]: http://redcloth.org/ kramdown-1.2.0/doc/default.template0000644000004100000410000000470312211563134017314 0ustar www-datawww-data {title:} | kramdown
<% if context.content_node.blocks.has_key?('intro') %> <% end %>
Copyright © 2009-2013 Thomas Leitner
Generated by webgen
kramdown-1.2.0/doc/syntax.page0000644000004100000410000021422512211563134016321 0ustar www-datawww-data--- title: Syntax in_menu: true sort_info: 10 --- name:sidebar

Contents

{menu: {options: {descendants: true, levels: [2,6]}}} --- name:content # kramdown Syntax This is version **<%= ::Kramdown::VERSION %>** of the syntax documentation. The kramdown syntax is based on the Markdown syntax and has been enhanced with features that are found in other Markdown implementations like [Maruku], [PHP Markdown Extra] and [Pandoc]. However, it strives to provide a strict syntax with definite rules and therefore isn't completely compatible with Markdown. Nonetheless, most Markdown documents should work fine when parsed with kramdown. All places where the kramdown syntax differs from the Markdown syntax are highlighted. Following is the complete syntax definition for all elements kramdown supports. Together with the documentation on the available converters, it is clearly specified what you will get when a kramdown document is converted. ## Source Text Formatting A kramdown document may be in any encoding, for example ASCII, UTF-8 or ISO-8859-1, and the output will have the same encoding as the source. The document consists of two types of elements, block-level elements and span-level elements: * Block-level elements define the main structure of the content, for example, what part of the text should be a paragraph, a list, a blockquote and so on. * Span-level elements mark up small text parts as, for example, emphasized text or a link. Thus span-level elements can only occur inside block-level elements or other span-level elements. You will often find references to the "first column" or "first character" of a line in a block-level element descriptions. Such a reference is always to be taken relative to the current indentation level because some block-level elements open up a new indentation level (e.g. blockquotes). The beginning of a kramdown document opens up the default indentation level which begins at the first column of the text. ### Line Wrapping Some lightweight markup syntax don't work well in environments where lines are hard-wrapped. For example, this is the case with many email programs. Therefore kramdown allows content like paragraphs or blockquotes to be hard-wrapped, i.e. broken across lines. This is sometimes referred to as "lazy syntax" since the indentation or line prefix required for the first line of content is not required for the consecutive lines. Block-level elements that support line wrapping always end when one of the following conditions is met: * a [blank line](#blank-lines), an [EOB marker line](#eob-marker), a [block IAL](#block-ials) or the end of the document (i.e. a [block boundary](#block-boundaries)), * or an [HTML block](#html-blocks). Line wrapping is allowed throughout a kramdown document but there are some block-level elements that do *not* support being hard-wrapped: [headers](#headers) : This is not an issue in most situations since headers normally fit on one line. If a header text gets too long for one line, you need to use HTML syntax instead. [fenced code blocks](#fenced-code-blocks) : The delimiting lines of a fenced code block do not support hard-wrapping. Since everything between the delimiting lines is taken as is, the content of a fenced code block does also not support hard-wrapping. [definition list terms](#definition-lists) : Each definition term has to appear on a separate line. Hard-wrapping would therefore introduce additional definition terms. The definitions themselves, however, do support hard-wrapping. [tables](#tables) : Since each line of a kramdown table describes one table row or a separator, it is not possible to hard-wrap tables. **Note** that it is **NOT** recommended to use lazy syntax to write a kramdown document. The flexibility that the kramdown syntax offers due to the issue of line wrapping hinders readability and should therefore not be used. ### Usage of Tabs kramdown assumes that tab stops are set at multiples of four. This is especially important when using tabs for indentation in lists. Also, tabs may only be used at the beginning of a line when indenting text and must not be preceded by spaces. Otherwise the results may be unexpected. ### Automatic and Manual Escaping Depending on the output format, there are often characters that need special treatment. For example, when converting a kramdown document to HTML one needs to take care of the characters `<`, `>` and `&`. To ease working with these special characters, they are automatically and correctly escaped depending on the output format. This means, for example, that you can just use `<`, `>` and `&` in a kramdown document and need not think about when to use their HTML entity counterparts. However, if you *do use* HTML entities or HTML tags which use one of the characters, the result will be correct nonetheless! Since kramdown also uses some characters to mark-up the text, there needs to be a way to escape these special characters so that they can have their normal meaning. This can be done by using backslash escapes. For example, you can use a literal back tick like this: This \`is not a code\` span! Following is a list of all the characters (character sequences) that can be escaped: \ backslash . period * asterisk _ underscore + plus - minus = equal sign ` back tick ()[]{}<> left and right parens/brackets/braces/angle brackets # hash ! bang << left guillemet >> right guillemet : colon | pipe " double quote ' single quote $ dollar sign ## Block Boundaries Some block-level elements have to start and/or end on so called block boundaries, as stated in their documentation. There are two cases where block boundaries come into play: * If a block-level element has to start on a block boundary, it has to be preceded by either a [blank line](#blank-lines), an [EOB marker](#eob-marker), a [block IAL](#block-ials) or it has to be the first element. * If a block-level element has to end on a block boundary, it has to be followed by either a [blank line](#blank-lines), an [EOB marker](#eob-marker), a [block IAL](#block-ials) or it has to be the last element. # Structural Elements All structural elements are block-level elements and they are used to structure the content. They can mark up some text as, for example, a simple paragraph, a quote or as a list item. ## Blank lines Any line that just contains white space characters such as spaces and tabs is considered a blank line by kramdown. One or more consecutive blank lines are handled as one empty blank line. Blank lines are used to separate block-level elements from each other and in this case they don't have semantic meaning. However, there are some cases where blank lines do have a semantic meaning: * When used in headers -- see the [headers section](#headers) * When used in code blocks -- see the [code blocks section](#code-blocks) * When used in lists -- see the [lists section](#lists) * When used in math blocks -- see the [math blocks section](#math-blocks) * When used for elements that have to start/end on [block boundaries](#block-boundaries) ## Paragraphs Paragraphs are the most used block-level elements. One or more consecutive lines of text are interpreted as one paragraph. The first line of a paragraph may be indented up to three spaces, the other lines can have any amount of indentation because paragraphs support [line wrapping](#line-wrapping). In addition to the rules outlined in the section about line wrapping, a paragraph ends when a [definition list line](#definition-lists) is encountered. You can separate two consecutive paragraphs from each other by using one or more blank lines. Notice that a line break in the source does not mean a line break in the output (due to the [lazy syntax](#line-wrapping))!. If you want to have an explicit line break (i.e. a `
` tag) you need to end a line with two or more spaces or two backslashes! Note, however, that a line break on the last text line of a paragraph is not possible and will be ignored. Leading and trailing spaces will be stripped from the paragraph text. The following gives you an example of how paragraphs look like: This para line starts at the first column. However, the following lines can be indented any number of spaces/tabs. The para continues here. This is another paragraph, not connected to the above one. But with a hard line break. \\ And another one. {: .show-whitespaces .ws-lr} ## Headers kramdown supports so called Setext style and atx style headers. Both forms can be used inside a single document. ### Setext Style Setext style headers have to start on a [block boundary](#block-boundaries) with a line of text (the header text) and a line with only equal signs (for a first level header) or dashes (for a second level header). The header text may be indented up to three spaces but any leading or trailing spaces are stripped from the header text. The amount of equal signs or dashes is not significant, just one is enough but more may look better. The equal signs or dashes have to begin at the first column. For example: First level header ================== Second level header ------ Other first level header = Since Setext headers start on block boundaries, this means in most situations that they have to be preceded by a blank line. However, blank lines are not necessary after a Setext header: This is a normal paragraph. And A Header ------------ And a paragraph > This is a blockquote. And A Header ------------ However, it is generally a good idea to also use a blank line after a Setext header because it looks more appropriate and eases reading of the document. > The original Markdown syntax allows one to omit the blank line before a Setext header. However, > this leads to ambiguities and makes reading the document harder than necessary. Therefore it is > not allowed in a kramdown document. {: .markdown-difference} An edge case worth mentioning is the following: header --- para One might ask if this represents two paragraphs separated by a [horizontal rule](#horizontal-rules) or a second level header and a paragraph. As suggested by the wording in the example, the latter is the case. The general rule is that Setext headers are processed before horizontal rules. ### atx Style atx style headers have to start on a [block boundary](#block-boundaries) with a line that contains one or more hash characters and then the header text. No spaces are allowed before the hash characters. The number of hash characters specifies the heading level: one hash character gives you a first level heading, two a second level heading and so on until the maximum of six hash characters for a sixth level heading. You may optionally use any number of hashes at the end of the line to close the header. Any leading or trailing spaces are stripped from the header text. For example: # First level header ### Third level header ### ## Second level header ###### > Again, the original Markdown syntax allows one to omit the blank line before an atx style header. {: .markdown-difference} ### Specifying a Header ID kramdown supports a nice way for explicitly setting the header ID which is taken from [PHP Markdown Extra] and [Maruku]: If you follow the header text with an opening curly bracket (separated from the text with a least one space), a hash, the ID and a closing curly bracket, the ID is set on the header. If you use the trailing hash feature of atx style headers, the header ID has to go after the trailing hashes. For example: Hello {#id} ----- # Hello {#id} # Hello # {#id} > This additional syntax is not part of standard Markdown. {: .markdown-difference} ## Blockquotes A blockquote is started using the `>` marker followed by an optional space and the content of the blockquote. The marker itself may be indented up to three spaces. All following lines, whether they are started with the blockquote marker or just contain text, belong to the blockquote because blockquotes support [line wrapping](#line-wrapping). The contents of a blockquote are block-level elements. This means that if you are just using text as content that it will be wrapped in a paragraph. For example, the following gives you one blockquote with two paragraphs in it: > This is a blockquote. > on multiple lines that may be lazy. > > This is the second paragraph. Since the contents of a blockquote are block-level elements, you can nest blockquotes and use other block-level elements (this is also the reason why blockquotes need to support line wrapping): > This is a paragraph. > > > A nested blockquote. > > ## Headers work > > * lists too > > and all other block-level elements Note that the first space character after the `>` marker does *not* count when counting spaces for the indentation of the block-level elements inside the blockquote! So [code blocks](#code-blocks) will have to be indented with five spaces or one space and one tab, like this: > A code block: > > ruby -e 'puts :works' [Line wrapping](#line-wrapping) allows one to be lazy but hinders readability and should therefore be avoided, especially with blockquotes. Here is an example of using blockquotes with line wrapping: > This is a paragraph inside a blockquote. > > > This is a nested paragraph that continues here > and here > > and here ## Code Blocks Code blocks can be used to represent verbatim text like markup, HTML or a program fragment because no syntax is parsed within a code block. ### Standard Code Blocks A code block can be started by using four spaces or one tab and then the text of the code block. All following lines containing text, whether they adhere to this syntax or not, belong to the code block because code blocks support [line wrapping](#line-wrapping)). A wrapped code line is automatically appended to the preceding code line by substituting the line break with a space character. The indentation (four spaces or one tab) is stripped from each line of the code block. > The original Markdown syntax does not allow line wrapping in code blocks. {: .markdown-difference} Note that consecutive code blocks that are only separate by [blank lines](#blank-lines) are merged together into one code block: Here comes some code This text belongs to the same code block. If you want to have one code block directly after another one, you need to use an [EOB marker](#eob-marker) to separate the two: Here comes some code ^ This one is separate. ### Fenced Code Blocks > This alternative syntax is not part of the original Markdown syntax. The idea and syntax comes > from the [PHP Markdown Extra] package. {: .markdown-difference} kramdown also supports an alternative syntax for code blocks which does not use indented blocks but delimiting lines. The starting line needs to begin with three or more tilde characters (`~`) and the closing line needs to have at least the number of tildes the starting line has. Everything between is taken literally as with the other syntax but there is no need for indenting the text. For example: ~~~~~~~~ Here comes some code. ~~~~~~~~ If you need lines of tildes in such a code block, just start the code block with more tildes. For example: ~~~~~~~~~~~~ ~~~~~~~ code with tildes ~~~~~~~~ ~~~~~~~~~~~~~~~~~~ This type of code block is especially useful for copy-pasted code since you don't need to indent the code. ### Language of Code Blocks You can tell kramdown the language of a code block by using an [IAL](#inline-attribute-lists): ~~~ def what? 42 end ~~~ {: .language-ruby} The specially named class `language-ruby` tells kramdown that this code block is written in the Ruby language. Such information can be used, for example, by converters to do syntax highlighting on the code block. Fenced code blocks provide an easier way to specify the language, namely by appending the language of the code block to the end of the starting line: ~~~ ruby def what? 42 end ~~~ ## Lists kramdown provides syntax elements for creating ordered and unordered lists as well as definition lists. ### Ordered and Unordered lists Both ordered and unordered lists follow the same rules. A list is started with a list marker (in case of unordered lists one of `+`, `-` or `*` -- you can mix them -- and in case of ordered lists a number followed by a period) followed by one tab or at least one space, optionally followed by an [IAL](#inline-attribute-lists) that should be applied to the list item and then the first part of the content of the list item. The leading tabs or spaces are stripped away from this first line of content to allow for a nice alignment with the following content of a list item (see below). All following list items with the same marker type (unordered or ordered) are put into the same list. The numbers used for ordered lists are irrelevant, an ordered list always starts at 1. The following gives you an unordered list and an ordered list: * kram + down - now 1. kram 2. down 3. now > The original Markdown syntax allows the markers of ordered and unordered lists to be mixed, the > first marker specifying the list type (ordered or unordered). This is not allowed in kramdown. As > stated, the above example will give you two lists (an unordered and an ordered) in kramdown and > only one unordered list in Markdown. {: .markdown-difference} The first list marker in a list may be indented up to three spaces. The column number of the first non-space character which appears after the list item marker on the same line specifies the indentation that has to be used for the following lines of content of the list item. If there is no such character, the indentation that needs to be used is four spaces or one tab. Indented lines may be followed by lines containing text with any amount of indentation due to [line wrapping](#line-wrapping). Note, however, that in addition to the rules outlined in the section about line wrapping, a list item also ends when a line with another list item marker is encountered -- see the next paragraph. The indentation is stripped from the content and the content (note that the content naturally also contains the content of the line with the item marker) is processed as text containing block-level elements. All other list markers in the list may be indented up to three spaces or the number of spaces used for the indentation of the last list item minus one, whichever number is smaller. For example: * This is the first line. Since the first non-space characters appears in column 3, all other indented lines have to be indented 2 spaces. However, one could be lazy and not indent a line but this is not recommended. * This is the another item of the list. It uses a different number of spaces for indentation which is okay but should generally be avoided. * The list item marker is indented 3 spaces which is allowed but should also be avoided and starts the third list item. Note that the lazy line in the second list item may make you believe that this is a sub-list which it isn't! So avoid being lazy! So, while the above is possible and creates one list with three items, it is not advised to use different (marker and list content) indents for same level list items as well as lazy indentation! It is much better to write such a list in the following way: * This is the first list item bla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla bla * This is the another item of the list. bla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla > The original Markdown syntax also allows you to indent the marker, however, the behaviour of what > happens with the list items is not clearly specified and may surprise you. > > Also, Markdown uses a fixed number of spaces/tabs to indent the lines that belong to a list item! {: .markdown-difference} When using tabs for indenting the content of a list item, remember that tab stops occur at multiples of four for kramdown. Tabs are correctly converted to spaces for calculating the indentation. For example: * Using a tab to indent this line, the tab only counts as three spaces and therefore the overall indentation is four spaces. 1. The tab after the marker counts here as three spaces. Since the indentation of the marker is three spaces and the marker itself takes two characters, the overall indentation needed for the following lines is eight spaces or two tabs. It is clear that you might get unexpected results if you mix tabs and spaces or if you don't have the tab stops set to multiples of four in your editor! Therefore this should be avoided! The content of a list item is made up of either text or block-level elements. Simple list items only contain text like in the above examples. They are not even wrapped in a paragraph tag. If the first list text is followed by one or more blank lines, it will be wrapped in a paragraph tag: * kram * down * now In the above example, the first list item text will be wrapped in a paragraph tag since it is followed by a blank line whereas the second list item contains just text. There is obviously a problem for doing this with the last list item when it contains only text. You can circumvent this by leaving a blank line after the last list item and using an EOB marker: * Not wrapped in a paragraph * Wrapped in a paragraph due to the following blank line. * Also wrapped in a paragraph due to the following blank line and the EOB marker. ^ The text of the last list item is also wrapped in a paragraph tag if *all* other list items contain a proper paragraph as first element. This makes the following use case work like expected, i.e. *all* the list items are wrapped in paragraphs: * First list item * Second list item * Last list item > The original Markdown syntax page specifies that list items which are separated by one or more > blank lines are wrapped in paragraph tags. This means that the first text will also be wrapped in > a paragraph if you have block-level elements in a list which are separated by blank lines. The > above rule is easy to remember and lets you exactly specify when the first list text should be > wrapped in a paragraph. The idea for the above rule comes from the [Pandoc] package. {: .markdown-difference} As seen in the examples above, blank lines between list items are allowed. Since the content of a list item can contain block-level elements, you can do the following: * First item A second paragraph * nested list > blockquote * Second item However, there is a problem when you want to have a code block immediately after a list item. You can use an EOB marker to circumvent this problem: * This is a list item. The second para of the list item. ^ A code block following the list item. You can have any block-level element as first element in a list item. However, as described above, the leading tabs or spaces of the line with the list item marker are stripped away. This leads to a problem when you want to have a code block as first element. The solution to this problem is the following construct: * This is a code block (indentation needs to be 4(1)+4(1) spaces (tabs)). {: .show-whitespaces .ws-lr} Note that the list marker needs to be followed with at least one space or tab! Otherwise the line is not recognized as the start of a list item but interpreted as a paragraph containing the list marker. If you want to have one list directly after another one (both with the same list type, i.e. ordered or unordered), you need to use an EOB marker to separate the two: * List one ^ * List two Since paragraphs support [line wrapping](#line-wrapping), it would usually not be possible to create compact nested list, i.e. a list where the text is not wrapped in paragraphs because there is no blank line but a sub list after it: * This is just text. * this is a sub list item * this is a sub sub list item * This is just text, spanning two lines * this is a nested list item. However, this is an often used syntax and is therefore support by kramdown. If you want to start a paragraph with something that looks like a list item marker, you need to escape it. This is done by escaping the period in an ordered list or the list item marker in an unordered list: 1984\. It was great \- others say that, too! As mentioned at the beginning, an optional IAL for applying attributes to a list item can be used after the list item marker: * {:.cls} This item has the class "cls". Here continues the above paragraph. * This is a normal list item. ### Definition Lists > This syntax feature is not part of the original Markdown syntax. The idea and syntax comes from > the [PHP Markdown Extra] package. {: .markdown-difference} Definition lists allow you to assign one or more definitions to one or more terms. A definition list is started when a normal paragraph is followed by a line with a definition marker (a colon which may be optionally indented up to three spaces), then at least one tab or one space, optionally followed by an [IAL](#inline-attribute-lists) that should be applied to the list item and then the first part of the definition. The line with the definition marker may optionally be separated from the preceding paragraph by a blank line. The leading tabs or spaces are stripped away from this first line of the definition to allow for a nice alignment with the following definition content. Each line of the preceding paragraph is taken to be a term and the lines separately parsed as span-level elements. The following is a simple definition list: kramdown : A Markdown-superset converter Maruku : Another Markdown-superset converter The column number of the first non-space character which appears after a definition marker on the same line specifies the indentation that has to be used for the following lines of the definition. If there is no such character, the indentation that needs to be used is four spaces or one tab. Indented lines may be followed by lines containing text with any amount of indentation due to [line wrapping](#line-wrapping). Note, however, that in addition to the rules outlined in the section about line wrapping, a list item also ends when a line with another definition marker is encountered. The indentation is stripped from the definition and it (note that the definition naturally also contains the content of the line with the definition marker) is processed as text containing block level elements. If there is more than one definition, all other definition markers for the term may be indented up to three spaces or the number of spaces used for the indentation of the last definition minus one, whichever number is smaller. For example: definition term 1 definition term 2 : This is the first line. Since the first non-space characters appears in column 3, all other lines have to be indented 2 spaces (or lazy syntax may be used after an indented line). This tells kramdown that the lines belong to the definition. : This is the another definition for the same term. It uses a different number of spaces for indentation which is okay but should generally be avoided. : The definition marker is indented 3 spaces which is allowed but should also be avoided. So, while the above is possible and creates a definition list with two terms and three definitions for them, it is not advised to use different (definition marker and definition) indents in the same definition list as well as lazy indentation! The definition for a term is made up of text and/or block-level elements. If a definition is *not* preceded by a blank line, the first part of the definition will just be text if it would be a paragraph otherwise: definition term : This definition will just be text because it would normally be a paragraph and the there is no preceding blank line. > although the definition contains other block-level elements : This definition *will* be a paragraph since it is preceded by a blank line. The rules about having any block-level element as first element in a list item also apply to a definition. ## Tables > This syntax feature is not part of the original Markdown syntax. The syntax is based on the one > from the [PHP Markdown Extra] package. {: .markdown-difference} Sometimes one wants to include simple tabular data in a kramdown document for which using a full-blown HTML table is just too much. kramdown supports this with a simple syntax for ASCII tables. Tables can be created with or without a leading pipe character: If the first line of a table contains a pipe character at the start of the line (optionally indented up to three spaces), then all leading pipe characters (i.e. pipe characters that are only preceded by whitespace) are ignored on all table lines. Otherwise they are not ignored and count when dividing a table line into table cells. There are four different line types that can be used in a table: * *Table rows* define the content of a table. A table row is any line that contains at least one pipe character and is not identified as any other type of table line! The table row is divided into individual table cells by pipe characters. An optional trailing pipe character is ignored. Note that literal pipe characters need to be escaped *except* if they occur in code spans or HTML `` elements! Header rows, footer rows and normal rows are all done using these table rows. Table cells can only contain a single line of text, no multi-line text is supported. The text of a table cell is parsed as span-level elements. Here are some example table rows: | First cell|Second cell|Third cell | First | Second | Third | First | Second | | Fourth | * *Separator lines* are used to split the table body into multiple body parts. A separator line is any line that contains only pipes, dashes, pluses, colons and spaces and which contains at least one dash and one pipe character. The pipe and plus characters can be used to visually separate columns although this is not needed. Multiple separator lines after another are treated as one separator line. Here are some example separator lines: |----+----| +----|----+ |---------| |- | :-----: | -|- * The first separator line after at least one table row is treated specially, namely as *header separator line*. It is used to demarcate header rows from normal table rows and/or to set column alignments. All table rows above the header separator line are considered to be header rows. The header separator line can be specially formatted to contain column alignment definitions: An alignment definition consists of an optional space followed by an optional colon, one or more dashes, an optional colon and another optional space. The colons of an alignment definition are used to set the alignment of a column: if there are no colons, the column uses the default alignment, if there is a colon only before the dashes, the column is left aligned, if there are colons before and after the dashes, the column is center aligned and if there is only a colon after the dashes, the column is right aligned. Each alignment definition sets the alignment for one column, the first alignment definition for the first column, the second alignment definition for the second column and so on. Here are some example header separator lines with alignment definitions: |---+---+---| + :-: |:------| ---:| | :-: :- -: - :-: | :- * A *footer separator line* is used to demarcate footer rows from normal table rows. All table rows below the footer separator line are considered to be footer rows. A footer separator line is like a normal separator line except that dashes are replaced by equal signs. A footer separator line may only appear once in a table. If multiple footer separator lines are used in one table, only the last is treated as footer separator line, all others are treated as normal separator lines. Normal separator lines that are used after the footer separator line are ignored. Here are some example footer separator lines: |====+====| +====|====+ |=========| |= Trailing spaces or tabs are ignored in all cases. To simplify table creation and maintenance, header, footer and normal separator lines need not specify the same number of columns as table rows; even `|-` and `|=` are a valid separators. Given the above components, a table is specified by * an optional separator line, * optionally followed by zero, one or more table rows followed by a header separator line, * one or more table rows, optionally interspersed with separator lines, * optionally followed by a footer separator line and zero, one or more table rows and * an optional trailing separator line. Also note * that the first line of a table must not have more than three spaces of indentation before the first non-space character, * that each line of a table needs to have at least one not escaped pipe character so that kramdown recognizes it as a line belonging to the table and * that tables have to start and end on [block boundaries](#block-boundaries)! > The table syntax differs from the one used in [PHP Markdown Extra] as follows: > > * kramdown tables do not need to have a table header. > * kramdown tables can be structured using separator lines. > * kramdown tables can contain a table footer. > * kramdown tables need to be separated from other block-level elements. {: .markdown-difference} Here is an example for a kramdown table with a table header row, two table bodies and a table footer row: |-----------------+------------+-----------------+----------------| | Default aligned |Left aligned| Center aligned | Right aligned | |-----------------|:-----------|:---------------:|---------------:| | First body part |Second cell | Third cell | fourth cell | | Second line |foo | **strong** | baz | | Third line |quux | baz | bar | |-----------------+------------+-----------------+----------------| | Second body | | | | | 2 line | | | | |=================+============+=================+================| | Footer row | | | | |-----------------+------------+-----------------+----------------| The above example table is rather time-consuming to create without the help of an ASCII table editor. However, the table syntax is flexible and the above table could also be written like this: |--- | Default aligned | Left aligned | Center aligned | Right aligned |-|:-|:-:|-: | First body part | Second cell | Third cell | fourth cell | Second line |foo | **strong** | baz | Third line |quux | baz | bar |--- | Second body | 2 line |=== | Footer row ## Horizontal Rules A horizontal rule for visually separating content is created by using three or more asterisks, dashes or underscores (these may not be mixed on a line), optionally separated by spaces or tabs, on an otherwise blank line. The first asterisk, dash or underscore may optionally be indented up to three spaces. The following examples show different possibilities to create a horizontal rule: * * * --- _ _ _ _ --------------- ## Math Blocks > This syntax feature is not part of the original Markdown syntax. The idea comes from the [Maruku] > and [Pandoc] packages. {: .markdown-difference} kramdown has built-in support for block and span-level mathematics written in LaTeX. A math block needs to start and end on [block boundaries](#block-boundaries). It is started using two dollar signs, optionally indented up to three spaces. The math block continues until the next two dollar signs (which may be on the same line or on one of the next lines) that appear at the end of a line, i.e. they may only be followed by whitespace characters. The content of a math block has to be valid LaTeX math. It is always wrapped inside a `\begin{displaymath}...\end{displaymath}` enviroment except if it begins with a `\begin` statement. The following kramdown fragment $$ \begin{align*} & \phi(x,y) = \phi \left(\sum_{i=1}^n x_ie_i, \sum_{j=1}^n y_je_j \right) = \sum_{i=1}^n \sum_{j=1}^n x_i y_j \phi(e_i, e_j) = \\ & (x_1, \ldots, x_n) \left( \begin{array}{ccc} \phi(e_1, e_1) & \cdots & \phi(e_1, e_n) \\ \vdots & \ddots & \vdots \\ \phi(e_n, e_1) & \cdots & \phi(e_n, e_n) \end{array} \right) \left( \begin{array}{c} y_1 \\ \vdots \\ y_n \end{array} \right) \end{align*} $$ renders as $$ \begin{align*} & \phi(x,y) = \phi \left(\sum_{i=1}^n x_ie_i, \sum_{j=1}^n y_je_j \right) = \sum_{i=1}^n \sum_{j=1}^n x_i y_j \phi(e_i, e_j) = \\ & (x_1, \ldots, x_n) \left( \begin{array}{ccc} \phi(e_1, e_1) & \cdots & \phi(e_1, e_n) \\ \vdots & \ddots & \vdots \\ \phi(e_n, e_1) & \cdots & \phi(e_n, e_n) \end{array} \right) \left( \begin{array}{c} y_1 \\ \vdots \\ y_n \end{array} \right) \end{align*} $$ Using inline math is also easy: just surround your math content with two dollar signs, like with a math block. If you don't want to start an inline math statement, just escape the dollar signs and they will be treated as simple dollar signs. If you have a paragraph that looks like a math block but should actually be a paragraph with just an inline math statement, you need to escape the first dollar sign: The following is a math block: $$ 5 + 5 $$ But next comes a paragraph with an inline math statement: \$$ 5 + 5 $$ If you don't even won't the inline math statement, escape the first two dollar signs: \$\$ 5 + 5 $$ ## HTML Blocks > The original Markdown syntax specifies that an HTML block must start at the left margin, i.e. no > indentation is allowed. Also, the HTML block has to be surrounded by blank lines. Both > restrictions are lifted for kramdown documents. Additionally, the original syntax does not allow > you to use Markdown syntax in HTML blocks which is allowed with kramdown. {: .markdown-difference} An HTML block is potentially started if a line is encountered that begins with a non-span-level HTML tag or a general XML tag (opening or closing) which may be indented up to three spaces. The following HTML tags count as span-level HTML tags and *won't* start an HTML block if found at the beginning of an HTML block line: a abbr acronym b big bdo br button cite code del dfn em i img input ins kbd label option q rb rbc rp rt rtc ruby samp select small span strong sub sup textarea tt var Further parsing of a found start tag depends on the tag and in which of three possible ways its content is parsed: * Parse as raw HTML block: If the HTML/XML tag content should be handled as raw HTML, then only HTML/XML tags are parsed from this point onwards and text is handled as raw, unparsed text until the matching end tag is found or until the end of the document. Each found tag will be parsed as raw HTML again. However, if a tag has a `markdown` attribute, this attribute controls parsing of this one tag (see below). Note that the parser basically supports only correct XHTML! However, there are some exceptions. For example, attributes without values (i.e. boolean attributes) are also supported and elements without content like `
` can be written as `
`. If an invalid closing tag is found, it is ignored. * Parse as block-level elements: If the HTML/XML tag content should be parsed as text containing block-level elements, the remaining text on the line will be parsed by the block-level parser as if it appears on a separate line (**Caution**: This also means that if the line consists of the start tag, text and the end tag, the end tag will not be found!). All following lines are parsed as block-level elements until an HTML block line with the matching end tag is found or until the end of the document. * Parse as span-level elements: If the HTML/XML tag content should be parsed as text containing span level elements, then all text until the *next* matching end tag or until the end of the document will be the content of the tag and will later be parsed by the span-level parser. This also means that if the matching end tag is inside what appears to be a code span, it is still used! If there is text after an end tag, it will be parsed as if it appears on a separate line except when inside a raw HTML block. Also, if an invalid closing tag is found, it is ignored. Note that all HTML tag and attribute names are converted to lowercase! By default, kramdown parses all block HTML tags and all XML tags as raw HTML blocks. However, this can be configured with the `parse_block_html`. If this is set to `true`, then syntax parsing in HTML blocks is globally enabled. It is also possible to enable/disable syntax parsing on a tag per tag basis using the `markdown` attribute: * If an HTML tag has an attribute `markdown="0"`, then the tag is parsed as raw HTML block. * If an HTML tag has an attribute `markdown="1"`, then the default mechanism for parsing syntax in this tag is used. * If an HTML tag has an attribute `markdown="block"`, then the content of the tag is parsed as block level elements. * If an HTML tag has an attribute `markdown="span"`, then the content of the tag is parsed as span level elements. The following list shows which HTML tags are parsed in which mode by default when `markdown="1"` is applied or `parse_block_html` is `true`: Parse as raw HTML block : script math option textarea Also, all general XML tags are parsed as raw HTML blocks. Parse as block-level elements : applet button blockquote body colgroup dd div dl fieldset form iframe li map noscript object ol table tbody thead tfoot tr td ul Parse as span-level elements : a abbr acronym address b bdo big cite caption code del dfn dt em h1 h2 h3 h4 h5 h6 i ins kbd label legend optgroup p pre q rb rbc rp rt rtc ruby samp select small span strong sub sup th tt var > Remember that all span-level HTML tags like `a` or `b` do not start a HTML block! However, the > above lists also include span-level HTML tags in the case the `markdown` attribute is used on a > tag inside a raw HTML block. Here is a simple example input and its HTML output with `parse_block_html` set to `false`: This is a para.
Something in here.
Other para. ^

This is a para.

Something in here.

Other para.

As one can see the content of the `div` tag will be parsed as raw HTML block and left alone. However, if the `markdown="1"` attribute was used on the `div` tag, the content would be parsed as block-level elements and therefore converted to a paragraph. You can also use several HTML tags at once:
This is some text in the `layer1` div.
This is some text in the `layers` div.
This is a para outside the HTML block. However, remember that if the content of a tag is parsed as block-level elements, the content that appears after a start/end tag but on the same line, is processed as if it appears on a new line:
This is the first part of a para, which is continued here.

This works without problems because it is parsed as span-level elements

The end tag is not found because this line is parsed as a paragraph
Since setting `parse_block_html` to `true` can lead to some not wanted behaviour, it is generally better to selectively enable or disable block/span-level elements parsing by using the `markdown` attribute! Unclosed block-level HTML tags are correctly closed at the end of the document to ensure correct nesting and invalidly used end tags are removed from the output: This is a para.
Another para.

^

This is a para.

Another para.

The parsing of processing instructions and XML comments is also supported. The content of both, PIs and XML comments, may span multiple lines. The start of a PI/XML comment may only appear at the beginning of a line, optionally indented up to three spaces. If there is text after the end of a PI or XML comment, it will be parsed as if it appears on a separate line. kramdown syntax in PIs/XML comments is not processed: This is a para. First part of para, continues here. # Text Markup These elements are all span-level elements and used inside block-level elements to markup text fragments. For example, one can easily create links or apply emphasis to certain text parts. Note that empty span-level elements are not converted to empty HTML tags but are copied as-is to the output. ## Links and Images Three types of links are supported: automatic links, inline links and reference links. ### Automatic Links This is the easiest one to create: Just surround a web address or an email address with angle brackets and the address will be turned into a proper link. The address will be used as link target and as link text. For example: Information can be found on the homepage. You can also mail me: It is not possible to specify a different link text using automatic links -- use the other link types for this! ### Inline Links As the wording suggests, inline links provide all information inline in the text flow. Reference style links only provide the link text in the text flow and everything else is defined elsewhere. This also allows you to reuse link definitions. An inline style link can be created by surrounding the link text which must contain at least one character with square brackets, followed immediately by the link URL (and an optional title in single or double quotes preceded by at least one space) in normal parentheses. For example: This is [a link](http://rubyforge.org) to a page. A [link](../test "local URI") can also have a title. And [spaces](link with spaces.html)! Notes: * The link text is treated like normal span-level text and therefore is parsed and converted. However, if you use square brackets within the link text, you have to either properly nest them or to escape them. It is not possible to create nested links! * The link URL must not contain single or double quotes and it has to contain properly nested parentheses if no title is specified, or the link URL must be contained in angle brackets (incorrectly nested parentheses are allowed). * The link title may not contain its delimiters and may not be empty. ### Reference Links To create a reference style link, you need to surround the link text with square brackets (as with inline links), followed by optional spaces/tabs/line breaks and then optionally followed with another set of square brackets with the link identifier in them. A link identifier may not contain a closing bracket and, when specified in a link definition, newline characters; it is also not case sensitive, line breaks and tabs are converted to spaces and multiple spaces are compressed into one. For example: This is a [reference style link][linkid] to a page. And [this] [linkid] is also a link. As is [this][] and [THIS]. If you don't specify a link identifier (i.e. only use empty square brackets) or completely omit the second pair of square brackets, the link text is converted to a valid link identifier by removing all invalid characters and inserting spaces for line breaks. If there is a link definition found for the link identifier, a link will be created. Otherwise the text is not converted to a link. ### Link Definitions The link definition can be put anywhere in the document. It does not appear in the output. A link definition looks like this: [linkid]: http://www.example.com/ "Optional Title" > Link definitions are, despite being described here, non-content block-level elements. {: .information} The link definition has the following structure: * The link identifier in square brackets, optionally indented up to three spaces, * then a colon and one or more spaces/tabs, * then the link URL which must not contain any single or double quotes and which must contain at least one non-space character, or a left angle bracket, the link URL and a right angle bracket, * then optionally the title in single or double quotes, separated from the link URL by one or more spaces or on the next line by itself indented any number of spaces/tabs. > The original Markdown syntax also allowed the title to be specified in parenthesis. This is not > allowed for consistency with the inline title. {: .markdown-difference} If you have some text that looks like a link definition but should really be a link and some text, you can escape the colon after the link identifier: The next paragraph contains a link and some text. [Room 100]\: There you should find everything you need! [Room 100]: link_to_room_100.html ### Images Images can be specified via a syntax that is similar to the one used by links. The difference is that you have to use an exclamation mark before the first square bracket and that the link text of a normal link, which may also be the empty string in case of image links, becomes the alternative text of the image link. As with normal links, image links can be written inline or reference style. For example: Here comes a ![smiley](../images/smiley.png)! And here ![too](../images/other.png 'Title text'). Or ![here]. With empty alt text ![](see.jpg) The link definition for images is exactly the same as the link definition for normal links. ## Emphasis kramdown supports two types of emphasis: light and strong emphasis. Text parts that are surrounded with single asterisks `*` or underscores `_` are treated as text with light emphasis, text parts surrounded with two asterisks or underscores are treated as text with strong emphasis. Surrounded means that the starting delimiter must not be followed by a space and that the stopping delimiter must not be preceded by a space. Here is an example for text with light and strong emphasis: *some text* _some text_ **some text** __some text__ The asterisk form is also allowed within a single word: This is un*believe*able! This d_oe_s not work! Text can be marked up with both light and strong emphasis, possibly using different delimiters. However, it is not possible to nest strong within strong or light within light emphasized text: This is a ***text with light and strong emphasis***. This **is _emphasized_ as well**. This *does _not_ work*. This **does __not__ work either**. If one or two asterisks or underscores are surrounded by spaces, they are treated literally. If you want to force the literal meaning of an asterisk or an underscore you can backslash-escape it: This is a * literal asterisk. These are ** two literal asterisk. As \*are\* these! ## Code Spans This is the span-level equivalent of the [code block](#code-blocks) element. You can markup a text part as code span by surrounding it with backticks `` ` ``. For example: Use `` tags for this. Note that all special characters in a code span are treated correctly. For example, when a code span is converted to HTML, the characters `<`, `>` and `&` are substituted by their respective HTML counterparts. To include a literal backtick in a code span, you need to use two or more backticks as delimiters. You can insert one optional space after the starting and before the ending delimiter (these spaces are not used in the output). For example: Here is a literal `` ` `` backtick. And here is `` `some` `` text (note the two spaces so that one is left in the output!). A single backtick surrounded by spaces is treated as literal backtick. If you want to force the literal meaning of a backtick you can backslash-escape it: This is a ` literal backtick. As \`are\` these! As with [code blocks](#language-of-code-blocks) you can set the language of a code span by using an [IAL](#inline-attribute-lists): This is a Ruby code fragment `x = Class.new`{:.language-ruby} ## HTML Spans HTML tags cannot only be used on the block-level but also on the span-level. Span-level HTML tags can only be used inside one block-level element, it is not possible to use a start tag in one block level element and the end tag in another. Note that only correct XHTML is supported! This means that you have to use, for example, `
` instead of `
` (although kramdown tries to fix such errors if possible). By default, kramdown parses kramdown syntax inside span HTML tags. However, this behaviour can be configured with the `parse_span_html` option. If this is set to `true`, then syntax parsing in HTML spans is enabled, if it is set to `false`, parsing is disabled. It is also possible to enable/disable syntax parsing on a tag per tag basis using the `markdown` attribute: * If an HTML tag has an attribute `markdown="0"`, then no parsing (except parsing of HTML span tags) is done inside that HTML tag. * If an HTML tag has an attribute `markdown="1"`, then the content of the tag is parsed as span level elements. * If an HTML tag has an attribute `markdown="block"`, then a warning is issued because HTML spans cannot contain block-level elements and the attribute is ignored. * If an HTML tag has an attribute `markdown="span"`, then the content of the tag is parsed as span level elements. The content of a span-level HTML tag is normally parsed as span-level elements. Note, however, that some tags like `

kramdown

fast, pure-Ruby Markdown-superset converter