mega-sharp-mod 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (576) hide show
  1. checksums.yaml +7 -0
  2. data/kramdown-2.5.2/AUTHORS +1 -0
  3. data/kramdown-2.5.2/CONTRIBUTERS +93 -0
  4. data/kramdown-2.5.2/COPYING +30 -0
  5. data/kramdown-2.5.2/README.md +77 -0
  6. data/kramdown-2.5.2/VERSION +1 -0
  7. data/kramdown-2.5.2/bin/kramdown +135 -0
  8. data/kramdown-2.5.2/data/kramdown/document.html +22 -0
  9. data/kramdown-2.5.2/data/kramdown/document.latex +50 -0
  10. data/kramdown-2.5.2/lib/kramdown/converter/base.rb +257 -0
  11. data/kramdown-2.5.2/lib/kramdown/converter/hash_ast.rb +38 -0
  12. data/kramdown-2.5.2/lib/kramdown/converter/html.rb +545 -0
  13. data/kramdown-2.5.2/lib/kramdown/converter/kramdown.rb +458 -0
  14. data/kramdown-2.5.2/lib/kramdown/converter/latex.rb +626 -0
  15. data/kramdown-2.5.2/lib/kramdown/converter/man.rb +300 -0
  16. data/kramdown-2.5.2/lib/kramdown/converter/math_engine/mathjax.rb +32 -0
  17. data/kramdown-2.5.2/lib/kramdown/converter/remove_html_tags.rb +58 -0
  18. data/kramdown-2.5.2/lib/kramdown/converter/syntax_highlighter/minted.rb +35 -0
  19. data/kramdown-2.5.2/lib/kramdown/converter/syntax_highlighter/rouge.rb +85 -0
  20. data/kramdown-2.5.2/lib/kramdown/converter/syntax_highlighter.rb +56 -0
  21. data/kramdown-2.5.2/lib/kramdown/converter/toc.rb +69 -0
  22. data/kramdown-2.5.2/lib/kramdown/converter.rb +68 -0
  23. data/kramdown-2.5.2/lib/kramdown/document.rb +139 -0
  24. data/kramdown-2.5.2/lib/kramdown/element.rb +551 -0
  25. data/kramdown-2.5.2/lib/kramdown/error.rb +17 -0
  26. data/kramdown-2.5.2/lib/kramdown/options.rb +645 -0
  27. data/kramdown-2.5.2/lib/kramdown/parser/base.rb +137 -0
  28. data/kramdown-2.5.2/lib/kramdown/parser/html.rb +621 -0
  29. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/abbreviation.rb +80 -0
  30. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/autolink.rb +31 -0
  31. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/blank_line.rb +30 -0
  32. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/block_boundary.rb +34 -0
  33. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/blockquote.rb +38 -0
  34. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/codeblock.rb +57 -0
  35. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/codespan.rb +58 -0
  36. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/emphasis.rb +66 -0
  37. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/eob.rb +26 -0
  38. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/escaped_chars.rb +25 -0
  39. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/extensions.rb +214 -0
  40. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/footnote.rb +64 -0
  41. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/header.rb +70 -0
  42. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/horizontal_rule.rb +27 -0
  43. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/html.rb +165 -0
  44. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/html_entity.rb +34 -0
  45. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/line_break.rb +25 -0
  46. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/link.rb +149 -0
  47. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/list.rb +286 -0
  48. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/math.rb +53 -0
  49. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/paragraph.rb +62 -0
  50. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/smart_quotes.rb +174 -0
  51. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/table.rb +171 -0
  52. data/kramdown-2.5.2/lib/kramdown/parser/kramdown/typographic_symbol.rb +44 -0
  53. data/kramdown-2.5.2/lib/kramdown/parser/kramdown.rb +377 -0
  54. data/kramdown-2.5.2/lib/kramdown/parser/markdown.rb +57 -0
  55. data/kramdown-2.5.2/lib/kramdown/parser.rb +26 -0
  56. data/kramdown-2.5.2/lib/kramdown/utils/configurable.rb +45 -0
  57. data/kramdown-2.5.2/lib/kramdown/utils/entities.rb +1000 -0
  58. data/kramdown-2.5.2/lib/kramdown/utils/html.rb +84 -0
  59. data/kramdown-2.5.2/lib/kramdown/utils/lru_cache.rb +41 -0
  60. data/kramdown-2.5.2/lib/kramdown/utils/string_scanner.rb +81 -0
  61. data/kramdown-2.5.2/lib/kramdown/utils/unidecoder.rb +46 -0
  62. data/kramdown-2.5.2/lib/kramdown/utils.rb +45 -0
  63. data/kramdown-2.5.2/lib/kramdown/version.rb +15 -0
  64. data/kramdown-2.5.2/lib/kramdown.rb +10 -0
  65. data/kramdown-2.5.2/man/man1/kramdown.1 +373 -0
  66. data/kramdown-2.5.2/test/run_tests.rb +46 -0
  67. data/kramdown-2.5.2/test/test_files.rb +313 -0
  68. data/kramdown-2.5.2/test/test_location.rb +216 -0
  69. data/kramdown-2.5.2/test/test_string_scanner_kramdown.rb +27 -0
  70. data/kramdown-2.5.2/test/testcases/block/01_blank_line/spaces.html +1 -0
  71. data/kramdown-2.5.2/test/testcases/block/01_blank_line/spaces.text +3 -0
  72. data/kramdown-2.5.2/test/testcases/block/01_blank_line/tabs.html +1 -0
  73. data/kramdown-2.5.2/test/testcases/block/01_blank_line/tabs.text +6 -0
  74. data/kramdown-2.5.2/test/testcases/block/02_eob/beginning.html +1 -0
  75. data/kramdown-2.5.2/test/testcases/block/02_eob/beginning.text +3 -0
  76. data/kramdown-2.5.2/test/testcases/block/02_eob/end.html +1 -0
  77. data/kramdown-2.5.2/test/testcases/block/02_eob/end.text +3 -0
  78. data/kramdown-2.5.2/test/testcases/block/02_eob/middle.html +1 -0
  79. data/kramdown-2.5.2/test/testcases/block/02_eob/middle.text +5 -0
  80. data/kramdown-2.5.2/test/testcases/block/03_paragraph/indented.html +18 -0
  81. data/kramdown-2.5.2/test/testcases/block/03_paragraph/indented.html.gfm +18 -0
  82. data/kramdown-2.5.2/test/testcases/block/03_paragraph/indented.text +19 -0
  83. data/kramdown-2.5.2/test/testcases/block/03_paragraph/line_break_last_line.html +9 -0
  84. data/kramdown-2.5.2/test/testcases/block/03_paragraph/line_break_last_line.text +9 -0
  85. data/kramdown-2.5.2/test/testcases/block/03_paragraph/no_newline_at_end.html +5 -0
  86. data/kramdown-2.5.2/test/testcases/block/03_paragraph/no_newline_at_end.text +5 -0
  87. data/kramdown-2.5.2/test/testcases/block/03_paragraph/one_para.html +1 -0
  88. data/kramdown-2.5.2/test/testcases/block/03_paragraph/one_para.text +1 -0
  89. data/kramdown-2.5.2/test/testcases/block/03_paragraph/standalone_image.html +13 -0
  90. data/kramdown-2.5.2/test/testcases/block/03_paragraph/standalone_image.text +9 -0
  91. data/kramdown-2.5.2/test/testcases/block/03_paragraph/to_kramdown.kramdown +7 -0
  92. data/kramdown-2.5.2/test/testcases/block/03_paragraph/to_kramdown.text +5 -0
  93. data/kramdown-2.5.2/test/testcases/block/03_paragraph/two_para.html +4 -0
  94. data/kramdown-2.5.2/test/testcases/block/03_paragraph/two_para.text +4 -0
  95. data/kramdown-2.5.2/test/testcases/block/03_paragraph/with_html_to_native.html +1 -0
  96. data/kramdown-2.5.2/test/testcases/block/03_paragraph/with_html_to_native.options +1 -0
  97. data/kramdown-2.5.2/test/testcases/block/03_paragraph/with_html_to_native.text +1 -0
  98. data/kramdown-2.5.2/test/testcases/block/04_header/atx_header.html +57 -0
  99. data/kramdown-2.5.2/test/testcases/block/04_header/atx_header.text +54 -0
  100. data/kramdown-2.5.2/test/testcases/block/04_header/atx_header_no_newline_at_end.html +1 -0
  101. data/kramdown-2.5.2/test/testcases/block/04_header/atx_header_no_newline_at_end.text +1 -0
  102. data/kramdown-2.5.2/test/testcases/block/04_header/header_type_offset.html +11 -0
  103. data/kramdown-2.5.2/test/testcases/block/04_header/header_type_offset.kramdown +12 -0
  104. data/kramdown-2.5.2/test/testcases/block/04_header/header_type_offset.latex +12 -0
  105. data/kramdown-2.5.2/test/testcases/block/04_header/header_type_offset.options +2 -0
  106. data/kramdown-2.5.2/test/testcases/block/04_header/header_type_offset.text +13 -0
  107. data/kramdown-2.5.2/test/testcases/block/04_header/setext_header.html +32 -0
  108. data/kramdown-2.5.2/test/testcases/block/04_header/setext_header.text +39 -0
  109. data/kramdown-2.5.2/test/testcases/block/04_header/setext_header_no_newline_at_end.html +1 -0
  110. data/kramdown-2.5.2/test/testcases/block/04_header/setext_header_no_newline_at_end.text +2 -0
  111. data/kramdown-2.5.2/test/testcases/block/04_header/with_auto_id_prefix.html +3 -0
  112. data/kramdown-2.5.2/test/testcases/block/04_header/with_auto_id_prefix.options +2 -0
  113. data/kramdown-2.5.2/test/testcases/block/04_header/with_auto_id_prefix.text +3 -0
  114. data/kramdown-2.5.2/test/testcases/block/04_header/with_auto_id_stripping.html +1 -0
  115. data/kramdown-2.5.2/test/testcases/block/04_header/with_auto_id_stripping.options +1 -0
  116. data/kramdown-2.5.2/test/testcases/block/04_header/with_auto_id_stripping.text +1 -0
  117. data/kramdown-2.5.2/test/testcases/block/04_header/with_auto_ids.html +21 -0
  118. data/kramdown-2.5.2/test/testcases/block/04_header/with_auto_ids.options +2 -0
  119. data/kramdown-2.5.2/test/testcases/block/04_header/with_auto_ids.text +24 -0
  120. data/kramdown-2.5.2/test/testcases/block/04_header/with_header_links.html +7 -0
  121. data/kramdown-2.5.2/test/testcases/block/04_header/with_header_links.options +2 -0
  122. data/kramdown-2.5.2/test/testcases/block/04_header/with_header_links.text +8 -0
  123. data/kramdown-2.5.2/test/testcases/block/04_header/with_line_break.html +1 -0
  124. data/kramdown-2.5.2/test/testcases/block/04_header/with_line_break.text +1 -0
  125. data/kramdown-2.5.2/test/testcases/block/05_blockquote/indented.html +25 -0
  126. data/kramdown-2.5.2/test/testcases/block/05_blockquote/indented.text +14 -0
  127. data/kramdown-2.5.2/test/testcases/block/05_blockquote/lazy.html +34 -0
  128. data/kramdown-2.5.2/test/testcases/block/05_blockquote/lazy.text +20 -0
  129. data/kramdown-2.5.2/test/testcases/block/05_blockquote/nested.html +10 -0
  130. data/kramdown-2.5.2/test/testcases/block/05_blockquote/nested.text +6 -0
  131. data/kramdown-2.5.2/test/testcases/block/05_blockquote/no_newline_at_end.html +4 -0
  132. data/kramdown-2.5.2/test/testcases/block/05_blockquote/no_newline_at_end.text +2 -0
  133. data/kramdown-2.5.2/test/testcases/block/05_blockquote/very_long_line.html +3 -0
  134. data/kramdown-2.5.2/test/testcases/block/05_blockquote/very_long_line.text +1 -0
  135. data/kramdown-2.5.2/test/testcases/block/05_blockquote/with_code_blocks.html +15 -0
  136. data/kramdown-2.5.2/test/testcases/block/05_blockquote/with_code_blocks.text +11 -0
  137. data/kramdown-2.5.2/test/testcases/block/06_codeblock/disable-highlighting.html +4 -0
  138. data/kramdown-2.5.2/test/testcases/block/06_codeblock/disable-highlighting.options +1 -0
  139. data/kramdown-2.5.2/test/testcases/block/06_codeblock/disable-highlighting.text +4 -0
  140. data/kramdown-2.5.2/test/testcases/block/06_codeblock/error.html +4 -0
  141. data/kramdown-2.5.2/test/testcases/block/06_codeblock/error.text +4 -0
  142. data/kramdown-2.5.2/test/testcases/block/06_codeblock/guess_lang_css_class.html +15 -0
  143. data/kramdown-2.5.2/test/testcases/block/06_codeblock/guess_lang_css_class.options +2 -0
  144. data/kramdown-2.5.2/test/testcases/block/06_codeblock/guess_lang_css_class.text +13 -0
  145. data/kramdown-2.5.2/test/testcases/block/06_codeblock/highlighting-minted-with-opts.latex +9 -0
  146. data/kramdown-2.5.2/test/testcases/block/06_codeblock/highlighting-minted-with-opts.options +4 -0
  147. data/kramdown-2.5.2/test/testcases/block/06_codeblock/highlighting-minted-with-opts.text +5 -0
  148. data/kramdown-2.5.2/test/testcases/block/06_codeblock/highlighting-minted.latex +8 -0
  149. data/kramdown-2.5.2/test/testcases/block/06_codeblock/highlighting-minted.options +3 -0
  150. data/kramdown-2.5.2/test/testcases/block/06_codeblock/highlighting-minted.text +4 -0
  151. data/kramdown-2.5.2/test/testcases/block/06_codeblock/highlighting-opts.html +6 -0
  152. data/kramdown-2.5.2/test/testcases/block/06_codeblock/highlighting-opts.options +7 -0
  153. data/kramdown-2.5.2/test/testcases/block/06_codeblock/highlighting-opts.text +4 -0
  154. data/kramdown-2.5.2/test/testcases/block/06_codeblock/highlighting.html +5 -0
  155. data/kramdown-2.5.2/test/testcases/block/06_codeblock/highlighting.options +5 -0
  156. data/kramdown-2.5.2/test/testcases/block/06_codeblock/highlighting.text +4 -0
  157. data/kramdown-2.5.2/test/testcases/block/06_codeblock/issue_gh45.html +164 -0
  158. data/kramdown-2.5.2/test/testcases/block/06_codeblock/issue_gh45.test +188 -0
  159. data/kramdown-2.5.2/test/testcases/block/06_codeblock/lazy.html +4 -0
  160. data/kramdown-2.5.2/test/testcases/block/06_codeblock/lazy.text +5 -0
  161. data/kramdown-2.5.2/test/testcases/block/06_codeblock/no_newline_at_end.html +2 -0
  162. data/kramdown-2.5.2/test/testcases/block/06_codeblock/no_newline_at_end.text +1 -0
  163. data/kramdown-2.5.2/test/testcases/block/06_codeblock/no_newline_at_end_1.html +2 -0
  164. data/kramdown-2.5.2/test/testcases/block/06_codeblock/no_newline_at_end_1.text +2 -0
  165. data/kramdown-2.5.2/test/testcases/block/06_codeblock/normal.html +13 -0
  166. data/kramdown-2.5.2/test/testcases/block/06_codeblock/normal.text +10 -0
  167. data/kramdown-2.5.2/test/testcases/block/06_codeblock/rouge/disabled.html +2 -0
  168. data/kramdown-2.5.2/test/testcases/block/06_codeblock/rouge/disabled.options +4 -0
  169. data/kramdown-2.5.2/test/testcases/block/06_codeblock/rouge/disabled.text +1 -0
  170. data/kramdown-2.5.2/test/testcases/block/06_codeblock/rouge/multiple.html +11 -0
  171. data/kramdown-2.5.2/test/testcases/block/06_codeblock/rouge/multiple.options +4 -0
  172. data/kramdown-2.5.2/test/testcases/block/06_codeblock/rouge/multiple.text +11 -0
  173. data/kramdown-2.5.2/test/testcases/block/06_codeblock/rouge/simple.html +10 -0
  174. data/kramdown-2.5.2/test/testcases/block/06_codeblock/rouge/simple.options +3 -0
  175. data/kramdown-2.5.2/test/testcases/block/06_codeblock/rouge/simple.text +9 -0
  176. data/kramdown-2.5.2/test/testcases/block/06_codeblock/tilde_syntax.html +7 -0
  177. data/kramdown-2.5.2/test/testcases/block/06_codeblock/tilde_syntax.text +9 -0
  178. data/kramdown-2.5.2/test/testcases/block/06_codeblock/whitespace.html +3 -0
  179. data/kramdown-2.5.2/test/testcases/block/06_codeblock/whitespace.text +3 -0
  180. data/kramdown-2.5.2/test/testcases/block/06_codeblock/with_blank_line.html +13 -0
  181. data/kramdown-2.5.2/test/testcases/block/06_codeblock/with_blank_line.text +12 -0
  182. data/kramdown-2.5.2/test/testcases/block/06_codeblock/with_eob_marker.html +6 -0
  183. data/kramdown-2.5.2/test/testcases/block/06_codeblock/with_eob_marker.text +5 -0
  184. data/kramdown-2.5.2/test/testcases/block/06_codeblock/with_ial.html +6 -0
  185. data/kramdown-2.5.2/test/testcases/block/06_codeblock/with_ial.text +5 -0
  186. data/kramdown-2.5.2/test/testcases/block/06_codeblock/with_lang_in_fenced_block.html +24 -0
  187. data/kramdown-2.5.2/test/testcases/block/06_codeblock/with_lang_in_fenced_block.options +2 -0
  188. data/kramdown-2.5.2/test/testcases/block/06_codeblock/with_lang_in_fenced_block.text +33 -0
  189. data/kramdown-2.5.2/test/testcases/block/06_codeblock/with_lang_in_fenced_block_any_char.html +8 -0
  190. data/kramdown-2.5.2/test/testcases/block/06_codeblock/with_lang_in_fenced_block_any_char.options +2 -0
  191. data/kramdown-2.5.2/test/testcases/block/06_codeblock/with_lang_in_fenced_block_any_char.text +11 -0
  192. data/kramdown-2.5.2/test/testcases/block/06_codeblock/with_lang_in_fenced_block_name_with_dash.html +3 -0
  193. data/kramdown-2.5.2/test/testcases/block/06_codeblock/with_lang_in_fenced_block_name_with_dash.options +2 -0
  194. data/kramdown-2.5.2/test/testcases/block/06_codeblock/with_lang_in_fenced_block_name_with_dash.text +4 -0
  195. data/kramdown-2.5.2/test/testcases/block/07_horizontal_rule/error.html +7 -0
  196. data/kramdown-2.5.2/test/testcases/block/07_horizontal_rule/error.text +7 -0
  197. data/kramdown-2.5.2/test/testcases/block/07_horizontal_rule/normal.html +19 -0
  198. data/kramdown-2.5.2/test/testcases/block/07_horizontal_rule/normal.text +20 -0
  199. data/kramdown-2.5.2/test/testcases/block/07_horizontal_rule/sepspaces.html +3 -0
  200. data/kramdown-2.5.2/test/testcases/block/07_horizontal_rule/sepspaces.text +3 -0
  201. data/kramdown-2.5.2/test/testcases/block/07_horizontal_rule/septabs.html +3 -0
  202. data/kramdown-2.5.2/test/testcases/block/07_horizontal_rule/septabs.text +3 -0
  203. data/kramdown-2.5.2/test/testcases/block/08_list/brackets_in_item.latex +3 -0
  204. data/kramdown-2.5.2/test/testcases/block/08_list/brackets_in_item.text +1 -0
  205. data/kramdown-2.5.2/test/testcases/block/08_list/escaping.html +21 -0
  206. data/kramdown-2.5.2/test/testcases/block/08_list/escaping.text +21 -0
  207. data/kramdown-2.5.2/test/testcases/block/08_list/item_ial.html +10 -0
  208. data/kramdown-2.5.2/test/testcases/block/08_list/item_ial.text +8 -0
  209. data/kramdown-2.5.2/test/testcases/block/08_list/lazy.html +39 -0
  210. data/kramdown-2.5.2/test/testcases/block/08_list/lazy.text +29 -0
  211. data/kramdown-2.5.2/test/testcases/block/08_list/lazy_and_nested.html +9 -0
  212. data/kramdown-2.5.2/test/testcases/block/08_list/lazy_and_nested.text +4 -0
  213. data/kramdown-2.5.2/test/testcases/block/08_list/list_and_hr.html +9 -0
  214. data/kramdown-2.5.2/test/testcases/block/08_list/list_and_hr.text +5 -0
  215. data/kramdown-2.5.2/test/testcases/block/08_list/list_and_others.html +40 -0
  216. data/kramdown-2.5.2/test/testcases/block/08_list/list_and_others.text +26 -0
  217. data/kramdown-2.5.2/test/testcases/block/08_list/mixed.html +117 -0
  218. data/kramdown-2.5.2/test/testcases/block/08_list/mixed.text +66 -0
  219. data/kramdown-2.5.2/test/testcases/block/08_list/nested.html +17 -0
  220. data/kramdown-2.5.2/test/testcases/block/08_list/nested.text +7 -0
  221. data/kramdown-2.5.2/test/testcases/block/08_list/nested_compact.kramdown +7 -0
  222. data/kramdown-2.5.2/test/testcases/block/08_list/nested_compact.text +6 -0
  223. data/kramdown-2.5.2/test/testcases/block/08_list/other_first_element.html +39 -0
  224. data/kramdown-2.5.2/test/testcases/block/08_list/other_first_element.text +18 -0
  225. data/kramdown-2.5.2/test/testcases/block/08_list/simple_ol.html +19 -0
  226. data/kramdown-2.5.2/test/testcases/block/08_list/simple_ol.text +13 -0
  227. data/kramdown-2.5.2/test/testcases/block/08_list/simple_ul.html +48 -0
  228. data/kramdown-2.5.2/test/testcases/block/08_list/simple_ul.text +36 -0
  229. data/kramdown-2.5.2/test/testcases/block/08_list/single_item.html +3 -0
  230. data/kramdown-2.5.2/test/testcases/block/08_list/single_item.text +1 -0
  231. data/kramdown-2.5.2/test/testcases/block/08_list/special_cases.html +72 -0
  232. data/kramdown-2.5.2/test/testcases/block/08_list/special_cases.text +49 -0
  233. data/kramdown-2.5.2/test/testcases/block/09_html/cdata_section.html +10 -0
  234. data/kramdown-2.5.2/test/testcases/block/09_html/cdata_section.text +10 -0
  235. data/kramdown-2.5.2/test/testcases/block/09_html/comment.html +18 -0
  236. data/kramdown-2.5.2/test/testcases/block/09_html/comment.text +15 -0
  237. data/kramdown-2.5.2/test/testcases/block/09_html/content_model/deflists.html +6 -0
  238. data/kramdown-2.5.2/test/testcases/block/09_html/content_model/deflists.options +1 -0
  239. data/kramdown-2.5.2/test/testcases/block/09_html/content_model/deflists.text +6 -0
  240. data/kramdown-2.5.2/test/testcases/block/09_html/content_model/tables.html +14 -0
  241. data/kramdown-2.5.2/test/testcases/block/09_html/content_model/tables.options +1 -0
  242. data/kramdown-2.5.2/test/testcases/block/09_html/content_model/tables.text +14 -0
  243. data/kramdown-2.5.2/test/testcases/block/09_html/html5_attributes.html +15 -0
  244. data/kramdown-2.5.2/test/testcases/block/09_html/html5_attributes.text +15 -0
  245. data/kramdown-2.5.2/test/testcases/block/09_html/html_after_block.html +7 -0
  246. data/kramdown-2.5.2/test/testcases/block/09_html/html_after_block.text +5 -0
  247. data/kramdown-2.5.2/test/testcases/block/09_html/html_and_codeblocks.html +15 -0
  248. data/kramdown-2.5.2/test/testcases/block/09_html/html_and_codeblocks.options +1 -0
  249. data/kramdown-2.5.2/test/testcases/block/09_html/html_and_codeblocks.text +13 -0
  250. data/kramdown-2.5.2/test/testcases/block/09_html/html_and_headers.html +5 -0
  251. data/kramdown-2.5.2/test/testcases/block/09_html/html_and_headers.text +6 -0
  252. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/code.html +10 -0
  253. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/code.text +9 -0
  254. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/comment.html +7 -0
  255. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/comment.text +8 -0
  256. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/emphasis.html +6 -0
  257. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/emphasis.text +6 -0
  258. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/entity.html +1 -0
  259. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/entity.text +1 -0
  260. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/header.html +6 -0
  261. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/header.options +2 -0
  262. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/header.text +6 -0
  263. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/list_dl.html +8 -0
  264. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/list_dl.text +8 -0
  265. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/list_ol.html +15 -0
  266. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/list_ol.text +17 -0
  267. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/list_ul.html +19 -0
  268. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/list_ul.text +22 -0
  269. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/options +1 -0
  270. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/paragraph.html +3 -0
  271. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/paragraph.text +4 -0
  272. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/table_normal.html +12 -0
  273. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/table_normal.text +12 -0
  274. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/table_simple.html +64 -0
  275. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/table_simple.text +74 -0
  276. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/typography.html +1 -0
  277. data/kramdown-2.5.2/test/testcases/block/09_html/html_to_native/typography.text +1 -0
  278. data/kramdown-2.5.2/test/testcases/block/09_html/invalid_html_1.html +5 -0
  279. data/kramdown-2.5.2/test/testcases/block/09_html/invalid_html_1.text +5 -0
  280. data/kramdown-2.5.2/test/testcases/block/09_html/invalid_html_2.html +5 -0
  281. data/kramdown-2.5.2/test/testcases/block/09_html/invalid_html_2.text +5 -0
  282. data/kramdown-2.5.2/test/testcases/block/09_html/markdown_attr.html +38 -0
  283. data/kramdown-2.5.2/test/testcases/block/09_html/markdown_attr.text +38 -0
  284. data/kramdown-2.5.2/test/testcases/block/09_html/not_parsed.html +24 -0
  285. data/kramdown-2.5.2/test/testcases/block/09_html/not_parsed.text +24 -0
  286. data/kramdown-2.5.2/test/testcases/block/09_html/parse_as_raw.html +35 -0
  287. data/kramdown-2.5.2/test/testcases/block/09_html/parse_as_raw.htmlinput +34 -0
  288. data/kramdown-2.5.2/test/testcases/block/09_html/parse_as_raw.options +1 -0
  289. data/kramdown-2.5.2/test/testcases/block/09_html/parse_as_raw.text +33 -0
  290. data/kramdown-2.5.2/test/testcases/block/09_html/parse_as_span.html +12 -0
  291. data/kramdown-2.5.2/test/testcases/block/09_html/parse_as_span.htmlinput +12 -0
  292. data/kramdown-2.5.2/test/testcases/block/09_html/parse_as_span.options +1 -0
  293. data/kramdown-2.5.2/test/testcases/block/09_html/parse_as_span.text +9 -0
  294. data/kramdown-2.5.2/test/testcases/block/09_html/parse_block_html.html +21 -0
  295. data/kramdown-2.5.2/test/testcases/block/09_html/parse_block_html.options +1 -0
  296. data/kramdown-2.5.2/test/testcases/block/09_html/parse_block_html.text +17 -0
  297. data/kramdown-2.5.2/test/testcases/block/09_html/processing_instruction.html +12 -0
  298. data/kramdown-2.5.2/test/testcases/block/09_html/processing_instruction.text +12 -0
  299. data/kramdown-2.5.2/test/testcases/block/09_html/simple.html +60 -0
  300. data/kramdown-2.5.2/test/testcases/block/09_html/simple.options +1 -0
  301. data/kramdown-2.5.2/test/testcases/block/09_html/simple.text +55 -0
  302. data/kramdown-2.5.2/test/testcases/block/09_html/standalone_image_in_div.htmlinput +7 -0
  303. data/kramdown-2.5.2/test/testcases/block/09_html/standalone_image_in_div.text +8 -0
  304. data/kramdown-2.5.2/test/testcases/block/09_html/table.kramdown +8 -0
  305. data/kramdown-2.5.2/test/testcases/block/09_html/table.text +7 -0
  306. data/kramdown-2.5.2/test/testcases/block/09_html/textarea.html +8 -0
  307. data/kramdown-2.5.2/test/testcases/block/09_html/textarea.text +8 -0
  308. data/kramdown-2.5.2/test/testcases/block/09_html/xml.html +8 -0
  309. data/kramdown-2.5.2/test/testcases/block/09_html/xml.text +7 -0
  310. data/kramdown-2.5.2/test/testcases/block/10_ald/simple.html +2 -0
  311. data/kramdown-2.5.2/test/testcases/block/10_ald/simple.text +8 -0
  312. data/kramdown-2.5.2/test/testcases/block/11_ial/auto_id_and_ial.html +1 -0
  313. data/kramdown-2.5.2/test/testcases/block/11_ial/auto_id_and_ial.options +1 -0
  314. data/kramdown-2.5.2/test/testcases/block/11_ial/auto_id_and_ial.text +2 -0
  315. data/kramdown-2.5.2/test/testcases/block/11_ial/nested.html +11 -0
  316. data/kramdown-2.5.2/test/testcases/block/11_ial/nested.text +15 -0
  317. data/kramdown-2.5.2/test/testcases/block/11_ial/simple.html +29 -0
  318. data/kramdown-2.5.2/test/testcases/block/11_ial/simple.text +41 -0
  319. data/kramdown-2.5.2/test/testcases/block/12_extension/comment.html +8 -0
  320. data/kramdown-2.5.2/test/testcases/block/12_extension/comment.text +12 -0
  321. data/kramdown-2.5.2/test/testcases/block/12_extension/ignored.html +8 -0
  322. data/kramdown-2.5.2/test/testcases/block/12_extension/ignored.text +8 -0
  323. data/kramdown-2.5.2/test/testcases/block/12_extension/nomarkdown.html +10 -0
  324. data/kramdown-2.5.2/test/testcases/block/12_extension/nomarkdown.kramdown +20 -0
  325. data/kramdown-2.5.2/test/testcases/block/12_extension/nomarkdown.latex +13 -0
  326. data/kramdown-2.5.2/test/testcases/block/12_extension/nomarkdown.text +21 -0
  327. data/kramdown-2.5.2/test/testcases/block/12_extension/options.html +21 -0
  328. data/kramdown-2.5.2/test/testcases/block/12_extension/options.text +23 -0
  329. data/kramdown-2.5.2/test/testcases/block/12_extension/options2.html +10 -0
  330. data/kramdown-2.5.2/test/testcases/block/12_extension/options2.text +5 -0
  331. data/kramdown-2.5.2/test/testcases/block/12_extension/options3.html +8 -0
  332. data/kramdown-2.5.2/test/testcases/block/12_extension/options3.text +7 -0
  333. data/kramdown-2.5.2/test/testcases/block/13_definition_list/auto_ids.html +15 -0
  334. data/kramdown-2.5.2/test/testcases/block/13_definition_list/auto_ids.text +18 -0
  335. data/kramdown-2.5.2/test/testcases/block/13_definition_list/definition_at_beginning.html +1 -0
  336. data/kramdown-2.5.2/test/testcases/block/13_definition_list/definition_at_beginning.text +1 -0
  337. data/kramdown-2.5.2/test/testcases/block/13_definition_list/deflist_ial.html +4 -0
  338. data/kramdown-2.5.2/test/testcases/block/13_definition_list/deflist_ial.text +4 -0
  339. data/kramdown-2.5.2/test/testcases/block/13_definition_list/item_ial.html +17 -0
  340. data/kramdown-2.5.2/test/testcases/block/13_definition_list/item_ial.text +16 -0
  341. data/kramdown-2.5.2/test/testcases/block/13_definition_list/multiple_terms.html +13 -0
  342. data/kramdown-2.5.2/test/testcases/block/13_definition_list/multiple_terms.text +10 -0
  343. data/kramdown-2.5.2/test/testcases/block/13_definition_list/no_def_list.html +2 -0
  344. data/kramdown-2.5.2/test/testcases/block/13_definition_list/no_def_list.text +2 -0
  345. data/kramdown-2.5.2/test/testcases/block/13_definition_list/para_wrapping.html +10 -0
  346. data/kramdown-2.5.2/test/testcases/block/13_definition_list/para_wrapping.text +6 -0
  347. data/kramdown-2.5.2/test/testcases/block/13_definition_list/separated_by_eob.html +8 -0
  348. data/kramdown-2.5.2/test/testcases/block/13_definition_list/separated_by_eob.text +5 -0
  349. data/kramdown-2.5.2/test/testcases/block/13_definition_list/simple.html +10 -0
  350. data/kramdown-2.5.2/test/testcases/block/13_definition_list/simple.text +10 -0
  351. data/kramdown-2.5.2/test/testcases/block/13_definition_list/styled_terms.html +4 -0
  352. data/kramdown-2.5.2/test/testcases/block/13_definition_list/styled_terms.text +2 -0
  353. data/kramdown-2.5.2/test/testcases/block/13_definition_list/too_much_space.html +3 -0
  354. data/kramdown-2.5.2/test/testcases/block/13_definition_list/too_much_space.text +4 -0
  355. data/kramdown-2.5.2/test/testcases/block/13_definition_list/with_blocks.html +38 -0
  356. data/kramdown-2.5.2/test/testcases/block/13_definition_list/with_blocks.text +24 -0
  357. data/kramdown-2.5.2/test/testcases/block/14_table/empty_tag_in_cell.html +8 -0
  358. data/kramdown-2.5.2/test/testcases/block/14_table/empty_tag_in_cell.options +1 -0
  359. data/kramdown-2.5.2/test/testcases/block/14_table/empty_tag_in_cell.text +1 -0
  360. data/kramdown-2.5.2/test/testcases/block/14_table/errors.html +12 -0
  361. data/kramdown-2.5.2/test/testcases/block/14_table/errors.text +13 -0
  362. data/kramdown-2.5.2/test/testcases/block/14_table/escaping.html +52 -0
  363. data/kramdown-2.5.2/test/testcases/block/14_table/escaping.text +19 -0
  364. data/kramdown-2.5.2/test/testcases/block/14_table/footer.html +65 -0
  365. data/kramdown-2.5.2/test/testcases/block/14_table/footer.text +25 -0
  366. data/kramdown-2.5.2/test/testcases/block/14_table/header.html +117 -0
  367. data/kramdown-2.5.2/test/testcases/block/14_table/header.text +39 -0
  368. data/kramdown-2.5.2/test/testcases/block/14_table/no_table.html +3 -0
  369. data/kramdown-2.5.2/test/testcases/block/14_table/no_table.text +3 -0
  370. data/kramdown-2.5.2/test/testcases/block/14_table/simple.html +192 -0
  371. data/kramdown-2.5.2/test/testcases/block/14_table/simple.text +53 -0
  372. data/kramdown-2.5.2/test/testcases/block/14_table/table_with_footnote.html +25 -0
  373. data/kramdown-2.5.2/test/testcases/block/14_table/table_with_footnote.latex +11 -0
  374. data/kramdown-2.5.2/test/testcases/block/14_table/table_with_footnote.text +6 -0
  375. data/kramdown-2.5.2/test/testcases/block/15_math/gh_128.html +1 -0
  376. data/kramdown-2.5.2/test/testcases/block/15_math/gh_128.text +1 -0
  377. data/kramdown-2.5.2/test/testcases/block/15_math/no_engine.html +3 -0
  378. data/kramdown-2.5.2/test/testcases/block/15_math/no_engine.options +1 -0
  379. data/kramdown-2.5.2/test/testcases/block/15_math/no_engine.text +2 -0
  380. data/kramdown-2.5.2/test/testcases/block/15_math/normal.html +30 -0
  381. data/kramdown-2.5.2/test/testcases/block/15_math/normal.text +30 -0
  382. data/kramdown-2.5.2/test/testcases/block/16_toc/no_toc.html +14 -0
  383. data/kramdown-2.5.2/test/testcases/block/16_toc/no_toc.text +16 -0
  384. data/kramdown-2.5.2/test/testcases/block/16_toc/toc_exclude.html +35 -0
  385. data/kramdown-2.5.2/test/testcases/block/16_toc/toc_exclude.options +1 -0
  386. data/kramdown-2.5.2/test/testcases/block/16_toc/toc_exclude.text +19 -0
  387. data/kramdown-2.5.2/test/testcases/block/16_toc/toc_levels.html +24 -0
  388. data/kramdown-2.5.2/test/testcases/block/16_toc/toc_levels.options +2 -0
  389. data/kramdown-2.5.2/test/testcases/block/16_toc/toc_levels.text +16 -0
  390. data/kramdown-2.5.2/test/testcases/block/16_toc/toc_with_footnotes.html +13 -0
  391. data/kramdown-2.5.2/test/testcases/block/16_toc/toc_with_footnotes.options +1 -0
  392. data/kramdown-2.5.2/test/testcases/block/16_toc/toc_with_footnotes.text +6 -0
  393. data/kramdown-2.5.2/test/testcases/block/16_toc/toc_with_links.html +8 -0
  394. data/kramdown-2.5.2/test/testcases/block/16_toc/toc_with_links.options +2 -0
  395. data/kramdown-2.5.2/test/testcases/block/16_toc/toc_with_links.text +8 -0
  396. data/kramdown-2.5.2/test/testcases/cjk-line-break.html +4 -0
  397. data/kramdown-2.5.2/test/testcases/cjk-line-break.options +1 -0
  398. data/kramdown-2.5.2/test/testcases/cjk-line-break.text +12 -0
  399. data/kramdown-2.5.2/test/testcases/encoding.html +46 -0
  400. data/kramdown-2.5.2/test/testcases/encoding.text +28 -0
  401. data/kramdown-2.5.2/test/testcases/man/example.man +123 -0
  402. data/kramdown-2.5.2/test/testcases/man/example.text +85 -0
  403. data/kramdown-2.5.2/test/testcases/man/heading-name-dash-description.man +4 -0
  404. data/kramdown-2.5.2/test/testcases/man/heading-name-dash-description.text +1 -0
  405. data/kramdown-2.5.2/test/testcases/man/heading-name-description.man +4 -0
  406. data/kramdown-2.5.2/test/testcases/man/heading-name-description.text +2 -0
  407. data/kramdown-2.5.2/test/testcases/man/heading-name-section-description.man +4 -0
  408. data/kramdown-2.5.2/test/testcases/man/heading-name-section-description.text +1 -0
  409. data/kramdown-2.5.2/test/testcases/man/heading-name-section.man +2 -0
  410. data/kramdown-2.5.2/test/testcases/man/heading-name-section.text +1 -0
  411. data/kramdown-2.5.2/test/testcases/man/heading-name.man +2 -0
  412. data/kramdown-2.5.2/test/testcases/man/heading-name.text +1 -0
  413. data/kramdown-2.5.2/test/testcases/man/sections.man +4 -0
  414. data/kramdown-2.5.2/test/testcases/man/sections.text +11 -0
  415. data/kramdown-2.5.2/test/testcases/man/text-escaping.man +8 -0
  416. data/kramdown-2.5.2/test/testcases/man/text-escaping.text +7 -0
  417. data/kramdown-2.5.2/test/testcases/span/01_link/empty.html +5 -0
  418. data/kramdown-2.5.2/test/testcases/span/01_link/empty.text +5 -0
  419. data/kramdown-2.5.2/test/testcases/span/01_link/empty_title.htmlinput +3 -0
  420. data/kramdown-2.5.2/test/testcases/span/01_link/empty_title.text +7 -0
  421. data/kramdown-2.5.2/test/testcases/span/01_link/image_in_a.html +5 -0
  422. data/kramdown-2.5.2/test/testcases/span/01_link/image_in_a.text +5 -0
  423. data/kramdown-2.5.2/test/testcases/span/01_link/imagelinks.html +15 -0
  424. data/kramdown-2.5.2/test/testcases/span/01_link/imagelinks.text +18 -0
  425. data/kramdown-2.5.2/test/testcases/span/01_link/inline.html +46 -0
  426. data/kramdown-2.5.2/test/testcases/span/01_link/inline.text +48 -0
  427. data/kramdown-2.5.2/test/testcases/span/01_link/latex_escaping.latex +6 -0
  428. data/kramdown-2.5.2/test/testcases/span/01_link/latex_escaping.text +5 -0
  429. data/kramdown-2.5.2/test/testcases/span/01_link/link_defs.html +9 -0
  430. data/kramdown-2.5.2/test/testcases/span/01_link/link_defs.text +27 -0
  431. data/kramdown-2.5.2/test/testcases/span/01_link/link_defs_with_ial.html +4 -0
  432. data/kramdown-2.5.2/test/testcases/span/01_link/link_defs_with_ial.text +16 -0
  433. data/kramdown-2.5.2/test/testcases/span/01_link/links_with_angle_brackets.html +3 -0
  434. data/kramdown-2.5.2/test/testcases/span/01_link/links_with_angle_brackets.text +3 -0
  435. data/kramdown-2.5.2/test/testcases/span/01_link/reference.html +37 -0
  436. data/kramdown-2.5.2/test/testcases/span/01_link/reference.options +3 -0
  437. data/kramdown-2.5.2/test/testcases/span/01_link/reference.text +53 -0
  438. data/kramdown-2.5.2/test/testcases/span/02_emphasis/empty.html +3 -0
  439. data/kramdown-2.5.2/test/testcases/span/02_emphasis/empty.text +3 -0
  440. data/kramdown-2.5.2/test/testcases/span/02_emphasis/errors.html +9 -0
  441. data/kramdown-2.5.2/test/testcases/span/02_emphasis/errors.text +9 -0
  442. data/kramdown-2.5.2/test/testcases/span/02_emphasis/nesting.html +41 -0
  443. data/kramdown-2.5.2/test/testcases/span/02_emphasis/nesting.text +36 -0
  444. data/kramdown-2.5.2/test/testcases/span/02_emphasis/normal.html +70 -0
  445. data/kramdown-2.5.2/test/testcases/span/02_emphasis/normal.options +1 -0
  446. data/kramdown-2.5.2/test/testcases/span/02_emphasis/normal.text +68 -0
  447. data/kramdown-2.5.2/test/testcases/span/03_codespan/empty.html +5 -0
  448. data/kramdown-2.5.2/test/testcases/span/03_codespan/empty.text +5 -0
  449. data/kramdown-2.5.2/test/testcases/span/03_codespan/errors.html +1 -0
  450. data/kramdown-2.5.2/test/testcases/span/03_codespan/errors.text +1 -0
  451. data/kramdown-2.5.2/test/testcases/span/03_codespan/highlighting-minted.latex +2 -0
  452. data/kramdown-2.5.2/test/testcases/span/03_codespan/highlighting-minted.options +1 -0
  453. data/kramdown-2.5.2/test/testcases/span/03_codespan/highlighting-minted.text +1 -0
  454. data/kramdown-2.5.2/test/testcases/span/03_codespan/highlighting.html +1 -0
  455. data/kramdown-2.5.2/test/testcases/span/03_codespan/highlighting.text +1 -0
  456. data/kramdown-2.5.2/test/testcases/span/03_codespan/normal-css-class.html +1 -0
  457. data/kramdown-2.5.2/test/testcases/span/03_codespan/normal-css-class.options +2 -0
  458. data/kramdown-2.5.2/test/testcases/span/03_codespan/normal-css-class.text +1 -0
  459. data/kramdown-2.5.2/test/testcases/span/03_codespan/normal.html +20 -0
  460. data/kramdown-2.5.2/test/testcases/span/03_codespan/normal.text +20 -0
  461. data/kramdown-2.5.2/test/testcases/span/03_codespan/rouge/disabled.html +1 -0
  462. data/kramdown-2.5.2/test/testcases/span/03_codespan/rouge/disabled.options +4 -0
  463. data/kramdown-2.5.2/test/testcases/span/03_codespan/rouge/disabled.text +1 -0
  464. data/kramdown-2.5.2/test/testcases/span/03_codespan/rouge/simple.html +1 -0
  465. data/kramdown-2.5.2/test/testcases/span/03_codespan/rouge/simple.options +1 -0
  466. data/kramdown-2.5.2/test/testcases/span/03_codespan/rouge/simple.text +1 -0
  467. data/kramdown-2.5.2/test/testcases/span/04_footnote/backlink_inline.html +79 -0
  468. data/kramdown-2.5.2/test/testcases/span/04_footnote/backlink_inline.options +1 -0
  469. data/kramdown-2.5.2/test/testcases/span/04_footnote/backlink_inline.text +38 -0
  470. data/kramdown-2.5.2/test/testcases/span/04_footnote/backlink_text.html +9 -0
  471. data/kramdown-2.5.2/test/testcases/span/04_footnote/backlink_text.options +1 -0
  472. data/kramdown-2.5.2/test/testcases/span/04_footnote/backlink_text.text +3 -0
  473. data/kramdown-2.5.2/test/testcases/span/04_footnote/definitions.html +17 -0
  474. data/kramdown-2.5.2/test/testcases/span/04_footnote/definitions.latex +17 -0
  475. data/kramdown-2.5.2/test/testcases/span/04_footnote/definitions.text +24 -0
  476. data/kramdown-2.5.2/test/testcases/span/04_footnote/footnote_link_text.html +12 -0
  477. data/kramdown-2.5.2/test/testcases/span/04_footnote/footnote_link_text.options +1 -0
  478. data/kramdown-2.5.2/test/testcases/span/04_footnote/footnote_link_text.text +4 -0
  479. data/kramdown-2.5.2/test/testcases/span/04_footnote/footnote_nr.html +12 -0
  480. data/kramdown-2.5.2/test/testcases/span/04_footnote/footnote_nr.latex +2 -0
  481. data/kramdown-2.5.2/test/testcases/span/04_footnote/footnote_nr.options +1 -0
  482. data/kramdown-2.5.2/test/testcases/span/04_footnote/footnote_nr.text +4 -0
  483. data/kramdown-2.5.2/test/testcases/span/04_footnote/footnote_prefix.html +12 -0
  484. data/kramdown-2.5.2/test/testcases/span/04_footnote/footnote_prefix.options +1 -0
  485. data/kramdown-2.5.2/test/testcases/span/04_footnote/footnote_prefix.text +4 -0
  486. data/kramdown-2.5.2/test/testcases/span/04_footnote/inside_footnote.html +17 -0
  487. data/kramdown-2.5.2/test/testcases/span/04_footnote/inside_footnote.text +9 -0
  488. data/kramdown-2.5.2/test/testcases/span/04_footnote/markers.html +46 -0
  489. data/kramdown-2.5.2/test/testcases/span/04_footnote/markers.latex +23 -0
  490. data/kramdown-2.5.2/test/testcases/span/04_footnote/markers.options +2 -0
  491. data/kramdown-2.5.2/test/testcases/span/04_footnote/markers.text +27 -0
  492. data/kramdown-2.5.2/test/testcases/span/04_footnote/placement.html +11 -0
  493. data/kramdown-2.5.2/test/testcases/span/04_footnote/placement.options +1 -0
  494. data/kramdown-2.5.2/test/testcases/span/04_footnote/placement.text +8 -0
  495. data/kramdown-2.5.2/test/testcases/span/04_footnote/regexp_problem.html +14 -0
  496. data/kramdown-2.5.2/test/testcases/span/04_footnote/regexp_problem.options +2 -0
  497. data/kramdown-2.5.2/test/testcases/span/04_footnote/regexp_problem.text +52 -0
  498. data/kramdown-2.5.2/test/testcases/span/04_footnote/without_backlink.html +9 -0
  499. data/kramdown-2.5.2/test/testcases/span/04_footnote/without_backlink.options +1 -0
  500. data/kramdown-2.5.2/test/testcases/span/04_footnote/without_backlink.text +3 -0
  501. data/kramdown-2.5.2/test/testcases/span/05_html/across_lines.html +1 -0
  502. data/kramdown-2.5.2/test/testcases/span/05_html/across_lines.text +2 -0
  503. data/kramdown-2.5.2/test/testcases/span/05_html/button.html +7 -0
  504. data/kramdown-2.5.2/test/testcases/span/05_html/button.text +7 -0
  505. data/kramdown-2.5.2/test/testcases/span/05_html/invalid.html +1 -0
  506. data/kramdown-2.5.2/test/testcases/span/05_html/invalid.text +1 -0
  507. data/kramdown-2.5.2/test/testcases/span/05_html/link_with_mailto.html +1 -0
  508. data/kramdown-2.5.2/test/testcases/span/05_html/link_with_mailto.text +1 -0
  509. data/kramdown-2.5.2/test/testcases/span/05_html/mark_element.html +3 -0
  510. data/kramdown-2.5.2/test/testcases/span/05_html/mark_element.text +3 -0
  511. data/kramdown-2.5.2/test/testcases/span/05_html/markdown_attr.html +6 -0
  512. data/kramdown-2.5.2/test/testcases/span/05_html/markdown_attr.text +6 -0
  513. data/kramdown-2.5.2/test/testcases/span/05_html/normal.html +43 -0
  514. data/kramdown-2.5.2/test/testcases/span/05_html/normal.text +43 -0
  515. data/kramdown-2.5.2/test/testcases/span/05_html/raw_span_elements.html +2 -0
  516. data/kramdown-2.5.2/test/testcases/span/05_html/raw_span_elements.text +2 -0
  517. data/kramdown-2.5.2/test/testcases/span/05_html/xml.html +5 -0
  518. data/kramdown-2.5.2/test/testcases/span/05_html/xml.text +5 -0
  519. data/kramdown-2.5.2/test/testcases/span/abbreviations/abbrev.html +25 -0
  520. data/kramdown-2.5.2/test/testcases/span/abbreviations/abbrev.text +41 -0
  521. data/kramdown-2.5.2/test/testcases/span/abbreviations/abbrev_defs.html +2 -0
  522. data/kramdown-2.5.2/test/testcases/span/abbreviations/abbrev_defs.text +5 -0
  523. data/kramdown-2.5.2/test/testcases/span/abbreviations/abbrev_in_html.html +9 -0
  524. data/kramdown-2.5.2/test/testcases/span/abbreviations/abbrev_in_html.text +10 -0
  525. data/kramdown-2.5.2/test/testcases/span/abbreviations/in_footnote.html +9 -0
  526. data/kramdown-2.5.2/test/testcases/span/abbreviations/in_footnote.text +5 -0
  527. data/kramdown-2.5.2/test/testcases/span/autolinks/url_links.html +15 -0
  528. data/kramdown-2.5.2/test/testcases/span/autolinks/url_links.text +16 -0
  529. data/kramdown-2.5.2/test/testcases/span/escaped_chars/normal.html +47 -0
  530. data/kramdown-2.5.2/test/testcases/span/escaped_chars/normal.text +47 -0
  531. data/kramdown-2.5.2/test/testcases/span/extension/comment.html +6 -0
  532. data/kramdown-2.5.2/test/testcases/span/extension/comment.text +6 -0
  533. data/kramdown-2.5.2/test/testcases/span/extension/ignored.html +1 -0
  534. data/kramdown-2.5.2/test/testcases/span/extension/ignored.text +1 -0
  535. data/kramdown-2.5.2/test/testcases/span/extension/nomarkdown.html +1 -0
  536. data/kramdown-2.5.2/test/testcases/span/extension/nomarkdown.text +1 -0
  537. data/kramdown-2.5.2/test/testcases/span/extension/options.html +1 -0
  538. data/kramdown-2.5.2/test/testcases/span/extension/options.text +1 -0
  539. data/kramdown-2.5.2/test/testcases/span/ial/simple.html +6 -0
  540. data/kramdown-2.5.2/test/testcases/span/ial/simple.text +6 -0
  541. data/kramdown-2.5.2/test/testcases/span/line_breaks/normal.html +11 -0
  542. data/kramdown-2.5.2/test/testcases/span/line_breaks/normal.latex +12 -0
  543. data/kramdown-2.5.2/test/testcases/span/line_breaks/normal.text +11 -0
  544. data/kramdown-2.5.2/test/testcases/span/math/no_engine.html +1 -0
  545. data/kramdown-2.5.2/test/testcases/span/math/no_engine.options +1 -0
  546. data/kramdown-2.5.2/test/testcases/span/math/no_engine.text +1 -0
  547. data/kramdown-2.5.2/test/testcases/span/math/normal.html +10 -0
  548. data/kramdown-2.5.2/test/testcases/span/math/normal.text +10 -0
  549. data/kramdown-2.5.2/test/testcases/span/text_substitutions/entities.html +6 -0
  550. data/kramdown-2.5.2/test/testcases/span/text_substitutions/entities.options +1 -0
  551. data/kramdown-2.5.2/test/testcases/span/text_substitutions/entities.text +6 -0
  552. data/kramdown-2.5.2/test/testcases/span/text_substitutions/entities_as_char.html +1 -0
  553. data/kramdown-2.5.2/test/testcases/span/text_substitutions/entities_as_char.options +2 -0
  554. data/kramdown-2.5.2/test/testcases/span/text_substitutions/entities_as_char.text +1 -0
  555. data/kramdown-2.5.2/test/testcases/span/text_substitutions/entities_as_input.html +1 -0
  556. data/kramdown-2.5.2/test/testcases/span/text_substitutions/entities_as_input.options +1 -0
  557. data/kramdown-2.5.2/test/testcases/span/text_substitutions/entities_as_input.text +1 -0
  558. data/kramdown-2.5.2/test/testcases/span/text_substitutions/entities_numeric.html +1 -0
  559. data/kramdown-2.5.2/test/testcases/span/text_substitutions/entities_numeric.options +1 -0
  560. data/kramdown-2.5.2/test/testcases/span/text_substitutions/entities_numeric.text +1 -0
  561. data/kramdown-2.5.2/test/testcases/span/text_substitutions/entities_symbolic.html +1 -0
  562. data/kramdown-2.5.2/test/testcases/span/text_substitutions/entities_symbolic.options +1 -0
  563. data/kramdown-2.5.2/test/testcases/span/text_substitutions/entities_symbolic.text +1 -0
  564. data/kramdown-2.5.2/test/testcases/span/text_substitutions/greaterthan.html +1 -0
  565. data/kramdown-2.5.2/test/testcases/span/text_substitutions/greaterthan.text +1 -0
  566. data/kramdown-2.5.2/test/testcases/span/text_substitutions/lowerthan.html +1 -0
  567. data/kramdown-2.5.2/test/testcases/span/text_substitutions/lowerthan.text +1 -0
  568. data/kramdown-2.5.2/test/testcases/span/text_substitutions/typography.html +40 -0
  569. data/kramdown-2.5.2/test/testcases/span/text_substitutions/typography.options +1 -0
  570. data/kramdown-2.5.2/test/testcases/span/text_substitutions/typography.text +40 -0
  571. data/kramdown-2.5.2/test/testcases/span/text_substitutions/typography_subst.html +3 -0
  572. data/kramdown-2.5.2/test/testcases/span/text_substitutions/typography_subst.latex +4 -0
  573. data/kramdown-2.5.2/test/testcases/span/text_substitutions/typography_subst.options +8 -0
  574. data/kramdown-2.5.2/test/testcases/span/text_substitutions/typography_subst.text +3 -0
  575. data/mega-sharp-mod.gemspec +12 -0
  576. metadata +615 -0
