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,300 @@
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/converter'
11
+
12
+ module Kramdown
13
+
14
+ module Converter
15
+
16
+ # Converts a Kramdown::Document to a manpage in groff format. See man(7), groff_man(7) and
17
+ # man-pages(7) for information regarding the output.
18
+ class Man < Base
19
+
20
+ def convert(el, opts = {indent: 0, result: +''}) # :nodoc:
21
+ send("convert_#{el.type}", el, opts)
22
+ end
23
+
24
+ private
25
+
26
+ def inner(el, opts, use = :all)
27
+ arr = el.children.reject {|e| e.type == :blank }
28
+ arr.each_with_index do |inner_el, index|
29
+ next if use == :rest && index == 0
30
+ break if use == :first && index > 0
31
+ options = opts.dup
32
+ options[:parent] = el
33
+ options[:index] = index
34
+ options[:prev] = (index == 0 ? nil : arr[index - 1])
35
+ options[:next] = (index == arr.length - 1 ? nil : arr[index + 1])
36
+ convert(inner_el, options)
37
+ end
38
+ end
39
+
40
+ def convert_root(el, opts)
41
+ @title_done = false
42
+ opts[:result] = +".\\\" generated by kramdown\n"
43
+ inner(el, opts)
44
+ opts[:result]
45
+ end
46
+
47
+ def convert_blank(*)
48
+ end
49
+ alias convert_hr convert_blank
50
+ alias convert_xml_pi convert_blank
51
+
52
+ def convert_p(el, opts)
53
+ if (opts[:index] != 0 && opts[:prev].type != :header) ||
54
+ (opts[:parent].type == :blockquote && opts[:index] == 0)
55
+ opts[:result] << macro("P")
56
+ end
57
+ inner(el, opts)
58
+ newline(opts[:result])
59
+ end
60
+
61
+ def convert_header(el, opts)
62
+ return unless opts[:parent].type == :root
63
+ case el.options[:level]
64
+ when 1
65
+ unless @title_done
66
+ @title_done = true
67
+ data = el.options[:raw_text].scan(/([^(]+)\s*\((\d\w*)\)(?:\s*-+\s*(.*))?/).first ||
68
+ el.options[:raw_text].scan(/([^\s]+)\s*(?:-*\s+)?()(.*)/).first
69
+ return unless data && data[0]
70
+ name = data[0]
71
+ section = (data[1].to_s.empty? ? el.attr['data-section'] || '7' : data[1])
72
+ description = (data[2].to_s.empty? ? nil : " - #{data[2]}")
73
+ date = el.attr['data-date'] ? quote(el.attr['data-date']) : nil
74
+ extra = (el.attr['data-extra'] ? quote(escape(el.attr['data-extra'].to_s)) : nil)
75
+ opts[:result] << macro("TH", quote(escape(name.upcase)), quote(section), date, extra)
76
+ if description
77
+ opts[:result] << macro("SH", "NAME") << escape("#{name}#{description}") << "\n"
78
+ end
79
+ end
80
+ when 2
81
+ opts[:result] << macro("SH", quote(escape(el.options[:raw_text])))
82
+ when 3
83
+ opts[:result] << macro("SS", quote(escape(el.options[:raw_text])))
84
+ else
85
+ warning("Header levels greater than three are not supported")
86
+ end
87
+ end
88
+
89
+ def convert_codeblock(el, opts)
90
+ opts[:result] << macro("sp") << macro("RS", 4) << macro("EX")
91
+ opts[:result] << newline(escape(el.value, true))
92
+ opts[:result] << macro("EE") << macro("RE")
93
+ end
94
+
95
+ def convert_blockquote(el, opts)
96
+ opts[:result] << macro("RS")
97
+ inner(el, opts)
98
+ opts[:result] << macro("RE")
99
+ end
100
+
101
+ def convert_ul(el, opts)
102
+ compact = (el.attr['class'] =~ /\bcompact\b/)
103
+ opts[:result] << macro("sp") << macro("PD", 0) if compact
104
+ inner(el, opts)
105
+ opts[:result] << macro("PD") if compact
106
+ end
107
+ alias convert_dl convert_ul
108
+ alias convert_ol convert_ul
109
+
110
+ def convert_li(el, opts)
111
+ sym = (opts[:parent].type == :ul ? '\(bu' : "#{opts[:index] + 1}.")
112
+ opts[:result] << macro("IP", sym, 4)
113
+ inner(el, opts, :first)
114
+ if el.children.size > 1
115
+ opts[:result] << macro("RS")
116
+ inner(el, opts, :rest)
117
+ opts[:result] << macro("RE")
118
+ end
119
+ end
120
+
121
+ def convert_dt(el, opts)
122
+ opts[:result] << macro(opts[:prev] && opts[:prev].type == :dt ? "TQ" : "TP")
123
+ inner(el, opts)
124
+ opts[:result] << "\n"
125
+ end
126
+
127
+ def convert_dd(el, opts)
128
+ inner(el, opts, :first)
129
+ if el.children.size > 1
130
+ opts[:result] << macro("RS")
131
+ inner(el, opts, :rest)
132
+ opts[:result] << macro("RE")
133
+ end
134
+ opts[:result] << macro("sp") if opts[:next] && opts[:next].type == :dd
135
+ end
136
+
137
+ TABLE_CELL_ALIGNMENT = {left: 'l', center: 'c', right: 'r', default: 'l'}
138
+
139
+ def convert_table(el, opts)
140
+ opts[:alignment] = el.options[:alignment].map {|a| TABLE_CELL_ALIGNMENT[a] }
141
+ table_options = ["box"]
142
+ table_options << "center" if el.attr['class']&.match?(/\bcenter\b/)
143
+ opts[:result] << macro("TS") << "#{table_options.join(' ')} ;\n"
144
+ inner(el, opts)
145
+ opts[:result] << macro("TE") << macro("sp")
146
+ end
147
+
148
+ def convert_thead(el, opts)
149
+ opts[:result] << opts[:alignment].map {|a| "#{a}b" }.join(' ') << " .\n"
150
+ inner(el, opts)
151
+ opts[:result] << "=\n"
152
+ end
153
+
154
+ def convert_tbody(el, opts)
155
+ opts[:result] << ".T&\n" if opts[:index] != 0
156
+ opts[:result] << opts[:alignment].join(' ') << " .\n"
157
+ inner(el, opts)
158
+ opts[:result] << (opts[:next].type == :tfoot ? "=\n" : "_\n") if opts[:next]
159
+ end
160
+
161
+ def convert_tfoot(el, opts)
162
+ inner(el, opts)
163
+ end
164
+
165
+ def convert_tr(el, opts)
166
+ inner(el, opts)
167
+ opts[:result] << "\n"
168
+ end
169
+
170
+ def convert_td(el, opts)
171
+ result = opts[:result]
172
+ opts[:result] = +''
173
+ inner(el, opts)
174
+ if opts[:result].include?("\n")
175
+ warning("Table cells using links are not supported")
176
+ result << "\t"
177
+ else
178
+ result << opts[:result] << "\t"
179
+ end
180
+ end
181
+
182
+ def convert_html_element(*)
183
+ warning("HTML elements are not supported")
184
+ end
185
+
186
+ def convert_xml_comment(el, opts)
187
+ newline(opts[:result]) << ".\"#{escape(el.value, true).rstrip.gsub(/\n/, "\n.\"")}\n"
188
+ end
189
+ alias convert_comment convert_xml_comment
190
+
191
+ def convert_a(el, opts)
192
+ if el.children.size == 1 && el.children[0].type == :text &&
193
+ el.attr['href'] == el.children[0].value
194
+ newline(opts[:result]) << macro("UR", escape(el.attr['href'])) << macro("UE")
195
+ elsif el.attr['href'].start_with?('mailto:')
196
+ newline(opts[:result]) << macro("MT", escape(el.attr['href'].sub(/^mailto:/, ''))) <<
197
+ macro("UE")
198
+ else
199
+ newline(opts[:result]) << macro("UR", escape(el.attr['href']))
200
+ inner(el, opts)
201
+ newline(opts[:result]) << macro("UE")
202
+ end
203
+ end
204
+
205
+ def convert_img(_el, _opts)
206
+ warning("Images are not supported")
207
+ end
208
+
209
+ def convert_em(el, opts)
210
+ opts[:result] << '\fI'
211
+ inner(el, opts)
212
+ opts[:result] << '\fP'
213
+ end
214
+
215
+ def convert_strong(el, opts)
216
+ opts[:result] << '\fB'
217
+ inner(el, opts)
218
+ opts[:result] << '\fP'
219
+ end
220
+
221
+ def convert_codespan(el, opts)
222
+ opts[:result] << "\\fB#{escape(el.value)}\\fP"
223
+ end
224
+
225
+ def convert_br(_el, opts)
226
+ newline(opts[:result]) << macro("br")
227
+ end
228
+
229
+ def convert_abbreviation(el, opts)
230
+ opts[:result] << escape(el.value)
231
+ end
232
+
233
+ def convert_math(el, opts)
234
+ if el.options[:category] == :block
235
+ convert_codeblock(el, opts)
236
+ else
237
+ convert_codespan(el, opts)
238
+ end
239
+ end
240
+
241
+ def convert_footnote(*)
242
+ warning("Footnotes are not supported")
243
+ end
244
+
245
+ def convert_raw(*)
246
+ warning("Raw content is not supported")
247
+ end
248
+
249
+ def convert_text(el, opts)
250
+ text = escape(el.value)
251
+ text.lstrip! if opts[:result][-1] == "\n"
252
+ opts[:result] << text
253
+ end
254
+
255
+ def convert_entity(el, opts)
256
+ opts[:result] << unicode_char(el.value.code_point)
257
+ end
258
+
259
+ def convert_smart_quote(el, opts)
260
+ opts[:result] << unicode_char(::Kramdown::Utils::Entities.entity(el.value.to_s).code_point)
261
+ end
262
+
263
+ TYPOGRAPHIC_SYMS_MAP = {
264
+ mdash: '\(em', ndash: '\(em', hellip: '\.\.\.',
265
+ laquo_space: '\[Fo]', raquo_space: '\[Fc]', laquo: '\[Fo]', raquo: '\[Fc]'
266
+ }
267
+
268
+ def convert_typographic_sym(el, opts)
269
+ opts[:result] << TYPOGRAPHIC_SYMS_MAP[el.value]
270
+ end
271
+
272
+ def macro(name, *args)
273
+ ".#{[name, *args].compact.join(' ')}\n"
274
+ end
275
+
276
+ def newline(text)
277
+ text << "\n" unless text[-1] == "\n"
278
+ text
279
+ end
280
+
281
+ def quote(text)
282
+ "\"#{text.gsub(/"/, '\\"')}\""
283
+ end
284
+
285
+ def escape(text, preserve_whitespace = false)
286
+ text = (preserve_whitespace ? text.dup : text.gsub(/\s+/, ' '))
287
+ text.gsub!('\\', "\\e")
288
+ text.gsub!(/^\./, '\\\\&.')
289
+ text.gsub!(/[.'-]/) {|m| "\\#{m}" }
290
+ text
291
+ end
292
+
293
+ def unicode_char(codepoint)
294
+ "\\[u#{codepoint.to_s(16).rjust(4, '0')}]"
295
+ end
296
+
297
+ end
298
+
299
+ end
300
+ end
@@ -0,0 +1,32 @@
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::Converter::MathEngine
11
+
12
+ # Uses the MathJax javascript library for displaying math.
13
+ #
14
+ # Note that the javascript library itself is not include or linked, this has to be done
15
+ # separately. Only the math content is marked up correctly.
16
+ module Mathjax
17
+
18
+ def self.call(converter, el, opts)
19
+ value = converter.escape_html(el.value)
20
+ result = el.options[:category] == :block ? "\\[#{value}\\]\n" : "\\(#{value}\\)"
21
+ if el.attr.empty?
22
+ result
23
+ elsif el.options[:category] == :block
24
+ converter.format_as_block_html('div', el.attr, result, opts[:indent])
25
+ else
26
+ converter.format_as_span_html('span', el.attr, "$#{el.value}$")
27
+ end
28
+ end
29
+
30
+ end
31
+
32
+ end
@@ -0,0 +1,58 @@
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/converter'
11
+
12
+ module Kramdown
13
+
14
+ module Converter
15
+
16
+ # Removes all block (and optionally span) level HTML tags from the element tree.
17
+ #
18
+ # This converter can be used on parsed HTML documents to get an element tree that will only
19
+ # contain native kramdown elements.
20
+ #
21
+ # *Note* that the returned element tree may not be fully conformant (i.e. the content models of
22
+ # *some elements may be violated)!
23
+ #
24
+ # This converter modifies the given tree in-place and returns it.
25
+ class RemoveHtmlTags < Base
26
+
27
+ def initialize(root, options)
28
+ super
29
+ @options[:template] = ''
30
+ end
31
+
32
+ def convert(el)
33
+ real_el, el = el, el.value if el.type == :footnote
34
+
35
+ children = el.children.dup
36
+ index = 0
37
+ while index < children.length
38
+ if children[index].type == :xml_pi ||
39
+ (children[index].type == :html_element && (children[index].value == 'style' ||
40
+ children[index].value == 'script'))
41
+ children[index..index] = []
42
+ elsif children[index].type == :html_element &&
43
+ ((@options[:remove_block_html_tags] && children[index].options[:category] == :block) ||
44
+ (@options[:remove_span_html_tags] && children[index].options[:category] == :span))
45
+ children[index..index] = children[index].children
46
+ else
47
+ convert(children[index])
48
+ index += 1
49
+ end
50
+ end
51
+ el.children = children
52
+ real_el || el
53
+ end
54
+
55
+ end
56
+
57
+ end
58
+ end
@@ -0,0 +1,35 @@
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::Converter::SyntaxHighlighter
11
+
12
+ # Uses Minted to highlight code blocks and code spans.
13
+ module Minted
14
+
15
+ def self.call(converter, text, lang, type, _opts)
16
+ opts = converter.options[:syntax_highlighter_opts]
17
+
18
+ # Fallback to default language
19
+ lang ||= opts[:default_lang]
20
+
21
+ options = []
22
+ options << "breaklines" if opts[:wrap]
23
+ options << "linenos" if opts[:line_numbers]
24
+ options << "frame=#{opts[:frame]}" if opts[:frame]
25
+
26
+ if lang && type == :block
27
+ "\\begin{minted}[#{options.join(',')}]{#{lang}}\n#{text}\n\\end{minted}"
28
+ elsif lang && type == :span
29
+ "\\mintinline{#{lang}}{#{text}}"
30
+ else
31
+ nil
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,85 @@
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::Converter::SyntaxHighlighter
11
+
12
+ # Uses Rouge which is CSS-compatible to Pygments to highlight code blocks and code spans.
13
+ module Rouge
14
+
15
+ begin
16
+ require 'rouge'
17
+
18
+ # Highlighting via Rouge is available if this constant is +true+.
19
+ AVAILABLE = true
20
+ rescue LoadError, SyntaxError
21
+ AVAILABLE = false # :nodoc:
22
+ end
23
+
24
+ def self.call(converter, text, lang, type, call_opts)
25
+ opts = options(converter, type)
26
+ call_opts[:default_lang] = opts[:default_lang]
27
+ return nil unless lang || opts[:default_lang] || opts[:guess_lang]
28
+
29
+ lexer = ::Rouge::Lexer.find_fancy(lang || opts[:default_lang], text)
30
+ return nil if opts[:disable] || !lexer || (lexer.tag == "plaintext" && !opts[:guess_lang])
31
+
32
+ opts[:css_class] ||= 'highlight' # For backward compatibility when using Rouge 2.0
33
+ formatter = formatter_class(opts).new(opts)
34
+ formatter.format(lexer.lex(text))
35
+ end
36
+
37
+ def self.options(converter, type)
38
+ prepare_options(converter)
39
+ converter.data[:syntax_highlighter_rouge][type]
40
+ end
41
+
42
+ def self.prepare_options(converter)
43
+ return if converter.data.key?(:syntax_highlighter_rouge)
44
+
45
+ cache = converter.data[:syntax_highlighter_rouge] = {}
46
+
47
+ opts = converter.options[:syntax_highlighter_opts].dup
48
+
49
+ span_opts = opts.delete(:span)&.dup || {}
50
+ block_opts = opts.delete(:block)&.dup || {}
51
+ normalize_keys(span_opts)
52
+ normalize_keys(block_opts)
53
+
54
+ cache[:span] = opts.merge(span_opts)
55
+ cache[:span][:wrap] = false
56
+
57
+ cache[:block] = opts.merge(block_opts)
58
+ end
59
+
60
+ def self.normalize_keys(hash)
61
+ return if hash.empty?
62
+
63
+ hash.keys.each do |k|
64
+ hash[k.kind_of?(String) ? Kramdown::Options.str_to_sym(k) : k] = hash.delete(k)
65
+ end
66
+ end
67
+
68
+ def self.formatter_class(opts = {})
69
+ case formatter = opts[:formatter]
70
+ when Class
71
+ formatter
72
+ when /\A[[:upper:]][[:alnum:]_]*\z/
73
+ ::Rouge::Formatters.const_get(formatter, false)
74
+ else
75
+ # Available in Rouge 2.0 or later
76
+ ::Rouge::Formatters::HTMLLegacy
77
+ end
78
+ rescue NameError
79
+ # Fallback to Rouge 1.x
80
+ ::Rouge::Formatters::HTML
81
+ end
82
+
83
+ end
84
+
85
+ end
@@ -0,0 +1,56 @@
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 Converter
12
+
13
+ # == Container for Syntax Highlighters
14
+ #
15
+ # This module serves as container for the syntax highlighters that can be used together with
16
+ # kramdown.
17
+ #
18
+ # A syntax highlighter should not store any data itself but should use the provided converter
19
+ # object to do so (See Kramdown::Converter::Base#data).
20
+ #
21
+ # == Implementing a Syntax Highlighter
22
+ #
23
+ # Implementing a new syntax highlighter is easy because it is just an object that needs to
24
+ # respond to #call.
25
+ #
26
+ # The method #call needs to take the following arguments:
27
+ #
28
+ # converter:: This argument contains the converter object that calls the syntax highlighter. It
29
+ # can be used, for example, to store data in Kramdown::Converter::Base#data for one
30
+ # conversion run.
31
+ #
32
+ # text:: The raw text that should be highlighted.
33
+ #
34
+ # lang:: The language that the text should be highlighted for (e.g. ruby, python, ...).
35
+ #
36
+ # type:: The type of text, either :span for span-level code or :block for a codeblock.
37
+ #
38
+ # opts:: A Hash with options that may be passed from the converter.
39
+ #
40
+ # The return value of the method should be the highlighted text, suitable for the given
41
+ # converter (e.g. HTML for the HTML converter).
42
+ #
43
+ # == Special Implementation Details
44
+ #
45
+ # HTML converter:: If the syntax highlighter is used with an HTML converter, it should return
46
+ # :block type text correctly wrapped (i.e. normally inside a pre-tag, but may
47
+ # also be a table-tag or just a div-tag) but :span type text *without* a
48
+ # code-tag!
49
+ #
50
+ # Also, a syntax highlighter should store the default highlighting language for
51
+ # the invocation in the +opts+ hash under the key :default_lang.
52
+ module SyntaxHighlighter
53
+ end
54
+
55
+ end
56
+ end
@@ -0,0 +1,69 @@
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/converter'
11
+
12
+ module Kramdown
13
+
14
+ module Converter
15
+
16
+ # Converts a Kramdown::Document to an element tree that represents the table of contents.
17
+ #
18
+ # The returned tree consists of Element objects of type :toc where the root element is just used
19
+ # as container object. Each :toc element contains as value the wrapped :header element and under
20
+ # the attribute key :id the header ID that should be used (note that this ID may not exist in
21
+ # the wrapped element).
22
+ #
23
+ # Since the TOC tree consists of special :toc elements, one cannot directly feed this tree to
24
+ # other converters!
25
+ class Toc < Base
26
+
27
+ def initialize(root, options)
28
+ super
29
+ @toc = Element.new(:toc)
30
+ @stack = []
31
+ @options[:template] = ''
32
+ end
33
+
34
+ def convert(el)
35
+ if el.type == :header && in_toc?(el)
36
+ attr = el.attr.dup
37
+ attr['id'] = generate_id(el.options[:raw_text]) if @options[:auto_ids] && !attr['id']
38
+ add_to_toc(el, attr['id']) if attr['id']
39
+ else
40
+ el.children.each {|child| convert(child) }
41
+ end
42
+ @toc
43
+ end
44
+
45
+ private
46
+
47
+ def add_to_toc(el, id)
48
+ toc_element = Element.new(:toc, el, id: id)
49
+
50
+ success = false
51
+ until success
52
+ if @stack.empty?
53
+ @toc.children << toc_element
54
+ @stack << toc_element
55
+ success = true
56
+ elsif @stack.last.value.options[:level] < el.options[:level]
57
+ @stack.last.children << toc_element
58
+ @stack << toc_element
59
+ success = true
60
+ else
61
+ @stack.pop
62
+ end
63
+ end
64
+ end
65
+
66
+ end
67
+
68
+ end
69
+ end