@@ -0,0 +1,171 @@
1
+ # -*- coding: utf-8; frozen_string_literal: true -*-
2
+ #
3
+ #--
4
+ # Copyright (C) 2009-2026 Thomas Leitner <t_leitner@gmx.at>
5
+ #
6
+ # This file is part of kramdown which is licensed under the MIT.
7
+ #++
8
+ #
9
+
10
+ require 'kramdown/parser/kramdown/block_boundary'
11
+
12
+ module Kramdown
13
+ module Parser
14
+ class Kramdown
15
+
16
+ TABLE_SEP_LINE = /^([+|: \t-]*?-[+|: \t-]*?)[ \t]*\n/
17
+ TABLE_HSEP_ALIGN = /[ \t]?(:?)-+(:?)[ \t]?/
18
+ TABLE_FSEP_LINE = /^[+|: \t=]*?=[+|: \t=]*?[ \t]*\n/
19
+ TABLE_ROW_LINE = /^(.*?)[ \t]*\n/
20
+ TABLE_PIPE_CHECK = /(?:\||.*?[^\\\n]\|)/
21
+ TABLE_LINE = /#{TABLE_PIPE_CHECK}.*?\n/
22
+ TABLE_START = /^#{OPT_SPACE}(?=\S)#{TABLE_LINE}/
23
+
24
+ # Parse the table at the current location.
25
+ def parse_table
26
+ return false unless after_block_boundary?
27
+
28
+ saved_pos = @src.save_pos
29
+ orig_pos = @src.pos
30
+ table = new_block_el(:table, nil, nil, alignment: [], location: @src.current_line_number)
31
+ leading_pipe = (@src.check(TABLE_LINE) =~ /^\s*\|/)
32
+ @src.scan(TABLE_SEP_LINE)
33
+
34
+ rows = []
35
+ has_footer = false
36
+ columns = 0
37
+
38
+ add_container = lambda do |type, force|
39
+ if !has_footer || type != :tbody || force
40
+ cont = Element.new(type)
41
+ cont.children, rows = rows, []
42
+ table.children << cont
43
+ end
44
+ end
45
+
46
+ until @src.eos?
47
+ break unless @src.check(TABLE_LINE)
48
+ if @src.scan(TABLE_SEP_LINE)
49
+ if rows.empty?
50
+ # nothing to do, ignoring multiple consecutive separator lines
51
+ elsif table.options[:alignment].empty? && !has_footer
52
+ add_container.call(:thead, false)
53
+ table.options[:alignment] = @src[1].scan(TABLE_HSEP_ALIGN).map do |left, right|
54
+ (left.empty? && right.empty? && :default) || (right.empty? && :left) ||
55
+ (left.empty? && :right) || :center
56
+ end
57
+ else # treat as normal separator line
58
+ add_container.call(:tbody, false)
59
+ end
60
+ elsif @src.scan(TABLE_FSEP_LINE)
61
+ add_container.call(:tbody, true) unless rows.empty?
62
+ has_footer = true
63
+ elsif @src.scan(TABLE_ROW_LINE)
64
+ trow = Element.new(:tr)
65
+
66
+ # parse possible code spans on the line and correctly split the line into cells
67
+ env = save_env
68
+ cells = []
69
+ @src[1].split(/(<code.*?>.*?<\/code>)/).each_with_index do |str, i|
70
+ if i.odd?
71
+ (cells.empty? ? cells : cells.last) << str
72
+ else
73
+ reset_env(src: Kramdown::Utils::StringScanner.new(str, @src.current_line_number))
74
+ root = Element.new(:root)
75
+ parse_spans(root, nil, [:codespan])
76
+
77
+ root.children.each do |c|
78
+ if c.type == :raw_text
79
+ f, *l = c.value.split(/(?<!\\)\|/, -1).map {|t| t.gsub(/\\\|/, '|') }
80
+ (cells.empty? ? cells : cells.last) << f
81
+ cells.concat(l)
82
+ else
83
+ delim = (c.value.scan(/`+/).max || '') + '`'
84
+ tmp = +"#{delim}#{' ' if delim.size > 1}#{c.value}#{' ' if delim.size > 1}#{delim}"
85
+ (cells.empty? ? cells : cells.last) << tmp
86
+ end
87
+ end
88
+ end
89
+ end
90
+ restore_env(env)
91
+
92
+ cells.shift if leading_pipe && cells.first.strip.empty?
93
+ cells.pop if cells.last.strip.empty?
94
+ cells.each do |cell_text|
95
+ tcell = Element.new(:td)
96
+ tcell.children << Element.new(:raw_text, cell_text.strip)
97
+ trow.children << tcell
98
+ end
99
+ columns = [columns, cells.length].max
100
+ rows << trow
101
+ else
102
+ break
103
+ end
104
+ end
105
+
106
+ unless before_block_boundary?
107
+ @src.revert_pos(saved_pos)
108
+ return false
109
+ end
110
+
111
+ # Parse all lines of the table with the code span parser
112
+ env = save_env
113
+ l_src = ::Kramdown::Utils::StringScanner.new(extract_string(orig_pos...(@src.pos - 1), @src),
114
+ @src.current_line_number)
115
+ reset_env(src: l_src)
116
+ root = Element.new(:root)
117
+ parse_spans(root, nil, [:codespan, :span_html])
118
+ restore_env(env)
119
+
120
+ # Check if each line has at least one unescaped pipe that is not inside a code span/code
121
+ # HTML element
122
+ # Note: It doesn't matter that we parse *all* span HTML elements because the row splitting
123
+ # algorithm above only takes <code> elements into account!
124
+ pipe_on_line = false
125
+ while (c = root.children.shift)
126
+ next unless (lines = c.value)
127
+ lines = lines.split("\n")
128
+ if c.type == :codespan
129
+ if lines.size > 2 || (lines.size == 2 && !pipe_on_line)
130
+ break
131
+ elsif lines.size == 2 && pipe_on_line
132
+ pipe_on_line = false
133
+ end
134
+ else
135
+ break if lines.size > 1 && !pipe_on_line && lines.first !~ /^#{TABLE_PIPE_CHECK}/o
136
+ pipe_on_line = (lines.size > 1 ? false : pipe_on_line) || (lines.last =~ /^#{TABLE_PIPE_CHECK}/o)
137
+ end
138
+ end
139
+ @src.revert_pos(saved_pos) and return false unless pipe_on_line
140
+
141
+ add_container.call(has_footer ? :tfoot : :tbody, false) unless rows.empty?
142
+
143
+ if table.children.none? {|el| el.type == :tbody }
144
+ warning("Found table without body on line #{table.options[:location]} - ignoring it")
145
+ @src.revert_pos(saved_pos)
146
+ return false
147
+ end
148
+
149
+ # adjust all table rows to have equal number of columns, same for alignment defs
150
+ table.children.each do |kind|
151
+ kind.children.each do |row|
152
+ (columns - row.children.length).times do
153
+ row.children << Element.new(:td)
154
+ end
155
+ end
156
+ end
157
+ if table.options[:alignment].length > columns
158
+ table.options[:alignment] = table.options[:alignment][0...columns]
159
+ else
160
+ table.options[:alignment] += [:default] * (columns - table.options[:alignment].length)
161
+ end
162
+
163
+ @tree.children << table
164
+
165
+ true
166
+ end
167
+ define_parser(:table, TABLE_START)
168
+
169
+ end
170
+ end
171
+ end
@@ -0,0 +1,44 @@
1
+ # -*- coding: utf-8; frozen_string_literal: true -*-
2
+ #
3
+ #--
4
+ # Copyright (C) 2009-2026 Thomas Leitner <t_leitner@gmx.at>
5
+ #
6
+ # This file is part of kramdown which is licensed under the MIT.
7
+ #++
8
+ #
9
+
10
+ module Kramdown
11
+ module Parser
12
+ class Kramdown
13
+
14
+ TYPOGRAPHIC_SYMS = [['---', :mdash], ['--', :ndash], ['...', :hellip],
15
+ ['\\<<', '&lt;&lt;'], ['\\>>', '&gt;&gt;'],
16
+ ['<< ', :laquo_space], [' >>', :raquo_space],
17
+ ['<<', :laquo], ['>>', :raquo]]
18
+ TYPOGRAPHIC_SYMS_SUBST = Hash[*TYPOGRAPHIC_SYMS.flatten]
19
+ TYPOGRAPHIC_SYMS_RE = /#{TYPOGRAPHIC_SYMS.map {|k, _v| Regexp.escape(k) }.join('|')}/
20
+
21
+ # Parse the typographic symbols at the current location.
22
+ def parse_typographic_syms
23
+ start_line_number = @src.current_line_number
24
+ @src.pos += @src.matched_size
25
+ val = TYPOGRAPHIC_SYMS_SUBST[@src.matched]
26
+ if val.kind_of?(Symbol)
27
+ @tree.children << Element.new(:typographic_sym, val, nil, location: start_line_number)
28
+ elsif @src.matched == '\\<<'
29
+ @tree.children << Element.new(:entity, ::Kramdown::Utils::Entities.entity('lt'),
30
+ nil, location: start_line_number)
31
+ @tree.children << Element.new(:entity, ::Kramdown::Utils::Entities.entity('lt'),
32
+ nil, location: start_line_number)
33
+ else
34
+ @tree.children << Element.new(:entity, ::Kramdown::Utils::Entities.entity('gt'),
35
+ nil, location: start_line_number)
36
+ @tree.children << Element.new(:entity, ::Kramdown::Utils::Entities.entity('gt'),
37
+ nil, location: start_line_number)
38
+ end
39
+ end
40
+ define_parser(:typographic_syms, TYPOGRAPHIC_SYMS_RE, '--|\\.\\.\\.|(?:\\\\| )?(?:<<|>>)')
41
+
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,377 @@
1
+ # -*- coding: utf-8; frozen_string_literal: true -*-
2
+ #
3
+ #--
4
+ # Copyright (C) 2009-2026 Thomas Leitner <t_leitner@gmx.at>
5
+ #
6
+ # This file is part of kramdown which is licensed under the MIT.
7
+ #++
8
+ #
9
+
10
+ require 'strscan'
11
+ require 'stringio'
12
+ require 'kramdown/parser'
13
+
14
+ # TODO: use [[:alpha:]] in all regexp to allow parsing of international values in 1.9.1
15
+ # NOTE: use @src.pre_match only before other check/match?/... operations, otherwise the content is changed
16
+
17
+ module Kramdown
18
+
19
+ module Parser
20
+
21
+ # Used for parsing a document in kramdown format.
22
+ #
23
+ # If you want to extend the functionality of the parser, you need to do the following:
24
+ #
25
+ # * Create a new subclass
26
+ # * add the needed parser methods
27
+ # * modify the @block_parsers and @span_parsers variables and add the names of your parser
28
+ # methods
29
+ #
30
+ # Here is a small example for an extended parser class that parses ERB style tags as raw text if
31
+ # they are used as span-level elements (an equivalent block-level parser should probably also be
32
+ # made to handle the block case):
33
+ #
34
+ # require 'kramdown/parser/kramdown'
35
+ #
36
+ # class Kramdown::Parser::ERBKramdown < Kramdown::Parser::Kramdown
37
+ #
38
+ # def initialize(source, options)
39
+ # super
40
+ # @span_parsers.unshift(:erb_tags)
41
+ # end
42
+ #
43
+ # ERB_TAGS_START = /<%.*?%>/
44
+ #
45
+ # def parse_erb_tags
46
+ # @src.pos += @src.matched_size
47
+ # @tree.children << Element.new(:raw, @src.matched)
48
+ # end
49
+ # define_parser(:erb_tags, ERB_TAGS_START, '<%')
50
+ #
51
+ # end
52
+ #
53
+ # The new parser can be used like this:
54
+ #
55
+ # require 'kramdown/document'
56
+ # # require the file with the above parser class
57
+ #
58
+ # Kramdown::Document.new(input_text, :input => 'ERBKramdown').to_html
59
+ #
60
+ class Kramdown < Base
61
+
62
+ include ::Kramdown
63
+
64
+ # Create a new Kramdown parser object with the given +options+.
65
+ def initialize(source, options)
66
+ super
67
+
68
+ reset_env
69
+
70
+ @alds = {}
71
+ @footnotes = {}
72
+ @link_defs = {}
73
+ update_link_definitions(@options[:link_defs])
74
+
75
+ @block_parsers = [:blank_line, :codeblock, :codeblock_fenced, :blockquote, :atx_header,
76
+ :horizontal_rule, :list, :definition_list, :block_html, :setext_header,
77
+ :block_math, :table, :footnote_definition, :link_definition,
78
+ :abbrev_definition, :block_extensions, :eob_marker, :paragraph]
79
+ @span_parsers = [:emphasis, :codespan, :autolink, :span_html, :footnote_marker, :link,
80
+ :smart_quotes, :inline_math, :span_extensions, :html_entity,
81
+ :typographic_syms, :line_break, :escaped_chars]
82
+
83
+ @span_pattern_cache ||= Hash.new {|h, k| h[k] = {} }
84
+ end
85
+ private_class_method(:new, :allocate)
86
+
87
+ # The source string provided on initialization is parsed into the @root element.
88
+ def parse
89
+ configure_parser
90
+ parse_blocks(@root, adapt_source(source))
91
+ update_tree(@root)
92
+ correct_abbreviations_attributes
93
+ replace_abbreviations(@root)
94
+ @footnotes.each do |_name, data|
95
+ update_tree(data[:content])
96
+ replace_abbreviations(data[:content])
97
+ end
98
+ footnote_count = 0
99
+ @footnotes.each do |name, data|
100
+ (footnote_count += 1; next) if data.key?(:marker)
101
+ line = data[:content].options[:location]
102
+ warning("Footnote definition for '#{name}' on line #{line} is unreferenced - ignoring")
103
+ end
104
+ @root.options[:footnote_count] = footnote_count
105
+ end
106
+
107
+ protected
108
+
109
+ # :doc:
110
+ #
111
+ # Update the parser specific link definitions with the data from +link_defs+ (the value of the
112
+ # :link_defs option).
113
+ #
114
+ # The parameter +link_defs+ is a hash where the keys are possibly unnormalized link IDs and
115
+ # the values are two element arrays consisting of the link target and a title (can be +nil+).
116
+ def update_link_definitions(link_defs)
117
+ link_defs.each {|k, v| @link_defs[normalize_link_id(k)] = v }
118
+ end
119
+
120
+ # Adapt the object to allow parsing like specified in the options.
121
+ def configure_parser
122
+ @parsers = {}
123
+ (@block_parsers + @span_parsers).each do |name|
124
+ if self.class.has_parser?(name)
125
+ @parsers[name] = self.class.parser(name)
126
+ else
127
+ raise Kramdown::Error, "Unknown parser: #{name}"
128
+ end
129
+ end
130
+ @span_start, @span_start_re = span_parser_regexps
131
+ end
132
+
133
+ # Create the needed span parser regexps.
134
+ def span_parser_regexps(parsers = @span_parsers)
135
+ span_start = /#{parsers.map {|name| @parsers[name].span_start }.join('|')}/
136
+ [span_start, /(?=#{span_start})/]
137
+ end
138
+
139
+ # Parse all block-level elements in +text+ into the element +el+.
140
+ def parse_blocks(el, text = nil)
141
+ @stack.push([@tree, @src, @block_ial])
142
+ @tree, @block_ial = el, nil
143
+ @src = (text.nil? ? @src : ::Kramdown::Utils::StringScanner.new(text, el.options[:location]))
144
+
145
+ status = catch(:stop_block_parsing) do
146
+ until @src.eos?
147
+ @block_parsers.any? do |name|
148
+ if @src.check(@parsers[name].start_re)
149
+ send(@parsers[name].method)
150
+ else
151
+ false
152
+ end
153
+ end || begin
154
+ warning('Warning: this should not occur - no block parser handled the line')
155
+ add_text(@src.scan(/.*\n/))
156
+ end
157
+ end
158
+ end
159
+
160
+ @tree, @src, @block_ial = *@stack.pop
161
+ status
162
+ end
163
+
164
+ # Update the tree by parsing all :+raw_text+ elements with the span-level parser (resets the
165
+ # environment) and by updating the attributes from the IALs.
166
+ def update_tree(element)
167
+ last_blank = nil
168
+ element.children.map! do |child|
169
+ case child.type
170
+ when :raw_text
171
+ last_blank = nil
172
+ reset_env(src: ::Kramdown::Utils::StringScanner.new(child.value, element.options[:location]),
173
+ text_type: :text)
174
+ parse_spans(child)
175
+ child.children
176
+ when :eob
177
+ update_attr_with_ial(child.attr, child.options[:ial]) if child.options[:ial]
178
+ []
179
+ when :blank
180
+ if last_blank
181
+ last_blank.value << child.value
182
+ []
183
+ else
184
+ last_blank = child
185
+ child
186
+ end
187
+ else
188
+ last_blank = nil
189
+ update_tree(child)
190
+ update_attr_with_ial(child.attr, child.options[:ial]) if child.options[:ial]
191
+ # DEPRECATED: option auto_id_stripping will be removed in 2.0 because then this will be
192
+ # the default behaviour
193
+ if child.type == :dt || (child.type == :header && @options[:auto_id_stripping])
194
+ update_raw_text(child)
195
+ end
196
+ child
197
+ end
198
+ end.flatten!
199
+ end
200
+
201
+ def span_pattern_cache(stop_re, span_start)
202
+ @span_pattern_cache[stop_re][span_start] ||= /(?=#{Regexp.union(stop_re, span_start)})/
203
+ end
204
+ private :span_pattern_cache
205
+
206
+ # Parse all span-level elements in the source string of @src into +el+.
207
+ #
208
+ # If the parameter +stop_re+ (a regexp) is used, parsing is immediately stopped if the regexp
209
+ # matches and if no block is given or if a block is given and it returns +true+.
210
+ #
211
+ # The parameter +parsers+ can be used to specify the (span-level) parsing methods that should
212
+ # be used for parsing.
213
+ #
214
+ # The parameter +text_type+ specifies the type which should be used for created text nodes.
215
+ def parse_spans(el, stop_re = nil, parsers = nil, text_type = @text_type)
216
+ @stack.push([@tree, @text_type]) unless @tree.nil?
217
+ @tree, @text_type = el, text_type
218
+
219
+ span_start = @span_start
220
+ span_start_re = @span_start_re
221
+ span_start, span_start_re = span_parser_regexps(parsers) if parsers
222
+ parsers ||= @span_parsers
223
+
224
+ used_re = (stop_re.nil? ? span_start_re : span_pattern_cache(stop_re, span_start))
225
+ stop_re_found = false
226
+ while !@src.eos? && !stop_re_found
227
+ if (result = @src.scan_until(used_re))
228
+ add_text(result)
229
+ if stop_re && @src.check(stop_re)
230
+ stop_re_found = (block_given? ? yield : true)
231
+ end
232
+ processed = parsers.any? do |name|
233
+ if @src.check(@parsers[name].start_re)
234
+ send(@parsers[name].method)
235
+ true
236
+ else
237
+ false
238
+ end
239
+ end unless stop_re_found
240
+ add_text(@src.getch) if !processed && !stop_re_found
241
+ else
242
+ (add_text(@src.rest); @src.terminate) unless stop_re
243
+ break
244
+ end
245
+ end
246
+
247
+ @tree, @text_type = @stack.pop
248
+
249
+ stop_re_found
250
+ end
251
+
252
+ # Reset the current parsing environment. The parameter +env+ can be used to set initial
253
+ # values for one or more environment variables.
254
+ def reset_env(opts = {})
255
+ opts = {text_type: :raw_text, stack: []}.merge(opts)
256
+ @src = opts[:src]
257
+ @tree = opts[:tree]
258
+ @block_ial = opts[:block_ial]
259
+ @stack = opts[:stack]
260
+ @text_type = opts[:text_type]
261
+ end
262
+
263
+ # Return the current parsing environment.
264
+ def save_env
265
+ [@src, @tree, @block_ial, @stack, @text_type]
266
+ end
267
+
268
+ # Restore the current parsing environment.
269
+ def restore_env(env)
270
+ @src, @tree, @block_ial, @stack, @text_type = *env
271
+ end
272
+
273
+ # Update the given attributes hash +attr+ with the information from the inline attribute list
274
+ # +ial+ and all referenced ALDs.
275
+ def update_attr_with_ial(attr, ial)
276
+ ial[:refs]&.each do |ref|
277
+ update_attr_with_ial(attr, ref) if (ref = @alds[ref])
278
+ end
279
+ ial.each do |k, v|
280
+ if k == IAL_CLASS_ATTR
281
+ attr[k] = "#{attr[k]} #{v}".lstrip
282
+ elsif k.kind_of?(String)
283
+ attr[k] = v
284
+ end
285
+ end
286
+ end
287
+
288
+ # Update the raw text for automatic ID generation.
289
+ def update_raw_text(item)
290
+ raw_text = +''
291
+
292
+ append_text = lambda do |child|
293
+ if child.type == :text
294
+ raw_text << child.value
295
+ else
296
+ child.children.each {|c| append_text.call(c) }
297
+ end
298
+ end
299
+
300
+ append_text.call(item)
301
+ item.options[:raw_text] = raw_text
302
+ end
303
+
304
+ # Create a new block-level element, taking care of applying a preceding block IAL if it
305
+ # exists. This method should always be used for creating a block-level element!
306
+ def new_block_el(*args)
307
+ el = Element.new(*args)
308
+ if @block_ial
309
+ el.options[:ial] = @block_ial
310
+ @block_ial = nil
311
+ end
312
+ el
313
+ end
314
+
315
+ @@parsers = {}
316
+
317
+ # Struct class holding all the needed data for one block/span-level parser method.
318
+ Data = Struct.new(:name, :start_re, :span_start, :method)
319
+
320
+ # Add a parser method
321
+ #
322
+ # * with the given +name+,
323
+ # * using +start_re+ as start regexp
324
+ # * and, for span parsers, +span_start+ as a String that can be used in a regexp and
325
+ # which identifies the starting character(s)
326
+ #
327
+ # to the registry. The method name is automatically derived from the +name+ or can explicitly
328
+ # be set by using the +meth_name+ parameter.
329
+ def self.define_parser(name, start_re, span_start = nil, meth_name = "parse_#{name}")
330
+ raise "A parser with the name #{name} already exists!" if @@parsers.key?(name)
331
+ @@parsers[name] = Data.new(name, start_re, span_start, meth_name)
332
+ end
333
+
334
+ # Return the Data structure for the parser +name+.
335
+ def self.parser(name = nil)
336
+ @@parsers[name]
337
+ end
338
+
339
+ # Return +true+ if there is a parser called +name+.
340
+ def self.has_parser?(name)
341
+ @@parsers.key?(name)
342
+ end
343
+
344
+ # Regexp for matching indentation (one tab or four spaces)
345
+ INDENT = /^(?:\t| {4})/
346
+ # Regexp for matching the optional space (zero or up to three spaces)
347
+ OPT_SPACE = / {0,3}/
348
+
349
+ require 'kramdown/parser/kramdown/blank_line'
350
+ require 'kramdown/parser/kramdown/eob'
351
+ require 'kramdown/parser/kramdown/paragraph'
352
+ require 'kramdown/parser/kramdown/header'
353
+ require 'kramdown/parser/kramdown/blockquote'
354
+ require 'kramdown/parser/kramdown/table'
355
+ require 'kramdown/parser/kramdown/codeblock'
356
+ require 'kramdown/parser/kramdown/horizontal_rule'
357
+ require 'kramdown/parser/kramdown/list'
358
+ require 'kramdown/parser/kramdown/link'
359
+ require 'kramdown/parser/kramdown/extensions'
360
+ require 'kramdown/parser/kramdown/footnote'
361
+ require 'kramdown/parser/kramdown/html'
362
+ require 'kramdown/parser/kramdown/escaped_chars'
363
+ require 'kramdown/parser/kramdown/html_entity'
364
+ require 'kramdown/parser/kramdown/line_break'
365
+ require 'kramdown/parser/kramdown/typographic_symbol'
366
+ require 'kramdown/parser/kramdown/autolink'
367
+ require 'kramdown/parser/kramdown/codespan'
368
+ require 'kramdown/parser/kramdown/emphasis'
369
+ require 'kramdown/parser/kramdown/smart_quotes'
370
+ require 'kramdown/parser/kramdown/math'
371
+ require 'kramdown/parser/kramdown/abbreviation'
372
+
373
+ end
374
+
375
+ end
376
+
377
+ end
@@ -0,0 +1,57 @@
1
+ # -*- coding: utf-8; frozen_string_literal: true -*-
2
+ #
3
+ #--
4
+ # Copyright (C) 2009-2026 Thomas Leitner <t_leitner@gmx.at>
5
+ #
6
+ # This file is part of kramdown which is licensed under the MIT.
7
+ #++
8
+ #
9
+
10
+ require 'kramdown/parser'
11
+
12
+ module Kramdown
13
+
14
+ module Parser
15
+
16
+ # Used for parsing a document in Markdown format.
17
+ #
18
+ # This parser is based on the kramdown parser and removes the parser methods for the additional
19
+ # non-Markdown features. However, since some things are handled differently by the kramdown
20
+ # parser methods (like deciding when a list item contains just text), this parser differs from
21
+ # real Markdown parsers in some respects.
22
+ #
23
+ # Note, though, that the parser basically fails just one of the Markdown test cases (some others
24
+ # also fail but those failures are negligible).
25
+ class Markdown < Kramdown
26
+
27
+ # Array with all the parsing methods that should be removed from the standard kramdown parser.
28
+ EXTENDED = [:codeblock_fenced, :table, :definition_list, :footnote_definition,
29
+ :abbrev_definition, :block_math, :block_extensions,
30
+ :footnote_marker, :smart_quotes, :inline_math, :span_extensions, :typographic_syms]
31
+
32
+ def initialize(source, options) # :nodoc:
33
+ super
34
+ @block_parsers.delete_if {|i| EXTENDED.include?(i) }
35
+ @span_parsers.delete_if {|i| EXTENDED.include?(i) }
36
+ end
37
+
38
+ # :stopdoc:
39
+
40
+ BLOCK_BOUNDARY = /#{BLANK_LINE}|#{EOB_MARKER}|\Z/
41
+ LAZY_END = /#{BLANK_LINE}|#{EOB_MARKER}|^#{OPT_SPACE}#{LAZY_END_HTML_STOP}|
42
+ ^#{OPT_SPACE}#{LAZY_END_HTML_START}|\Z/x
43
+ CODEBLOCK_MATCH = /(?:#{BLANK_LINE}?(?:#{INDENT}[ \t]*\S.*\n)+)*/
44
+ PARAGRAPH_END = LAZY_END
45
+
46
+ IAL_RAND_CHARS = (('a'..'z').to_a + ('0'..'9').to_a)
47
+ IAL_RAND_STRING = (1..20).collect { IAL_RAND_CHARS[rand(IAL_RAND_CHARS.size)] }.join
48
+ LIST_ITEM_IAL = /^\s*(#{IAL_RAND_STRING})?\s*\n/
49
+ IAL_SPAN_START = LIST_ITEM_IAL
50
+
51
+ # :startdoc:
52
+
53
+ end
54
+
55
+ end
56
+
57
+ end
@@ -0,0 +1,26 @@
1
+ # -*- coding: utf-8; frozen_string_literal: true -*-
2
+ #
3
+ #--
4
+ # Copyright (C) 2009-2026 Thomas Leitner <t_leitner@gmx.at>
5
+ #
6
+ # This file is part of kramdown which is licensed under the MIT.
7
+ #++
8
+ #
9
+
10
+ module Kramdown
11
+
12
+ # This module contains all available parsers. A parser takes an input string and converts the
13
+ # string to an element tree.
14
+ #
15
+ # New parsers should be derived from the Base class which provides common functionality - see its
16
+ # API documentation for how to create a custom converter class.
17
+ module Parser
18
+
19
+ autoload :Base, 'kramdown/parser/base'
20
+ autoload :Kramdown, 'kramdown/parser/kramdown'
21
+ autoload :Html, 'kramdown/parser/html'
22
+ autoload :Markdown, 'kramdown/parser/markdown'
23
+
24
+ end
25
+
26
+ end