Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

We’re showing branches in this repository, but you can also compare across forks.

...
  • 6 commits
  • 415 files changed
  • 0 commit comments
  • 1 contributor
Showing with 25 additions and 15,504 deletions.
  1. +0 −81 Changes
  2. +7 −0 FAIL.txt
  3. +0 −30 License.text
  4. +0 −419 MANIFEST
  5. +0 −5 MANIFEST.skip
  6. +0 −23 META.yml
  7. +0 −24 Makefile.PL
  8. +0 −226 README
  9. +0 −348 Readme.text
  10. +0 −31 Todo
  11. +10 −0 harness.sh
  12. +0 −103 lib/Text/Markdown.pm
  13. +6 −2,487 lib/Text/MultiMarkdown.pm
  14. +0 −3  t/01use.t
  15. +0 −7 t/02pod.t
  16. +0 −7 t/03podcoverage.t
  17. +0 −31 t/03podspelling.t
  18. +0 −28 t/04markdown.t
  19. +0 −20 t/05options.t
  20. +0 −39 t/06wiki.t
  21. +2 −170 t/07fulldoc.t
  22. +0 −32 t/08exporter.t
  23. +0 −36 t/09base_url.t
  24. +0 −51 t/10use_metadata.t
  25. +0 −48 t/11docment_format.t
  26. +0 −20 t/12empty_element_suffix.t
  27. +0 −19 t/13multimarkdown-nometadata-firstpara.t
  28. +0 −29 t/14unicode.t
  29. +0 −47 t/15inlinehtmldoenoturnoffmarkdown.t
  30. +0 −42 t/16headingsinlists.t
  31. +0 −31 t/17olulreportedonlist.t
  32. +0 −44 t/18codespanextra.t
  33. +0 −45 t/19exporter-markdown.t
  34. +0 −95 t/20fulldocs-multimarkdown.t
  35. +0 −17 t/21fulldocs-markdown.t
  36. +0 −20 t/22fulldocs-multimarkdown-todo.t
  37. +0 −24 t/23fulldocs-markdown-todo.t
  38. +0 −24 t/24fulldocs-pythonmarkdown2-tm.t
  39. +0 −21 t/26fulldocs-php-markdown.t
  40. +0 −24 t/27fulldocs-php-markdown-fails.t
  41. +0 −24 t/28fulldocs-php-markdown-extra.t
  42. +0 −24 t/39fulldocs-maruku-unittest.t
  43. 0  t/docs-markdown-todo/.empty
  44. +0 −17 t/docs-markdown/Amps_and_angle_encoding.html
  45. +0 −21 t/docs-markdown/Amps_and_angle_encoding.text
  46. +0 −18 t/docs-markdown/Auto_links.html
  47. +0 −13 t/docs-markdown/Auto_links.text
  48. +0 −117 t/docs-markdown/Backslash_escapes.html
  49. +0 −120 t/docs-markdown/Backslash_escapes.text
  50. +0 −15 t/docs-markdown/Blockquotes_with_code_blocks.html
  51. +0 −11 t/docs-markdown/Blockquotes_with_code_blocks.text
  52. +0 −18 t/docs-markdown/Code_Blocks.html
  53. +0 −14 t/docs-markdown/Code_Blocks.text
  54. +0 −5 t/docs-markdown/Code_Spans.html
  55. +0 −5 t/docs-markdown/Code_Spans.text
  56. +0 −8 t/docs-markdown/Hard-wrapped_paragraphs_with_list-like_lines.html
  57. +0 −8 t/docs-markdown/Hard-wrapped_paragraphs_with_list-like_lines.text
  58. +0 −71 t/docs-markdown/Horizontal_rules.html
  59. +0 −67 t/docs-markdown/Horizontal_rules.text
  60. +0 −21 t/docs-markdown/Images.html
  61. +0 −26 t/docs-markdown/Images.text
  62. +0 −30 t/docs-markdown/Inline_HTML_(Advanced).html
  63. +0 −30 t/docs-markdown/Inline_HTML_(Advanced).text
  64. +0 −72 t/docs-markdown/Inline_HTML_(Simple).html
  65. +0 −69 t/docs-markdown/Inline_HTML_(Simple).text
  66. +0 −13 t/docs-markdown/Inline_HTML_comments.html
  67. +0 −13 t/docs-markdown/Inline_HTML_comments.text
  68. +0 −23 t/docs-markdown/Links_inline_style.html
  69. +0 −24 t/docs-markdown/Links_inline_style.text
  70. +0 −52 t/docs-markdown/Links_reference_style.html
  71. +0 −71 t/docs-markdown/Links_reference_style.text
  72. +0 −9 t/docs-markdown/Links_shortcut_references.html
  73. +0 −20 t/docs-markdown/Links_shortcut_references.text
  74. +0 −3  t/docs-markdown/Literal_quotes_in_titles.html
  75. +0 −7 t/docs-markdown/Literal_quotes_in_titles.text
  76. +0 −314 t/docs-markdown/Markdown_Documentation_-_Basics.html
  77. +0 −306 t/docs-markdown/Markdown_Documentation_-_Basics.text
  78. +0 −942 t/docs-markdown/Markdown_Documentation_-_Syntax.html
  79. +0 −888 t/docs-markdown/Markdown_Documentation_-_Syntax.text
  80. +0 −9 t/docs-markdown/Nested_blockquotes.html
  81. +0 −5 t/docs-markdown/Nested_blockquotes.text
  82. +0 −149 t/docs-markdown/Ordered_and_unordered_lists.html
  83. +0 −131 t/docs-markdown/Ordered_and_unordered_lists.text
  84. +0 −7 t/docs-markdown/Strong_and_em_together.html
  85. +0 −7 t/docs-markdown/Strong_and_em_together.text
  86. +0 −25 t/docs-markdown/Tabs.html
  87. +0 −21 t/docs-markdown/Tabs.text
  88. +0 −3  t/docs-maruku-unittest/abbreviations.html
  89. +0 −11 t/docs-maruku-unittest/abbreviations.text
  90. +0 −1  t/docs-maruku-unittest/alt.html
  91. +0 −3  t/docs-maruku-unittest/alt.text
  92. +0 −3  t/docs-maruku-unittest/blank.html
  93. +0 −4 t/docs-maruku-unittest/blank.text
  94. +0 −16 t/docs-maruku-unittest/blanks_in_code.html
  95. +0 −22 t/docs-maruku-unittest/blanks_in_code.text
  96. +0 −1  t/docs-maruku-unittest/bug_def.html
  97. +0 −2  t/docs-maruku-unittest/bug_def.text
  98. +0 −3  t/docs-maruku-unittest/bug_table.html
  99. +0 −13 t/docs-maruku-unittest/bug_table.text
  100. +0 −6 t/docs-maruku-unittest/code.html
  101. +0 −7 t/docs-maruku-unittest/code.text
  102. +0 −5 t/docs-maruku-unittest/code2.html
  103. +0 −3  t/docs-maruku-unittest/code2.text
  104. +0 −15 t/docs-maruku-unittest/code3.html
  105. +0 −17 t/docs-maruku-unittest/code3.text
  106. +0 −47 t/docs-maruku-unittest/convert.pl
  107. +0 −3  t/docs-maruku-unittest/data_loss.html
  108. +0 −4 t/docs-maruku-unittest/data_loss.text
  109. +0 −1  t/docs-maruku-unittest/easy.html
  110. +0 −1  t/docs-maruku-unittest/easy.text
  111. +0 −1  t/docs-maruku-unittest/email.html
  112. +0 −4 t/docs-maruku-unittest/email.text
  113. +0 −14 t/docs-maruku-unittest/entities.html
  114. +0 −20 t/docs-maruku-unittest/entities.text
  115. +0 −9 t/docs-maruku-unittest/escaping.html
  116. +0 −11 t/docs-maruku-unittest/escaping.text
  117. +0 −9 t/docs-maruku-unittest/extra_dl.html
  118. +0 −10 t/docs-maruku-unittest/extra_dl.text
  119. +0 −9 t/docs-maruku-unittest/extra_header_id.html
  120. +0 −14 t/docs-maruku-unittest/extra_header_id.text
  121. +0 −3  t/docs-maruku-unittest/extra_table1.html
  122. +0 −7 t/docs-maruku-unittest/extra_table1.text
  123. +0 −14 t/docs-maruku-unittest/footnotes.html
  124. +0 −17 t/docs-maruku-unittest/footnotes.text
  125. +0 −5 t/docs-maruku-unittest/headers.html
  126. +0 −11 t/docs-maruku-unittest/headers.text
  127. +0 −1  t/docs-maruku-unittest/hex_entities.html
  128. +0 −3  t/docs-maruku-unittest/hex_entities.text
  129. +0 −1  t/docs-maruku-unittest/hrule.html
  130. +0 −2  t/docs-maruku-unittest/hrule.text
  131. +0 −2  t/docs-maruku-unittest/html2.html
  132. +0 −4 t/docs-maruku-unittest/html2.text
  133. +0 −1  t/docs-maruku-unittest/html3.html
  134. +0 −5 t/docs-maruku-unittest/html3.text
  135. +0 −3  t/docs-maruku-unittest/html4.html
  136. +0 −7 t/docs-maruku-unittest/html4.text
  137. +0 −3  t/docs-maruku-unittest/html5.html
  138. +0 −5 t/docs-maruku-unittest/html5.text
  139. +0 −9 t/docs-maruku-unittest/ie.html
  140. +0 −15 t/docs-maruku-unittest/ie.text
  141. +0 −9 t/docs-maruku-unittest/images.html
  142. +0 −22 t/docs-maruku-unittest/images.text
  143. +0 −3  t/docs-maruku-unittest/images2.html
  144. +0 −7 t/docs-maruku-unittest/images2.text
  145. +0 −66 t/docs-maruku-unittest/inline_html.html
  146. +0 −50 t/docs-maruku-unittest/inline_html.text
  147. +0 −3  t/docs-maruku-unittest/inline_html2.html
  148. +0 −2  t/docs-maruku-unittest/inline_html2.text
  149. +0 −19 t/docs-maruku-unittest/links.html
  150. +0 −36 t/docs-maruku-unittest/links.text
  151. +0 −9 t/docs-maruku-unittest/list1.html
  152. +0 −5 t/docs-maruku-unittest/list1.text
  153. +0 −11 t/docs-maruku-unittest/list2.html
  154. +0 −8 t/docs-maruku-unittest/list2.text
  155. +0 −15 t/docs-maruku-unittest/list3.html
  156. +0 −8 t/docs-maruku-unittest/list3.text
  157. +0 −19 t/docs-maruku-unittest/list4.html
  158. +0 −16 t/docs-maruku-unittest/list4.text
  159. +0 −39 t/docs-maruku-unittest/lists.html
  160. +0 −32 t/docs-maruku-unittest/lists.text
  161. +0 −1  t/docs-maruku-unittest/lists11.html
  162. +0 −2  t/docs-maruku-unittest/lists11.text
  163. +0 −1  t/docs-maruku-unittest/lists6.html
  164. +0 −1  t/docs-maruku-unittest/lists6.text
  165. +0 −10 t/docs-maruku-unittest/lists7.html
  166. +0 −6 t/docs-maruku-unittest/lists7.text
  167. +0 −31 t/docs-maruku-unittest/lists7b.html
  168. +0 −6 t/docs-maruku-unittest/lists7b.text
  169. +0 −13 t/docs-maruku-unittest/lists8.html
  170. +0 −7 t/docs-maruku-unittest/lists8.text
  171. +0 −17 t/docs-maruku-unittest/lists9.html
  172. +0 −5 t/docs-maruku-unittest/lists9.text
  173. +0 −37 t/docs-maruku-unittest/lists_after_paragraph.html
  174. +0 −45 t/docs-maruku-unittest/lists_after_paragraph.text
  175. +0 −61 t/docs-maruku-unittest/lists_ol.html
  176. +0 −39 t/docs-maruku-unittest/lists_ol.text
  177. +0 −1  t/docs-maruku-unittest/loss.html
  178. +0 −2  t/docs-maruku-unittest/loss.text
  179. +0 −79 t/docs-maruku-unittest/misc_sw.html
  180. +0 −106 t/docs-maruku-unittest/misc_sw.text
  181. +0 −9 t/docs-maruku-unittest/olist.html
  182. +0 −5 t/docs-maruku-unittest/olist.text
  183. +0 −1  t/docs-maruku-unittest/one.html
  184. +0 −1  t/docs-maruku-unittest/one.text
  185. +0 −1  t/docs-maruku-unittest/paragraph.html
  186. +0 −2  t/docs-maruku-unittest/paragraph.text
  187. +0 −5 t/docs-maruku-unittest/paragraphs.html
  188. +0 −11 t/docs-maruku-unittest/paragraphs.text
  189. +0 −17 t/docs-maruku-unittest/smartypants.html
  190. +0 −13 t/docs-maruku-unittest/smartypants.text
  191. +0 −11 t/docs-maruku-unittest/syntax_hl.html
  192. +0 −12 t/docs-maruku-unittest/syntax_hl.text
  193. +0 −2  t/docs-maruku-unittest/table_attributes.html
  194. +0 −7 t/docs-maruku-unittest/table_attributes.text
  195. +0 −1  t/docs-maruku-unittest/test.html
  196. +0 −5 t/docs-maruku-unittest/test.text
  197. +0 −7 t/docs-maruku-unittest/wrapping.html
  198. +0 −8 t/docs-maruku-unittest/wrapping.text
  199. +0 −6 t/docs-maruku-unittest/xml.html
  200. +0 −11 t/docs-maruku-unittest/xml.text
  201. +0 −3  t/docs-maruku-unittest/xml2.html
  202. +0 −3  t/docs-maruku-unittest/xml2.text
  203. +0 −4 t/docs-maruku-unittest/xml3.html
  204. +0 −7 t/docs-maruku-unittest/xml3.text
  205. +0 −4 t/docs-maruku-unittest/xml_instruction.html
  206. +0 −11 t/docs-maruku-unittest/xml_instruction.text
  207. +0 −24 t/docs-multimarkdown-todo/Amps_and_angle_encoding.html
  208. +0 −28 t/docs-multimarkdown-todo/Amps_and_angle_encoding.text
  209. +0 −3  t/docs-multimarkdown-todo/Email_Obfuscation.html
  210. +0 −3  t/docs-multimarkdown-todo/Email_Obfuscation.text
  211. +0 −8 t/docs-multimarkdown-todo/Tidyness.html
  212. +0 −5 t/docs-multimarkdown-todo/Tidyness.text
  213. +0 −22 t/docs-multimarkdown/Amps_and_angle_encoding.html
  214. +0 −25 t/docs-multimarkdown/Amps_and_angle_encoding.text
  215. +0 −8 t/docs-multimarkdown/Amps_and_angles_encoding-advanced.html
  216. +0 −8 t/docs-multimarkdown/Amps_and_angles_encoding-advanced.text
  217. +0 −18 t/docs-multimarkdown/Auto_links.html
  218. +0 −13 t/docs-multimarkdown/Auto_links.text
  219. +0 −102 t/docs-multimarkdown/Backslash_escapes.html
  220. +0 −104 t/docs-multimarkdown/Backslash_escapes.text
  221. +0 −15 t/docs-multimarkdown/Blockquotes_with_code_blocks.html
  222. +0 −11 t/docs-multimarkdown/Blockquotes_with_code_blocks.text
  223. +0 −42 t/docs-multimarkdown/Citations.html
  224. +0 −32 t/docs-multimarkdown/Citations.text
  225. +0 −5 t/docs-multimarkdown/Cross-References.html
  226. +0 −5 t/docs-multimarkdown/Cross-References.text
  227. +0 −25 t/docs-multimarkdown/Footnotes.html
  228. +0 −18 t/docs-multimarkdown/Footnotes.text
  229. +0 −8 t/docs-multimarkdown/Hard-wrapped_paragraphs_with_list-like_lines.html
  230. +0 −8 t/docs-multimarkdown/Hard-wrapped_paragraphs_with_list-like_lines.text
  231. +0 −71 t/docs-multimarkdown/Horizontal_rules.html
  232. +0 −67 t/docs-multimarkdown/Horizontal_rules.text
  233. +0 −13 t/docs-multimarkdown/Images.html
  234. +0 −17 t/docs-multimarkdown/Images.text
  235. +0 −14 t/docs-multimarkdown/Inline_HTML_(Advanced).html
  236. +0 −15 t/docs-multimarkdown/Inline_HTML_(Advanced).text
  237. +0 −72 t/docs-multimarkdown/Inline_HTML_(Simple).html
  238. +0 −69 t/docs-multimarkdown/Inline_HTML_(Simple).text
  239. +0 −13 t/docs-multimarkdown/Inline_HTML_comments.html
  240. +0 −13 t/docs-multimarkdown/Inline_HTML_comments.text
  241. +0 −3  t/docs-multimarkdown/Link_Attributes.html
  242. +0 −6 t/docs-multimarkdown/Link_Attributes.text
  243. +0 −9 t/docs-multimarkdown/Links_inline_style.html
  244. +0 −9 t/docs-multimarkdown/Links_inline_style.text
  245. +0 −18 t/docs-multimarkdown/Links_reference_style.html
  246. +0 −31 t/docs-multimarkdown/Links_reference_style.text
  247. +0 −15 t/docs-multimarkdown/Lists.html
  248. +0 −13 t/docs-multimarkdown/Lists.text
  249. +0 −3  t/docs-multimarkdown/Literal_quotes_in_titles.html
  250. +0 −7 t/docs-multimarkdown/Literal_quotes_in_titles.text
  251. +0 −314 t/docs-multimarkdown/Markdown_Documentation_-_Basics.html
  252. +0 −306 t/docs-multimarkdown/Markdown_Documentation_-_Basics.text
  253. +0 −942 t/docs-multimarkdown/Markdown_Documentation_-_Syntax.html
  254. +0 −888 t/docs-multimarkdown/Markdown_Documentation_-_Syntax.text
  255. +0 −13 t/docs-multimarkdown/Metadata_(Complete).html
  256. +0 −7 t/docs-multimarkdown/Metadata_(Complete).text
  257. +0 −5 t/docs-multimarkdown/Metadata_(Snippet).html
  258. +0 −5 t/docs-multimarkdown/Metadata_(Snippet).text
  259. +0 −9 t/docs-multimarkdown/Nested_blockquotes.html
  260. +0 −5 t/docs-multimarkdown/Nested_blockquotes.text
  261. +0 −137 t/docs-multimarkdown/Ordered_and_unordered_lists.html
  262. +0 −122 t/docs-multimarkdown/Ordered_and_unordered_lists.text
  263. +0 −3  t/docs-multimarkdown/Special_Characters.html
  264. +0 −3  t/docs-multimarkdown/Special_Characters.text
  265. +0 −21 t/docs-multimarkdown/Strong_and_em_together.html
  266. +0 −22 t/docs-multimarkdown/Strong_and_em_together.text
  267. +0 −92 t/docs-multimarkdown/Tables.html
  268. +0 −35 t/docs-multimarkdown/Tables.text
  269. +0 −25 t/docs-multimarkdown/Tabs.html
  270. +0 −21 t/docs-multimarkdown/Tabs.text
  271. +0 −11 t/docs-multimarkdown/Wiki_Features.html
  272. +0 −10 t/docs-multimarkdown/Wiki_Features.text
  273. +0 −2  t/docs-multimarkdown/complex_escaping.html
  274. +0 −4 t/docs-multimarkdown/complex_escaping.text
  275. +0 −11 t/docs-php-markdown-extra/Abbr.html
  276. +0 −25 t/docs-php-markdown-extra/Abbr.text
  277. +0 −142 t/docs-php-markdown-extra/Definition_Lists.html
  278. +0 −106 t/docs-php-markdown-extra/Definition_Lists.text
  279. +0 −72 t/docs-php-markdown-extra/Emphasis.html
  280. +0 −69 t/docs-php-markdown-extra/Emphasis.text
  281. +0 −83 t/docs-php-markdown-extra/Footnotes.html
  282. +0 −55 t/docs-php-markdown-extra/Footnotes.text
  283. +0 −125 t/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.html
  284. +0 −104 t/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.text
  285. +0 −310 t/docs-php-markdown-extra/Tables.html
  286. +0 −104 t/docs-php-markdown-extra/Tables.text
  287. +0 −3  t/docs-php-markdown-todo/Email_auto_links.html
  288. +0 −3  t/docs-php-markdown-todo/Email_auto_links.text
  289. +0 −72 t/docs-php-markdown-todo/Emphasis.html
  290. +0 −69 t/docs-php-markdown-todo/Emphasis.text
  291. +0 −4 t/docs-php-markdown-todo/Inline_HTML_(Span).html
  292. +0 −4 t/docs-php-markdown-todo/Inline_HTML_(Span).text
  293. +0 −17 t/docs-php-markdown-todo/Ins_&_del.html
  294. +0 −17 t/docs-php-markdown-todo/Ins_&_del.text
  295. +0 −1  t/docs-php-markdown-todo/Links_inline_style.html
  296. +0 −1  t/docs-php-markdown-todo/Links_inline_style.text
  297. +0 −11 t/docs-php-markdown-todo/Nesting.html
  298. +0 −11 t/docs-php-markdown-todo/Nesting.text
  299. +0 −11 t/docs-php-markdown-todo/Parens_in_URL.html
  300. +0 −14 t/docs-php-markdown-todo/Parens_in_URL.text
Sorry, we could not display the entire diff because too many files (415) changed.
81 Changes
View
@@ -1,81 +0,0 @@
-This file documents the revision history for Perl extension Text::MultiMarkdown.
-
-1.0.0 2006-08-22T00:00:00
- - first release
-
-1.0.1 2006-10-20T00:00:00
- - include patch from Uwe Voelker to allow setting of options in
- markdown(); also added a test case from Uwe. Thanks, Uwe!
- Also updated changelog references in POD somewhat.
-
-1.0.2 2007-11-24T14:00:00
- - move to Module::Install and clean various things up, mostly to make
- CPANTS happy.
-
-1.0.3 2007-11-24T20:22:00
- - way to keep me accountable, CPANTESTERS! Maybe I shouldn't have
- Test::Pod::Coverage enabled unless it actually checks out. Added some
- fairly useless stubbed METHODS to POD and moved POD around a bit.
-
-1.0.4 2008-01-02T02:03:50
- - Refactor so that the processor instance has the same set of
- persistent options as on the ->markdown method itself.
- - Change all functions to be instance methods, moved a chunk of the
- global data to the instance. The rest will follow shortly.
- - The test suite now tests a reasonable set of the Markdown and
- MultiMarkdown syntaxes.
- - All known options and metadata keys have been documented.
-
-1.0.5 2008-01-04T18:07:57
- - Add Markdown and MultiMarkdown test suites.
- - Fix a big bug introduced in 1.0.4 in citations
- - Fix footnotes (and other small things) to match the test suite
-
-1.0.6 2008-01-06T13:36:00
- - Merge latest Markdown test suite I can find, and make it all pass,
- pulling in code from Markdown 1.0.2b8. Things fixed:
- - Inline HTML
- - Lists
- - Metadata skipping by leading line breaks
- - 3rd form of links
- - Implement features to suppress id attributes in <img> and <hX> tags
- to be able to act more like original Markdown - now almost ready to
- steal Text::Markdown (would want to turn off tables / citations and
- bibliography for that)
- - Move almost all the global variables into instance data.
- - Fix unicode issues from CPAN.org's RT#27482
- - Remove call to srand, it's not smart to do this more than once.
-
-1.0.7 2008-01-07T16:31:00
- - Encode isn't in core in all perls, add it to Makefile.PL
-
-1.0.8 2008-01-22T19:20:00
- - Do not encode amps or angle brackets in HTML comments + test case.
- - Do not emit title attribute in <img> tags unless we have contents
- for it. This was a 'feature' of original Markdown where I've decided
- to go with what php-markdown does (tests updated).
- - Added php-markdown tests (most/all of the regular tests pass except
- the email obfu one).
- - Added php-markdown extra tests (all fail).
- - Added python markdown tests (mostly pass, but marked broken).
- - Add a way of stopping inline HTML blocks from suppressing markdown
- processing. Feature request from #catalyst-dev
-
-1.0.9 2008-01-22T20:28:00
- - Ship non-broken dist at CPAN (oops, rushing!)
-
-1.0.10 2008-01-23T15:40:00
- - Fix bug with links procesing in HTML blocks.
-
-1.0.11 2008-01-24T00:12:00
- - Fix syntax error in one of the tests. Note to self - just fixing
- that warning in the test case, then shipping without retesting, NOT
- SMART!
-
-1.0.12 2008-02-14T??:??:??
- - Text::Markdown - borgborgborgborgborg.
- - Added additional POD documentation and links to other projects.
- - Cleaned up some tests, and some additional test cases.
- - Options to turn off all the extra features introduced in
- MultiMarkdown.
-
7 FAIL.txt
View
@@ -0,0 +1,7 @@
+tdpb:~/Text-MultiMarkdown t0m$ /usr/bin/perl -Ilib t/07fulldoc.t 2>&1 | grep fail
+tdpb:~/Text-MultiMarkdown t0m$ /usr/bin/perl -v | grep built
+This is perl, v5.8.6 built for darwin-thread-multi-2level
+tdpb:~/Text-MultiMarkdown t0m$ /usr/local/bin/perl -Ilib t/07fulldoc.t 2>&1 | grep fail
+# Looks like you failed 1 test of 2.
+tdpb:~/Text-MultiMarkdown t0m$ /usr/local/bin/perl -v | grep built
+This is perl, v5.10.0 built for darwin-2level
30 License.text
View
@@ -1,30 +0,0 @@
-Copyright (c) 2004, John Gruber
-<http://daringfireball.net/>
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-* Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-* Neither the name "Markdown" nor the names of its contributors may
- be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-This software is provided by the copyright holders and contributors "as
-is" and any express or implied warranties, including, but not limited
-to, the implied warranties of merchantability and fitness for a
-particular purpose are disclaimed. In no event shall the copyright owner
-or contributors be liable for any direct, indirect, incidental, special,
-exemplary, or consequential damages (including, but not limited to,
-procurement of substitute goods or services; loss of use, data, or
-profits; or business interruption) however caused and on any theory of
-liability, whether in contract, strict liability, or tort (including
-negligence or otherwise) arising in any way out of the use of this
-software, even if advised of the possibility of such damage.
419 MANIFEST
View
@@ -1,419 +0,0 @@
-Changes
-inc/Module/AutoInstall.pm
-inc/Module/Install/Makefile.pm
-inc/Module/Install.pm
-inc/Module/Install/AutoInstall.pm
-inc/Module/Install/Base.pm
-inc/Module/Install/Can.pm
-inc/Module/Install/Fetch.pm
-inc/Module/Install/Include.pm
-inc/Module/Install/Metadata.pm
-inc/Module/Install/Win32.pm
-inc/Module/Install/WriteAll.pm
-lib/Text/MultiMarkdown.pm
-License.text
-MANIFEST This list of files
-MANIFEST.skip
-META.yml
-README
-Readme.text
-Makefile.PL
-t/01use.t
-t/02pod.t
-t/03podcoverage.t
-t/03podspelling.t
-t/04markdown.t
-t/05options.t
-t/06wiki.t
-t/07fulldoc.t
-t/08exporter.t
-t/09base_url.t
-t/10use_metadata.t
-t/11docment_format.t
-t/12empty_element_suffix.t
-t/13multimarkdown-nometadata-firstpara.t
-t/14unicode.t
-t/15inlinehtmldoenoturnoffmarkdown.t
-t/17olulreportedonlist.t
-t/20fulldocs-multimarkdown.t
-t/21fulldocs-markdown.t
-t/22fulldocs-multimarkdown-todo.t
-t/23fulldocs-markdown-todo.t
-t/24fulldocs-pythonmarkdown2-tm.t
-t/26fulldocs-php-markdown.t
-t/27fulldocs-php-markdown-fails.t
-t/28fulldocs-php-markdown-extra.t
-t/30fulldocs-maruku-unittest.t
-t/docs-markdown-todo/.empty
-t/docs-markdown/Amps_and_angle_encoding.html
-t/docs-markdown/Amps_and_angle_encoding.text
-t/docs-markdown/Auto_links.html
-t/docs-markdown/Auto_links.text
-t/docs-markdown/Backslash_escapes.html
-t/docs-markdown/Backslash_escapes.text
-t/docs-markdown/Blockquotes_with_code_blocks.html
-t/docs-markdown/Blockquotes_with_code_blocks.text
-t/docs-markdown/Code_Blocks.html
-t/docs-markdown/Code_Blocks.text
-t/docs-markdown/Code_Spans.html
-t/docs-markdown/Code_Spans.text
-t/docs-markdown/Hard-wrapped_paragraphs_with_list-like_lines.html
-t/docs-markdown/Hard-wrapped_paragraphs_with_list-like_lines.text
-t/docs-markdown/Horizontal_rules.html
-t/docs-markdown/Horizontal_rules.text
-t/docs-markdown/Images.html
-t/docs-markdown/Images.text
-t/docs-markdown/Inline_HTML_(Advanced).html
-t/docs-markdown/Inline_HTML_(Advanced).text
-t/docs-markdown/Inline_HTML_(Simple).html
-t/docs-markdown/Inline_HTML_(Simple).text
-t/docs-markdown/Inline_HTML_comments.html
-t/docs-markdown/Inline_HTML_comments.text
-t/docs-markdown/Links_inline_style.html
-t/docs-markdown/Links_inline_style.text
-t/docs-markdown/Links_reference_style.html
-t/docs-markdown/Links_reference_style.text
-t/docs-markdown/Links_shortcut_references.html
-t/docs-markdown/Links_shortcut_references.text
-t/docs-markdown/Literal_quotes_in_titles.html
-t/docs-markdown/Literal_quotes_in_titles.text
-t/docs-markdown/Markdown_Documentation_-_Basics.html
-t/docs-markdown/Markdown_Documentation_-_Basics.text
-t/docs-markdown/Markdown_Documentation_-_Syntax.html
-t/docs-markdown/Markdown_Documentation_-_Syntax.text
-t/docs-markdown/Nested_blockquotes.html
-t/docs-markdown/Nested_blockquotes.text
-t/docs-markdown/Ordered_and_unordered_lists.html
-t/docs-markdown/Ordered_and_unordered_lists.text
-t/docs-markdown/Strong_and_em_together.html
-t/docs-markdown/Strong_and_em_together.text
-t/docs-markdown/Tabs.html
-t/docs-markdown/Tabs.text
-t/docs-maruku-unittest/abbreviations.html
-t/docs-maruku-unittest/abbreviations.text
-t/docs-maruku-unittest/alt.html
-t/docs-maruku-unittest/alt.text
-t/docs-maruku-unittest/blank.html
-t/docs-maruku-unittest/blank.text
-t/docs-maruku-unittest/blanks_in_code.html
-t/docs-maruku-unittest/blanks_in_code.text
-t/docs-maruku-unittest/bug_def.html
-t/docs-maruku-unittest/bug_def.text
-t/docs-maruku-unittest/bug_table.html
-t/docs-maruku-unittest/bug_table.text
-t/docs-maruku-unittest/code.html
-t/docs-maruku-unittest/code.text
-t/docs-maruku-unittest/code2.html
-t/docs-maruku-unittest/code2.text
-t/docs-maruku-unittest/code3.html
-t/docs-maruku-unittest/code3.text
-t/docs-maruku-unittest/convert.pl
-t/docs-maruku-unittest/data_loss.html
-t/docs-maruku-unittest/data_loss.text
-t/docs-maruku-unittest/easy.html
-t/docs-maruku-unittest/easy.text
-t/docs-maruku-unittest/email.html
-t/docs-maruku-unittest/email.text
-t/docs-maruku-unittest/entities.html
-t/docs-maruku-unittest/entities.text
-t/docs-maruku-unittest/escaping.html
-t/docs-maruku-unittest/escaping.text
-t/docs-maruku-unittest/extra_dl.html
-t/docs-maruku-unittest/extra_dl.text
-t/docs-maruku-unittest/extra_header_id.html
-t/docs-maruku-unittest/extra_header_id.text
-t/docs-maruku-unittest/extra_table1.html
-t/docs-maruku-unittest/extra_table1.text
-t/docs-maruku-unittest/footnotes.html
-t/docs-maruku-unittest/footnotes.text
-t/docs-maruku-unittest/headers.html
-t/docs-maruku-unittest/headers.text
-t/docs-maruku-unittest/hex_entities.html
-t/docs-maruku-unittest/hex_entities.text
-t/docs-maruku-unittest/hrule.html
-t/docs-maruku-unittest/hrule.text
-t/docs-maruku-unittest/html2.html
-t/docs-maruku-unittest/html2.text
-t/docs-maruku-unittest/html3.html
-t/docs-maruku-unittest/html3.text
-t/docs-maruku-unittest/html4.html
-t/docs-maruku-unittest/html4.text
-t/docs-maruku-unittest/html5.html
-t/docs-maruku-unittest/html5.text
-t/docs-maruku-unittest/ie.html
-t/docs-maruku-unittest/ie.text
-t/docs-maruku-unittest/images.html
-t/docs-maruku-unittest/images.text
-t/docs-maruku-unittest/images2.html
-t/docs-maruku-unittest/images2.text
-t/docs-maruku-unittest/inline_html.html
-t/docs-maruku-unittest/inline_html.text
-t/docs-maruku-unittest/inline_html2.html
-t/docs-maruku-unittest/inline_html2.text
-t/docs-maruku-unittest/links.html
-t/docs-maruku-unittest/links.text
-t/docs-maruku-unittest/list1.html
-t/docs-maruku-unittest/list1.text
-t/docs-maruku-unittest/list2.html
-t/docs-maruku-unittest/list2.text
-t/docs-maruku-unittest/list3.html
-t/docs-maruku-unittest/list3.text
-t/docs-maruku-unittest/list4.html
-t/docs-maruku-unittest/list4.text
-t/docs-maruku-unittest/lists.html
-t/docs-maruku-unittest/lists.text
-t/docs-maruku-unittest/lists11.html
-t/docs-maruku-unittest/lists11.text
-t/docs-maruku-unittest/lists6.html
-t/docs-maruku-unittest/lists6.text
-t/docs-maruku-unittest/lists7.html
-t/docs-maruku-unittest/lists7.text
-t/docs-maruku-unittest/lists7b.html
-t/docs-maruku-unittest/lists7b.text
-t/docs-maruku-unittest/lists8.html
-t/docs-maruku-unittest/lists8.text
-t/docs-maruku-unittest/lists9.html
-t/docs-maruku-unittest/lists9.text
-t/docs-maruku-unittest/lists_after_paragraph.html
-t/docs-maruku-unittest/lists_after_paragraph.text
-t/docs-maruku-unittest/lists_ol.html
-t/docs-maruku-unittest/lists_ol.text
-t/docs-maruku-unittest/loss.html
-t/docs-maruku-unittest/loss.text
-t/docs-maruku-unittest/misc_sw.html
-t/docs-maruku-unittest/misc_sw.text
-t/docs-maruku-unittest/olist.html
-t/docs-maruku-unittest/olist.text
-t/docs-maruku-unittest/one.html
-t/docs-maruku-unittest/one.text
-t/docs-maruku-unittest/paragraph.html
-t/docs-maruku-unittest/paragraph.text
-t/docs-maruku-unittest/paragraphs.html
-t/docs-maruku-unittest/paragraphs.text
-t/docs-maruku-unittest/smartypants.html
-t/docs-maruku-unittest/smartypants.text
-t/docs-maruku-unittest/syntax_hl.html
-t/docs-maruku-unittest/syntax_hl.text
-t/docs-maruku-unittest/table_attributes.html
-t/docs-maruku-unittest/table_attributes.text
-t/docs-maruku-unittest/test.html
-t/docs-maruku-unittest/test.text
-t/docs-maruku-unittest/wrapping.html
-t/docs-maruku-unittest/wrapping.text
-t/docs-maruku-unittest/xml.html
-t/docs-maruku-unittest/xml.text
-t/docs-maruku-unittest/xml2.html
-t/docs-maruku-unittest/xml2.text
-t/docs-maruku-unittest/xml3.html
-t/docs-maruku-unittest/xml3.text
-t/docs-maruku-unittest/xml_instruction.html
-t/docs-maruku-unittest/xml_instruction.text
-t/docs-multimarkdown-todo/Amps_and_angle_encoding.html
-t/docs-multimarkdown-todo/Amps_and_angle_encoding.text
-t/docs-multimarkdown-todo/Email_Obfuscation.html
-t/docs-multimarkdown-todo/Email_Obfuscation.text
-t/docs-multimarkdown-todo/Tidyness.html
-t/docs-multimarkdown-todo/Tidyness.text
-t/docs-multimarkdown/Amps_and_angle_encoding.html
-t/docs-multimarkdown/Amps_and_angle_encoding.text
-t/docs-multimarkdown/Amps_and_angles_encoding-advanced.html
-t/docs-multimarkdown/Amps_and_angles_encoding-advanced.text
-t/docs-multimarkdown/Auto_links.html
-t/docs-multimarkdown/Auto_links.text
-t/docs-multimarkdown/Backslash_escapes.html
-t/docs-multimarkdown/Backslash_escapes.text
-t/docs-multimarkdown/Blockquotes_with_code_blocks.html
-t/docs-multimarkdown/Blockquotes_with_code_blocks.text
-t/docs-multimarkdown/Citations.html
-t/docs-multimarkdown/Citations.text
-t/docs-multimarkdown/complex_escaping.html
-t/docs-multimarkdown/complex_escaping.text
-t/docs-multimarkdown/Cross-References.html
-t/docs-multimarkdown/Cross-References.text
-t/docs-multimarkdown/Footnotes.html
-t/docs-multimarkdown/Footnotes.text
-t/docs-multimarkdown/Hard-wrapped_paragraphs_with_list-like_lines.html
-t/docs-multimarkdown/Hard-wrapped_paragraphs_with_list-like_lines.text
-t/docs-multimarkdown/Horizontal_rules.html
-t/docs-multimarkdown/Horizontal_rules.text
-t/docs-multimarkdown/Images.html
-t/docs-multimarkdown/Images.text
-t/docs-multimarkdown/Inline_HTML_(Advanced).html
-t/docs-multimarkdown/Inline_HTML_(Advanced).text
-t/docs-multimarkdown/Inline_HTML_(Simple).html
-t/docs-multimarkdown/Inline_HTML_(Simple).text
-t/docs-multimarkdown/Inline_HTML_comments.html
-t/docs-multimarkdown/Inline_HTML_comments.text
-t/docs-multimarkdown/Link_Attributes.html
-t/docs-multimarkdown/Link_Attributes.text
-t/docs-multimarkdown/Links_inline_style.html
-t/docs-multimarkdown/Links_inline_style.text
-t/docs-multimarkdown/Links_reference_style.html
-t/docs-multimarkdown/Links_reference_style.text
-t/docs-multimarkdown/Lists.html
-t/docs-multimarkdown/Lists.text
-t/docs-multimarkdown/Literal_quotes_in_titles.html
-t/docs-multimarkdown/Literal_quotes_in_titles.text
-t/docs-multimarkdown/Markdown_Documentation_-_Basics.html
-t/docs-multimarkdown/Markdown_Documentation_-_Basics.text
-t/docs-multimarkdown/Markdown_Documentation_-_Syntax.html
-t/docs-multimarkdown/Markdown_Documentation_-_Syntax.text
-t/docs-multimarkdown/Metadata_(Complete).html
-t/docs-multimarkdown/Metadata_(Complete).text
-t/docs-multimarkdown/Metadata_(Snippet).html
-t/docs-multimarkdown/Metadata_(Snippet).text
-t/docs-multimarkdown/Nested_blockquotes.html
-t/docs-multimarkdown/Nested_blockquotes.text
-t/docs-multimarkdown/Ordered_and_unordered_lists.html
-t/docs-multimarkdown/Ordered_and_unordered_lists.text
-t/docs-multimarkdown/Special_Characters.html
-t/docs-multimarkdown/Special_Characters.text
-t/docs-multimarkdown/Strong_and_em_together.html
-t/docs-multimarkdown/Strong_and_em_together.text
-t/docs-multimarkdown/Tables.html
-t/docs-multimarkdown/Tables.text
-t/docs-multimarkdown/Tabs.html
-t/docs-multimarkdown/Tabs.text
-t/docs-multimarkdown/Wiki_Features.html
-t/docs-multimarkdown/Wiki_Features.text
-t/docs-php-markdown-extra/Abbr.html
-t/docs-php-markdown-extra/Abbr.text
-t/docs-php-markdown-extra/Definition_Lists.html
-t/docs-php-markdown-extra/Definition_Lists.text
-t/docs-php-markdown-extra/Emphasis.html
-t/docs-php-markdown-extra/Emphasis.text
-t/docs-php-markdown-extra/Footnotes.html
-t/docs-php-markdown-extra/Footnotes.text
-t/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.html
-t/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.text
-t/docs-php-markdown-extra/Tables.html
-t/docs-php-markdown-extra/Tables.text
-t/docs-php-markdown-todo/Email_auto_links.html
-t/docs-php-markdown-todo/Email_auto_links.text
-t/docs-php-markdown-todo/Emphasis.html
-t/docs-php-markdown-todo/Emphasis.text
-t/docs-php-markdown-todo/Inline_HTML_(Span).html
-t/docs-php-markdown-todo/Inline_HTML_(Span).text
-t/docs-php-markdown-todo/Ins_&_del.html
-t/docs-php-markdown-todo/Ins_&_del.text
-t/docs-php-markdown-todo/Links_inline_style.html
-t/docs-php-markdown-todo/Links_inline_style.text
-t/docs-php-markdown-todo/Nesting.html
-t/docs-php-markdown-todo/Nesting.text
-t/docs-php-markdown-todo/Parens_in_URL.html
-t/docs-php-markdown-todo/Parens_in_URL.text
-t/docs-php-markdown/Backslash_escapes.html
-t/docs-php-markdown/Backslash_escapes.text
-t/docs-php-markdown/Code_block_in_a_list_item.html
-t/docs-php-markdown/Code_block_in_a_list_item.text
-t/docs-php-markdown/Code_Spans.html
-t/docs-php-markdown/Code_Spans.text
-t/docs-php-markdown/Headers.html
-t/docs-php-markdown/Headers.text
-t/docs-php-markdown/Images_(Untitled).html
-t/docs-php-markdown/Images_(Untitled).text
-t/docs-php-markdown/Inline_HTML_(Simple).html
-t/docs-php-markdown/Inline_HTML_(Simple).text
-t/docs-php-markdown/Inline_HTML_comments.html
-t/docs-php-markdown/Inline_HTML_comments.text
-t/docs-php-markdown/PHP-Specific_Bugs.html
-t/docs-php-markdown/PHP-Specific_Bugs.text
-t/docs-php-markdown/Tight_blocks.html
-t/docs-php-markdown/Tight_blocks.text
-t/docs-pythonmarkdown2-tm-cases-pass/auto_link.html
-t/docs-pythonmarkdown2-tm-cases-pass/auto_link.text
-t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.html
-t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.opts
-t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.text
-t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.html
-t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.opts
-t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.text
-t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.html
-t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.opts
-t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.text
-t/docs-pythonmarkdown2-tm-cases-pass/blockquote.html
-t/docs-pythonmarkdown2-tm-cases-pass/blockquote.text
-t/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.html
-t/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.text
-t/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.html
-t/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.text
-t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.html
-t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.opts
-t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.text
-t/docs-pythonmarkdown2-tm-cases-pass/codeblock.html
-t/docs-pythonmarkdown2-tm-cases-pass/codeblock.text
-t/docs-pythonmarkdown2-tm-cases-pass/codespans.html
-t/docs-pythonmarkdown2-tm-cases-pass/codespans.text
-t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.html
-t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.opts
-t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.text
-t/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.html
-t/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.text
-t/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.html
-t/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.text
-t/docs-pythonmarkdown2-tm-cases-pass/emphasis.html
-t/docs-pythonmarkdown2-tm-cases-pass/emphasis.text
-t/docs-pythonmarkdown2-tm-cases-pass/escapes.html
-t/docs-pythonmarkdown2-tm-cases-pass/escapes.text
-t/docs-pythonmarkdown2-tm-cases-pass/footnotes.html
-t/docs-pythonmarkdown2-tm-cases-pass/footnotes.opts
-t/docs-pythonmarkdown2-tm-cases-pass/footnotes.text
-t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.html
-t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.opts
-t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.text
-t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.html
-t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.opts
-t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.text
-t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.html
-t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.opts
-t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.text
-t/docs-pythonmarkdown2-tm-cases-pass/header.html
-t/docs-pythonmarkdown2-tm-cases-pass/header.text
-t/docs-pythonmarkdown2-tm-cases-pass/hr.html
-t/docs-pythonmarkdown2-tm-cases-pass/hr.text
-t/docs-pythonmarkdown2-tm-cases-pass/img_in_link.html
-t/docs-pythonmarkdown2-tm-cases-pass/img_in_link.text
-t/docs-pythonmarkdown2-tm-cases-pass/inline_links.html
-t/docs-pythonmarkdown2-tm-cases-pass/inline_links.text
-t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.html
-t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.opts
-t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.text
-t/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.html
-t/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.text
-t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.html
-t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.opts
-t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.text
-t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.html
-t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.opts
-t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.text
-t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.html
-t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.opts
-t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.text
-t/docs-pythonmarkdown2-tm-cases-pass/lists.html
-t/docs-pythonmarkdown2-tm-cases-pass/lists.text
-t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.html
-t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.opts
-t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.text
-t/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.html
-t/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.text
-t/docs-pythonmarkdown2-tm-cases-pass/nested_list.html
-t/docs-pythonmarkdown2-tm-cases-pass/nested_list.text
-t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.html
-t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.opts
-t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.text
-t/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.html
-t/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.text
-t/docs-pythonmarkdown2-tm-cases-pass/raw_html.html
-t/docs-pythonmarkdown2-tm-cases-pass/raw_html.text
-t/docs-pythonmarkdown2-tm-cases-pass/ref_links.html
-t/docs-pythonmarkdown2-tm-cases-pass/ref_links.text
-t/docs-pythonmarkdown2-tm-cases-pass/sublist-para.html
-t/docs-pythonmarkdown2-tm-cases-pass/sublist-para.text
-t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.html
-t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.opts
-t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.text
-t/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.html
-t/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.text
-t/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.html
-t/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.text
-Todo
5 MANIFEST.skip
View
@@ -1,5 +0,0 @@
-.DS_Store
-pm_to_blib
-Makefile
-MANIFEST.bak
-Makefile.old
23 META.yml
View
@@ -1,23 +0,0 @@
-abstract: Convert MultiMarkdown syntax to (X)HTML
-author: Darren M. Kulp <kulp@cpan.org>
-build_requires:
- File::Slurp: 0
- List::MoreUtils: 0
- Test::Exception: 0
- Test::More: 0.42
-distribution_type: module
-generated_by: Module::Install version 0.64
-license: bsd
-name: Text-MultiMarkdown
-no_index:
- directory:
- - inc
- - t
-requires:
- Digest::MD5: 0
- Encode: 0
- List::Util: 0
- MIME::Base64: 0
- Scalar::Util: 0
- Text::Balanced: 0
-version: 1.0.12
24 Makefile.PL
View
@@ -1,24 +0,0 @@
-# Load the Module::Install bundled in ./inc/
-use inc::Module::Install;
-
-# Define metadata
-name 'Text-Markdown';
-author 'Tomas Doran <bobtfish@bobtfish.net>';
-license 'bsd';
-all_from 'lib/Text/MultiMarkdown.pm';
-
-# Specific dependencies
-requires 'MIME::Base64' => undef;
-requires 'List::Util' => undef;
-requires 'Digest::MD5' => undef;
-requires 'Scalar::Util' => undef;
-requires 'Text::Balanced' => undef;
-requires 'Encode' => undef;
-build_requires 'Test::More' => '0.42';
-build_requires 'Test::Exception' => undef;
-build_requires 'List::MoreUtils' => undef;
-build_requires 'File::Slurp' => undef;
-
-auto_install;
-WriteAll;
-
226 README
View
@@ -1,226 +0,0 @@
-NAME
- Text::MultiMarkdown - Convert MultiMarkdown syntax to (X)HTML
-
-SYNOPSIS
- use Text::MultiMarkdown 'markdown';
- my $html = markdown($text);
-
- use Text::MultiMarkdown 'markdown';
- my $html = markdown( $text, {
- empty_element_suffix => '>',
- tab_width => 2,
- use_wikilinks => 1,
- } );
-
- use Text::MultiMarkdown;
- my $m = Text::MultiMarkdown->new;
- my $html = $m->markdown($text);
-
- use Text::MultiMarkdown;
- my $m = Text::MultiMarkdown->new(
- empty_element_suffix => '>',
- tab_width => 2,
- use_wikilinks => 1,
- );
- my $html = $m->markdown( $text );
-
-DESCRIPTION
- Markdown is a text-to-HTML filter; it translates an easy-to-read /
- easy-to-write structured text format into HTML. Markdown's text format
- is most similar to that of plain text email, and supports features such
- as headers, *emphasis*, code blocks, blockquotes, and links.
-
- Markdown's syntax is designed not as a generic markup language, but
- specifically to serve as a front-end to (X)HTML. You can use span-level
- HTML tags anywhere in a Markdown document, and you can use block level
- HTML tags (like <div> and <table> as well).
-
-SYNTAX
- For more information about Markdown's syntax, see:
-
- http://daringfireball.net/projects/markdown/
-
- This module implements MultiMarkdown, which is an extension to
- Markdown..
-
- This is documented at:
-
- http://michelf.com/projects/php-markdown/extra/
-
- and
-
- http://fletcherpenney.net/MultiMarkdown/
-
- This documentation is going to be moved/copied into this module for
- clearer reading in a future release..
-
-OPTIONS
- MultiMarkdown supports a number of options to it's processor which
- control the behavior of the output document.
-
- These options can be supplied to the constructor, on in a hash with the
- individual calls to the markdown method. See the synopsis for examples
- of both of the above styles.
-
- The options for the processor are:
-
- use_metadata
- Controls the metadata options below.
-
- strip_metadata
- Not implemented yet.
-
- empty element suffix
- This option can be used to generate normal HTML output. By default,
- it is ' />', which is xHTML, change to '>' for normal HTML.
-
- img_ids
- Controls if <img> tags generated have an id attribute. Defaults to
- true. Turn off for compatibility with the original markdown.
-
- heading_ids
- Controls if <hX> tags generated have an id attribute. Defaults to
- true. Turn off for compatibility with the original markdown.
-
- bibliography_title
- The title of the generated bibliography, defaults to 'Bibliography'.
-
- tab_width
- Controls indent width in the generated markup, defaults to 4
-
- A number of possible items of metadata can also be supplied as options.
- Note that if the use_metadata is true then the metadata in the document
- will overwrite the settings on command line.
-
- Metadata options supported are:
-
- document_format
- use_wikilinks
- base_url
-
-METADATA
- MultiMarkdown supports the concept of 'metadata', which allows you to
- specify a number of formatting options within the document itself.
- Metadata should be placed in the top few lines of a file, on value per
- line as colon separated key/value pairs. The metadata should be
- separated from the document with a blank line.
-
- Most metadata keys are also supported as options to the constructor, or
- options to the markdown method itself. (Note, as metadata, keys contain
- space, whereas options the keys are underscore separated.)
-
- You can attach arbitrary metadata to a document, which is output in HTML
- <META> tags if unknown, see t/11document_format.t for more info.
-
- A list of 'known' metadata keys, and their effects are listed below:
-
- document format
- If set to 'complete', MultiMarkdown will render an entire xHTML
- page, otherwise it will render a document fragment
-
- css Sets a CSS file for the file, if in 'complete' document format.
-
- title
- Sets the page title, if in 'complete' document format.
-
- use wikilinks
- If set to '1' or 'on', causes links that are WikiWords to
- automatically be processed into links.
-
- base url
- This is the base URL for referencing wiki pages. In this is not
- supplied, all wiki links are relative.
-
-METHODS
- new A very simple constructor.
-
- markdown
- The main function as far as the outside world is concerned. See the
- SYNOPSIS for details on use.
-
- _Markdown
- The main function (internal use only).
-
- Header2Label
- Internal use only.
-
- xhtmlMetaData
- Internal use only.
-
- textMetaData
- Internal use only.
-
-NOTICE
- Warning: this code is messy and does not adhere to any consistent set of
- code guidelines; this is not because of the original quality of the
- code, which is far above what I can pretend to be capable of creating,
- but because of the various patching and diffing steps in between and the
- incomplete translation of the original code into a module.
-
-BUGS
- To file bug reports or feature requests (other than topics listed in the
- Caveats section above) please send email to:
-
- support@daringfireball.net (for Markdown issues)
-
- fletcher@freeshell.org (for MultiMarkdown issues)
-
- kulp@cpan.org, bobtfish@bobtfish.net (for Text::MultiMarkdown issues)
-
- Please include with your report: (1) the example input; (2) the output
- you expected; (3) the output Markdown actually produced.
-
-VERSION HISTORY
- See the Changes file for detailed release notes for this version.
-
-AUTHOR
- John Gruber
- http://daringfireball.net/
-
- PHP port and other contributions by Michel Fortin
- http://michelf.com/
-
- MultiMarkdown changes by Fletcher Penney
- http://fletcher.freeshell.org/
-
- CPAN Module Text::MultiMarkdown (based on Text::Markdown by Sebastian
- Riedel) by Darren Kulp & Tomas Doran
- http://kulp.ch/ & http://www.bobtfish.net/
-
-COPYRIGHT AND LICENSE
- Original Code Copyright (c) 2003-2004 John Gruber
- <http://daringfireball.net/> All rights reserved.
-
- MultiMarkdown changes Copyright (c) 2005-2006 Fletcher T. Penney
- <http://fletcher.freeshell.org/> All rights reserved.
-
- Text::MultiMarkdown changes Copyright (c) 2006-2008 Darren Kulp
- <http://kulp.ch> and Tomas Doran <bobtfish@bobtfish.net>
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- * Neither the name "Markdown" nor the names of its contributors may be
- used to endorse or promote products derived from this software without
- specific prior written permission.
-
- This software is provided by the copyright holders and contributors "as
- is" and any express or implied warranties, including, but not limited
- to, the implied warranties of merchantability and fitness for a
- particular purpose are disclaimed. In no event shall the copyright owner
- or contributors be liable for any direct, indirect, incidental, special,
- exemplary, or consequential damages (including, but not limited to,
- procurement of substitute goods or services; loss of use, data, or
- profits; or business interruption) however caused and on any theory of
- liability, whether in contract, strict liability, or tort (including
- negligence or otherwise) arising in any way out of the use of this
- software, even if advised of the possibility of such damage.
-
348 Readme.text
View
@@ -1,348 +0,0 @@
-# WARNING
-
-This Readme is from the original version of Markdown; not all of the
-information contained herein is applicable to Text::MultiMarkdown, the CPAN
-module that includes this file. See the module's POD and the README file for
-more information.
-
-Markdown
-========
-
-Version 1.0.1 - Tue 14 Dec 2004
-
-by John Gruber
-<http://daringfireball.net/>
-
-
-Introduction
-------------
-
-Markdown is a text-to-HTML conversion tool for web writers. Markdown
-allows you to write using an easy-to-read, easy-to-write plain text
-format, then convert it to structurally valid XHTML (or HTML).
-
-Thus, "Markdown" is two things: a plain text markup syntax, and a
-software tool, written in Perl, that converts the plain text markup
-to HTML.
-
-Markdown works both as a Movable Type plug-in and as a standalone Perl
-script -- which means it can also be used as a text filter in BBEdit
-(or any other application that supporst filters written in Perl).
-
-Full documentation of Markdown's syntax and configuration options is
-available on the web: <http://daringfireball.net/projects/markdown/>.
-(Note: this readme file is formatted in Markdown.)
-
-
-
-Installation and Requirements
------------------------------
-
-Markdown requires Perl 5.6.0 or later. Welcome to the 21st Century.
-Markdown also requires the standard Perl library module `Digest::MD5`.
-
-
-### Movable Type ###
-
-Markdown works with Movable Type version 2.6 or later (including
-MT 3.0 or later).
-
-1. Copy the "Markdown.pl" file into your Movable Type "plugins"
- directory. The "plugins" directory should be in the same directory
- as "mt.cgi"; if the "plugins" directory doesn't already exist, use
- your FTP program to create it. Your installation should look like
- this:
-
- (mt home)/plugins/Markdown.pl
-
-2. Once installed, Markdown will appear as an option in Movable Type's
- Text Formatting pop-up menu. This is selectable on a per-post basis.
- Markdown translates your posts to HTML when you publish; the posts
- themselves are stored in your MT database in Markdown format.
-
-3. If you also install SmartyPants 1.5 (or later), Markdown will offer
- a second text formatting option: "Markdown with SmartyPants". This
- option is the same as the regular "Markdown" formatter, except that
- automatically uses SmartyPants to create typographically correct
- curly quotes, em-dashes, and ellipses. See the SmartyPants web page
- for more information: <http://daringfireball.net/projects/smartypants/>
-
-4. To make Markdown (or "Markdown with SmartyPants") your default
- text formatting option for new posts, go to Weblog Config ->
- Preferences.
-
-Note that by default, Markdown produces XHTML output. To configure
-Markdown to produce HTML 4 output, see "Configuration", below.
-
-
-### Blosxom ###
-
-Markdown works with Blosxom version 2.x.
-
-1. Rename the "Markdown.pl" plug-in to "Markdown" (case is
- important). Movable Type requires plug-ins to have a ".pl"
- extension; Blosxom forbids it.
-
-2. Copy the "Markdown" plug-in file to your Blosxom plug-ins folder.
- If you're not sure where your Blosxom plug-ins folder is, see the
- Blosxom documentation for information.
-
-3. That's it. The entries in your weblog will now automatically be
- processed by Markdown.
-
-4. If you'd like to apply Markdown formatting only to certain posts,
- rather than all of them, see Jason Clark's instructions for using
- Markdown in conjunction with Blosxom's Meta plugin:
-
- <http://jclark.org/weblog/WebDev/Blosxom/Markdown.html>
-
-
-### BBEdit ###
-
-Markdown works with BBEdit 6.1 or later on Mac OS X. (It also works
-with BBEdit 5.1 or later and MacPerl 5.6.1 on Mac OS 8.6 or later.)
-
-1. Copy the "Markdown.pl" file to appropriate filters folder in your
- "BBEdit Support" folder. On Mac OS X, this should be:
-
- BBEdit Support/Unix Support/Unix Filters/
-
- See the BBEdit documentation for more details on the location of
- these folders.
-
- You can rename "Markdown.pl" to whatever you wish.
-
-2. That's it. To use Markdown, select some text in a BBEdit document,
- then choose Markdown from the Filters sub-menu in the "#!" menu, or
- the Filters floating palette
-
-
-
-Configuration
--------------
-
-By default, Markdown produces XHTML output for tags with empty elements.
-E.g.:
-
- <br />
-
-Markdown can be configured to produce HTML-style tags; e.g.:
-
- <br>
-
-
-### Movable Type ###
-
-You need to use a special `MTMarkdownOptions` container tag in each
-Movable Type template where you want HTML 4-style output:
-
- <MTMarkdownOptions output='html4'>
- ... put your entry content here ...
- </MTMarkdownOptions>
-
-The easiest way to use MTMarkdownOptions is probably to put the
-opening tag right after your `<body>` tag, and the closing tag right
-before `</body>`.
-
-To suppress Markdown processing in a particular template, i.e. to
-publish the raw Markdown-formatted text without translation into
-(X)HTML, set the `output` attribute to 'raw':
-
- <MTMarkdownOptions output='raw'>
- ... put your entry content here ...
- </MTMarkdownOptions>
-
-
-### Command-Line ###
-
-Use the `--html4tags` command-line switch to produce HTML output from a
-Unix-style command line. E.g.:
-
- % perl Markdown.pl --html4tags foo.text
-
-Type `perldoc Markdown.pl`, or read the POD documentation within the
-Markdown.pl source code for more information.
-
-
-
-Bugs
-----
-
-To file bug reports or feature requests please send email to:
-<markdown@daringfireball.net>.
-
-
-
-Version History
----------------
-
-1.0.1 (14 Dec 2004):
-
-+ Changed the syntax rules for code blocks and spans. Previously,
- backslash escapes for special Markdown characters were processed
- everywhere other than within inline HTML tags. Now, the contents
- of code blocks and spans are no longer processed for backslash
- escapes. This means that code blocks and spans are now treated
- literally, with no special rules to worry about regarding
- backslashes.
-
- **NOTE**: This changes the syntax from all previous versions of
- Markdown. Code blocks and spans involving backslash characters
- will now generate different output than before.
-
-+ Tweaked the rules for link definitions so that they must occur
- within three spaces of the left margin. Thus if you indent a link
- definition by four spaces or a tab, it will now be a code block.
-
- [a]: /url/ "Indented 3 spaces, this is a link def"
-
- [b]: /url/ "Indented 4 spaces, this is a code block"
-
- **IMPORTANT**: This may affect existing Markdown content if it
- contains link definitions indented by 4 or more spaces.
-
-+ Added `>`, `+`, and `-` to the list of backslash-escapable
- characters. These should have been done when these characters
- were added as unordered list item markers.
-
-+ Trailing spaces and tabs following HTML comments and `<hr/>` tags
- are now ignored.
-
-+ Inline links using `<` and `>` URL delimiters weren't working:
-
- like [this](<http://example.com/>)
-
-+ Added a bit of tolerance for trailing spaces and tabs after
- Markdown hr's.
-
-+ Fixed bug where auto-links were being processed within code spans:
-
- like this: `<http://example.com/>`
-
-+ Sort-of fixed a bug where lines in the middle of hard-wrapped
- paragraphs, which lines look like the start of a list item,
- would accidentally trigger the creation of a list. E.g. a
- paragraph that looked like this:
-
- I recommend upgrading to version
- 8. Oops, now this line is treated
- as a sub-list.
-
- This is fixed for top-level lists, but it can still happen for
- sub-lists. E.g., the following list item will not be parsed
- properly:
-
- + I recommend upgrading to version
- 8. Oops, now this line is treated
- as a sub-list.
-
- Given Markdown's list-creation rules, I'm not sure this can
- be fixed.
-
-+ Standalone HTML comments are now handled; previously, they'd get
- wrapped in a spurious `<p>` tag.
-
-+ Fix for horizontal rules preceded by 2 or 3 spaces.
-
-+ `<hr>` HTML tags in must occur within three spaces of left
- margin. (With 4 spaces or a tab, they should be code blocks, but
- weren't before this fix.)
-
-+ Capitalized "With" in "Markdown With SmartyPants" for
- consistency with the same string label in SmartyPants.pl.
- (This fix is specific to the MT plug-in interface.)
-
-+ Auto-linked email address can now optionally contain
- a 'mailto:' protocol. I.e. these are equivalent:
-
- <mailto:user@example.com>
- <user@example.com>
-
-+ Fixed annoying bug where nested lists would wind up with
- spurious (and invalid) `<p>` tags.
-
-+ You can now write empty links:
-
- [like this]()
-
- and they'll be turned into anchor tags with empty href attributes.
- This should have worked before, but didn't.
-
-+ `***this***` and `___this___` are now turned into
-
- <strong><em>this</em></strong>
-
- Instead of
-
- <strong><em>this</strong></em>
-
- which isn't valid. (Thanks to Michel Fortin for the fix.)
-
-+ Added a new substitution in `_EncodeCode()`: s/\$/&#036;/g; This
- is only for the benefit of Blosxom users, because Blosxom
- (sometimes?) interpolates Perl scalars in your article bodies.
-
-+ Fixed problem for links defined with urls that include parens, e.g.:
-
- [1]: http://sources.wikipedia.org/wiki/Middle_East_Policy_(Chomsky)
-
- "Chomsky" was being erroneously treated as the URL's title.
-
-+ At some point during 1.0's beta cycle, I changed every sub's
- argument fetching from this idiom:
-
- my $text = shift;
-
- to:
-
- my $text = shift || return '';
-
- The idea was to keep Markdown from doing any work in a sub
- if the input was empty. This introduced a bug, though:
- if the input to any function was the single-character string
- "0", it would also evaluate as false and return immediately.
- How silly. Now fixed.
-
-
-
-Donations
----------
-
-Donations to support Markdown's development are happily accepted. See:
-<http://daringfireball.net/projects/markdown/> for details.
-
-
-
-Copyright and License
----------------------
-
-Copyright (c) 2003-2004 John Gruber
-<http://daringfireball.net/>
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-* Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-* Neither the name "Markdown" nor the names of its contributors may
- be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-This software is provided by the copyright holders and contributors "as
-is" and any express or implied warranties, including, but not limited
-to, the implied warranties of merchantability and fitness for a
-particular purpose are disclaimed. In no event shall the copyright owner
-or contributors be liable for any direct, indirect, incidental, special,
-exemplary, or consequential damages (including, but not limited to,
-procurement of substitute goods or services; loss of use, data, or
-profits; or business interruption) however caused and on any theory of
-liability, whether in contract, strict liability, or tort (including
-negligence or otherwise) arising in any way out of the use of this
-software, even if advised of the possibility of such damage.
31 Todo
View
@@ -1,31 +0,0 @@
-Todo pre 1.0.12:
- . See also: http://public.activestate.com/cgi-bin/perlbrowse?patch_num=26334&show_patch=Show+Patch
- . Stop test fails against perl 5.10 (aghhh!)
- . Tests for the following features:
- - disable_footnotes
- - disable_bibliography
- - disable_tables
- . Add links to other implementations to docs and expand a bit.
-
-Todo pre 1.0.13:
- . Stop perl shitting itself due to regex backreference when doing listsug
- and fix the list b
- (see t/17ulolreportedonlist.t and Markdown mailing list)
- . More tests in t/15inlinehtmldoesnoturnoffmarkdown.t, I bet turning this
- feature on breaks things.
-
-Todo pre 1.0.14:
- . Have a look at extra features in
- http://code.google.com/p/python-markdown2/wiki/Extras and put anything
- we consider useful on the roadmap.
- . Integrate maruku (ruby port) test cases properly, and go looking for
- more.
- . Have a look at the php markdown extra tests to see if we want to steal
- any of those features.
- . Document the markdown (and multimarkdown) syntaxes in the module
-
-Todo pre 1.1:
- . Build a parse tree when parsing (which can be returned), rather than just
- using strings. This would make the output format much more flexible, and
- would remove a load of nasty hacks which escape, then un-escape things
- again whist processing..
10 harness.sh
View
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+PERL58=/usr/bin/perl
+PERL510=/usr/local/bin/perl
+
+$PERL58 -Ilib t/07fulldoc.t > 58.out
+$PERL510 -Ilib t/07fulldoc.t > 510.out
+
+diff -u 58.out 510.out
+
103 lib/Text/Markdown.pm
View
@@ -1,103 +0,0 @@
-package Text::Markdown;
-require 5.006_000;
-use strict;
-use warnings;
-use base qw(Text::MultiMarkdown);
-
-our $VERSION = '1.0.12';
-our @EXPORT_OK = qw(markdown);
-
-=head1 NAME
-
-Text::Markdown - Convert MultiMarkdown syntax to (X)HTML
-
-=head1 SYNOPSIS
-
- use Text::Markdown 'markdown';
- my $html = markdown($text);
-
- use Text::Markdown 'markdown';
- my $html = markdown( $text, {
- empty_element_suffix => '>',
- tab_width => 2,
- } );
-
- use Text::Markdown;
- my $m = Text::Markdown->new;
- my $html = $m->markdown($text);
-
- use Text::Markdown;
- my $m = Text::MultiMarkdown->new(
- empty_element_suffix => '>',
- tab_width => 2,
- );
- my $html = $m->markdown( $text );
-
-=head1 DESCRIPTION
-
-Markdown is a text-to-HTML filter; it translates an easy-to-read /
-easy-to-write structured text format into HTML. Markdown's text format
-is most similar to that of plain text email, and supports features such
-as headers, *emphasis*, code blocks, blockquotes, and links.
-
-Markdown's syntax is designed not as a generic markup language, but
-specifically to serve as a front-end to (X)HTML. You can use span-level
-HTML tags anywhere in a Markdown document, and you can use block level
-HTML tags (like <div> and <table> as well).
-
-This module implements the 'original' Markdown markdown syntax from:
-
- http://daringfireball.net/projects/markdown/
-
-If you would like different options available / to controll the parser
-behavior more then you're recommended to look at the OPTIONS section in
-the pod for L<Text::MultiMarkdown>
-
-=head1 SYNTAX
-
-For more information about Markdown's syntax, see:
-
- http://daringfireball.net/projects/markdown/
-
-This documentation is going to be moved/copied into this module for clearer reading in a future release..
-
-=cut
-
-my %force_opts = (
- use_metadata => 0, # Treat the first lines of the document as normal.
- heading_ids => 0, # Remove MultiMarkdown behavior change in <hX> tags.
- img_ids => 0, # Remove MultiMarkdown behavior change in <img> tags.
- disable_tables => 1, # Disable all the multimarkdown specific features.
- disable_footnotes => 1,
- disable_bibliography => 1,
-);
-
-sub new {
- my ($class, %p) = @_;
-
- %p = (%p, %force_opts);
-
- return $class->SUPER::new(%p);
-}
-
-sub markdown {
- my ( $self, $text, $options ) = @_;
-
- # Detect functional mode, and create an instance for this run..
- unless (ref $self) {
- if ( $self ne __PACKAGE__ ) {
- my $ob = __PACKAGE__->new();
- # $self is text, $text is options
- return $ob->markdown($self, $text);
- }
- else {
- croak('Calling ' . $self . '->markdown (as a class method) is not supported.');
- }
- }
-
- $options ||= {};
- %{ $options } = (%$options, %force_opts);
- return $self->SUPER::markdown($text, $options);
-}
-
-1;
2,493 lib/Text/MultiMarkdown.pm
View
@@ -3,1430 +3,8 @@ require 5.006_000;
use strict;
use warnings;
-=head1 NAME
-
-Text::MultiMarkdown - Convert MultiMarkdown syntax to (X)HTML
-
-=head1 SYNOPSIS
-
- use Text::MultiMarkdown 'markdown';
- my $html = markdown($text);
-
- use Text::MultiMarkdown 'markdown';
- my $html = markdown( $text, {
- empty_element_suffix => '>',
- tab_width => 2,
- use_wikilinks => 1,
- } );
-
- use Text::MultiMarkdown;
- my $m = Text::MultiMarkdown->new;
- my $html = $m->markdown($text);
-
- use Text::MultiMarkdown;
- my $m = Text::MultiMarkdown->new(
- empty_element_suffix => '>',
- tab_width => 2,
- use_wikilinks => 1,
- );
- my $html = $m->markdown( $text );
-
-=head1 DESCRIPTION
-
-Markdown is a text-to-HTML filter; it translates an easy-to-read /
-easy-to-write structured text format into HTML. Markdown's text format
-is most similar to that of plain text email, and supports features such
-as headers, *emphasis*, code blocks, blockquotes, and links.
-
-Markdown's syntax is designed not as a generic markup language, but
-specifically to serve as a front-end to (X)HTML. You can use span-level
-HTML tags anywhere in a Markdown document, and you can use block level
-HTML tags (like <div> and <table> as well).
-
-This module implements the MultiMarkdown markdown syntax extensions from:
-
-L<http://fletcherpenney.net/MultiMarkdown/>
-
-=head1 SYNTAX
-
-For more information about Markdown's syntax, see:
-
- http://daringfireball.net/projects/markdown/
-
-This module implements MultiMarkdown, which is an extension to Markdown..
-
-This is documented at:
-
-http://michelf.com/projects/php-markdown/extra/
-
-and
-
-http://fletcherpenney.net/MultiMarkdown/
-
-This documentation is going to be moved/copied into this module for clearer reading in a future release..
-
-=head1 OPTIONS
-
-MultiMarkdown supports a number of options to it's processor which control the behavior of the output document.
-
-These options can be supplied to the constructor, on in a hash with the individual calls to the markdown method.
-See the synopsis for examples of both of the above styles.
-
-The options for the processor are:
-
-=over
-
-=item use_metadata
-
-Controls the metadata options below.
-
-=item strip_metadata
-
-If true, any metadata in the input document is removed from the output document (note - does not take effect in complete document format).
-
-=item empty element suffix
-
-This option can be used to generate normal HTML output. By default, it is ' />', which is xHTML, change to '>' for normal HTML.
-
-=item img_ids
-
-Controls if <img> tags generated have an id attribute. Defaults to true.
-Turn off for compatibility with the original markdown.
-
-=item heading_ids
-
-Controls if <hX> tags generated have an id attribute. Defaults to true.
-Turn off for compatibility with the original markdown.
-
-=item bibliography_title
-
-The title of the generated bibliography, defaults to 'Bibliography'.
-
-=item tab_width
-
-Controls indent width in the generated markup, defaults to 4
-
-=item markdown_in_html_blocks
-
-Controls if Markdown is processed when inside HTML blocks. Defaults to 0.
-
-=item disable_tables
-
-If true, this disables the MultiMarkdown table handling.
-
-=item disable_footnotes
-
-If true, this disables the MultiMarkdown footnotes handling.
-
-=item disable_bibliography
-
-If true, this disables the MultiMarkdown bibliography/citation handling.
-
-=back
-
-A number of possible items of metadata can also be supplied as options.
-Note that if the use_metadata is true then the metadata in the document will overwrite the settings on command line.
-
-Metadata options supported are:
-
-=over
-
-=item document_format
-
-=item use_wikilinks
-
-=item base_url
-
-=back
-
-=head1 METADATA
-
-MultiMarkdown supports the concept of 'metadata', which allows you to specify a number of formatting options
-within the document itself. Metadata should be placed in the top few lines of a file, on value per line as colon separated key/value pairs.
-The metadata should be separated from the document with a blank line.
-
-Most metadata keys are also supported as options to the constructor, or options
-to the markdown method itself. (Note, as metadata, keys contain space, whereas options the keys are underscore separated.)
-
-You can attach arbitrary metadata to a document, which is output in HTML <META> tags if unknown, see t/11document_format.t for more info.
-
-A list of 'known' metadata keys, and their effects are listed below:
-
-=over
-
-=item document format
-
-If set to 'complete', MultiMarkdown will render an entire xHTML page, otherwise it will render a document fragment
-
-=over
-
-=item css
-
-Sets a CSS file for the file, if in 'complete' document format.
-
-=item title
-
-Sets the page title, if in 'complete' document format.
-
-=back
-
-=item use wikilinks
-
-If set to '1' or 'on', causes links that are WikiWords to automatically be processed into links.
-
-=item base url
-
-This is the base URL for referencing wiki pages. In this is not supplied, all wiki links are relative.
-
-=back
-
-=cut
-
-use Digest::MD5 qw(md5_hex);
-use Encode qw();
-use Carp qw(croak);
-use base 'Exporter';
-
-our $VERSION = '1.0.12';
-our @EXPORT_OK = qw(markdown);
-
-## Disabled; causes problems under Perl 5.6.1:
-# use utf8;
-# binmode( STDOUT, ":utf8" ); # c.f.: http://acis.openlib.org/dev/perl-unicode-struggle.html
-
-# Regex to match balanced [brackets]. See Friedl's
-# "Mastering Regular Expressions", 2nd Ed., pp. 328-331.
-my ($g_nested_brackets, $g_nested_parens);
-$g_nested_brackets = qr{
- (?> # Atomic matching
- [^\[\]]+ # Anything other than brackets
- |
- \[
- (??{ $g_nested_brackets }) # Recursive set of nested brackets
- \]
- )*
-}x;
-# Doesn't allow for whitespace, because we're using it to match URLs:
-$g_nested_parens = qr{
- (?> # Atomic matching
- [^()\s]+ # Anything other than parens or whitespace
- |
- \(
- (??{ $g_nested_parens }) # Recursive set of nested brackets
- \)
- )*
-}x;
-
-# Table of hash values for escaped characters:
-my %g_escape_table;
-foreach my $char (split //, '\\`*_{}[]()>#+-.!') {
- $g_escape_table{$char} = md5_hex($char);
-}
-
-# Global hashes, used by various utility routines
-# FIXME - to be moved into instance data!
-my %g_metadata_newline = ();
-
-# FIXME - If we're using metadata, newlines (in the metadata have to be \n). Make configurable.
-$g_metadata_newline{default} = "\n";
-
-=head1 METHODS
-
-=head2 new
-
-A simple constructor, see the SYNTAX and OPTIONS sections for more information.
-
-=cut
-
-sub new {
- my ($class, %p) = @_;
-
- # Default metadata to 1
- $p{use_metadata} = 1 unless exists $p{use_metadata};
- # Squash value to [01]
- $p{use_metadata} = $p{use_metadata} ? 1 : 0;
-
- $p{base_url} ||= ''; # This is the base url to be used for WikiLinks
-
- $p{tab_width} = 4 unless (defined $p{tab_width} and $p{tab_width} =~ m/^\d+$/);
-
- $p{document_format} ||= '';
-
- $p{empty_element_suffix} ||= ' />'; # Change to ">" for HTML output
-
- #$p{heading_ids} = defined $p{heading_ids} ? $p{heading_ids} : 1;
-
- # For use with WikiWords and [[Wiki Links]]
- # NOTE: You can use \WikiWord to prevent a WikiWord from being treated as a link
- $p{use_wikilinks} = $p{use_wikilinks} ? 1 : 0;
-
- # Is markdown processed in HTML blocks? See t/15inlinehtmldonotturnoffmarkdown.t
- $p{markdown_in_html_blocks} = $p{markdown_in_html_blocks} ? 1 : 0;
-
- $p{heading_ids} = defined $p{heading_ids} ? $p{heading_ids} : 1;
- $p{img_ids} = defined $p{img_ids} ? $p{img_ids} : 1;
-
- $p{bibliography_title} ||= 'Bibliography'; # FIXME - Test and document, can also be in metadata!
-
- my $self = { %p };
- bless $self, ref($class) || $class;
- return $self;
-}
-
-=item markdown
-
-The main function as far as the outside world is concerned. See the SYNOPSIS
-for details on use.
-
-=cut
-
-sub markdown {
- my ( $self, $text, $options ) = @_;
-
- # Detect functional mode, and create an instance for this run..
- unless (ref $self) {
- if ( $self ne __PACKAGE__ ) {
- my $ob = __PACKAGE__->new();
- # $self is text, $text is options
- return $ob->markdown($self, $text);
- }
- else {
- croak('Calling ' . $self . '->markdown (as a class method) is not supported.');
- }
- }
-
-
- $options ||= {};
-
- $self->{_metadata} = {};
-
- # Localise all of these settings, so that if they're frobbed by options here (or metadata later), the change will not persist.
- # FIXME - There should be a nicer way to do this...
- local $self->{use_wikilinks} = exists $options->{use_wikilinks} ? $options->{use_wikilinks} : $self->{use_wikilinks};
- local $self->{empty_element_suffix} = exists $options->{empty_element_suffix} ? $options->{empty_element_suffix} : $self->{empty_element_suffix};
- local $self->{document_format} = exists $options->{document_format} ? $options->{document_format} : $self->{document_format};
- local $self->{use_metadata} = exists $options->{use_metadata} ? $options->{use_metadata} : $self->{use_metadata};
- local $self->{strip_metadata} = exists $options->{strip_metadata} ? $options->{strip_metadata} : $self->{strip_metadata};
- local $self->{markdown_in_html_blocks} = exists $options->{markdown_in_html_blocks}? $options->{o}: $self->{markdown_in_html_blocks};
- local $self->{disable_tables} = exists $options->{disable_tables} ? $options->{disable_tables} : $self->{disable_tables};
- local $self->{disable_footnotes} = exists $options->{disable_footnotes} ? $options->{disable_footnotes} : $self->{disable_footnotesf};
- local $self->{disable_bibliography} = exists $options->{disable_bibliography} ? $options->{disable_bibliography} : $self->{disable_bibliography};
- if (exists $options->{tab_width}) {
- local $self->{tab_width} = $options->{tab_width};
- }
-
- # Clear the global hashes. If we don't clear these, you get conflicts
- # from other articles when generating a page which contains more than
- # one article (e.g. an index page that shows the N most recent
- # articles):
- $self->{_urls} = $options->{urls} ? $options->{urls} : {}; # FIXME - document and test passing this option.
- $self->{_titles} = $options->{titles} ? $options->{titles} : {}; # FIXME - ditto
- $self->{_html_blocks} = $options->{html_blocks} ? $options->{html_blocks} : {}; # FIXME - ditto
- $self->{_crossrefs} = {};
- $self->{_footnotes} = {};
- $self->{_references} = {};
- $self->{_attributes} = {}; # What is this used for again?
- $self->{_used_footnotes} = []; # Why do we need 2 data structures for footnotes? FIXME
- $self->{_used_references} = []; # Ditto for references
- $self->{_citation_counter} = 0;
- # Used to track when we're inside an ordered or unordered list
- # (see _ProcessListItems() for details)
- $self->{_list_level} = 0;
-
- my $t = $self->_Markdown($text);
-
- return $t;
-}
-
-=item _Markdown
-
-The main function (internal use only).
-
-=cut
-
-sub _Markdown {
-#
-# Main function. The order in which other subs are called here is
-# essential. Link and image substitutions need to happen before
-# _EscapeSpecialChars(), so that any *'s or _'s in the <a>
-# and <img> tags get encoded.
-#
- my ($self, $text) = @_;
-
- # Standardize line endings:
- $text =~ s{\r\n}{\n}g; # DOS to Unix
- $text =~ s{\r}{\n}g; # Mac to Unix
-
- # Make sure $text ends with a couple of newlines:
- $text .= "\n\n";
-
- # Convert all tabs to spaces.
- $text = $self->_Detab($text);
-
- # Strip any lines consisting only of spaces and tabs.
- # This makes subsequent regexen easier to write, because we can
- # match consecutive blank lines with /\n+/ instead of something
- # contorted like /[ \t]*\n+/ .
- $text =~ s/^[ \t]+$//mg;
-
- # Strip out MetaData
- $text = $self->_ParseMetaData($text) if ($self->{use_metadata} || $self->{strip_metadata});
-
- # And recheck for leading blank lines
- $text =~ s/^\n+//s;
-
- # Turn block-level HTML blocks into hash entries
- $text = $self->_HashHTMLBlocks($text) unless $self->{markdown_in_html_blocks};
-
- # Strip link definitions, store in hashes.
- $text = $self->_StripFootnoteDefinitions($text) unless $self->{disable_footnotes};
-
- $text = $self->_StripLinkDefinitions($text);
-
- $self->_GenerateImageCrossRefs($text);
-
- $text = $self->_StripMarkdownReferences($text);
-
- $text = $self->_RunBlockGamut($text);
-
- $text = $self->_DoMarkdownCitations($text) unless $self->{disable_bibliography};
-
- $text = $self->_DoFootnotes($text) unless $self->{disable_footnotes};
-
- $text = $self->_UnescapeSpecialChars($text);
-
- # This must follow _UnescapeSpecialChars
- $text = $self->_UnescapeWikiWords($text);
-
- $text = $self->_FixFootnoteParagraphs($text) unless $self->{disable_footnotes};
- $text .= $self->_PrintFootnotes() unless $self->{disable_footnotes};
-
- $text .= $self->_PrintMarkdownBibliography() unless $self->{disable_bibliography};
-
- $text = $self->_ConvertCopyright($text);
-
- if (lc($self->{document_format}) =~ /^complete\s*$/) {
- return $self->xhtmlMetaData() . "<body>\n" . $text . "\n</body>\n</html>";
- }
- else {
- return $self->textMetaData() . $text . "\n";
- }
-
-}
-
-sub _StripLinkDefinitions {
-#
-# Strips link definitions from text, stores the URLs and titles in
-# hash references.
-#
- my ($self, $text) = @_;
- my $less_than_tab = $self->{tab_width} - 1;
-
- # Link defs are in the form: ^[id]: url "optional title"
- while ($text =~ s{
- ^[ ]{0,$less_than_tab}\[(.+)\]: # id = $1
- [ \t]*
- \n? # maybe *one* newline
- [ \t]*
- <?(\S+?)>? # url = $2
- [ \t]*
- \n? # maybe one newline
- [ \t]*
- (?:
- (?<=\s) # lookbehind for whitespace
- ["(]
- (.+?) # title = $3
- [")]
- [ \t]*
- )? # title is optional
-
- # MultiMarkdown addition for attribute support
- \n?
- ( # Attributes = $4
- (?<=\s) # lookbehind for whitespace
- (([ \t]*\n)?[ \t]*((\S+=\S+)|(\S+=".*?")))*
- )?
- [ \t]*
- # /addition
- (?:\n+|\Z)
- }
- {}mx) {
- $self->{_urls}{lc $1} = $self->_EncodeAmpsAndAngles( $2 ); # Link IDs are case-insensitive
- if ($3) {
- $self->{_titles}{lc $1} = $3;
- $self->{_titles}{lc $1} =~ s/"/&quot;/g;
- }
-
- # MultiMarkdown addition "
- if ($4) {
- $self->{_attributes}{lc $1} = $4;
- }
- # /addition
- }
-
- return $text;
-}
-
-sub _md5_utf8 {
- # Internal function used to safely MD5sum chunks of the input, which might be Unicode in Perl's internal representation.
- my $input = shift;
- return unless defined $input;
- if (Encode::is_utf8 $input) {
- return md5_hex(Encode::encode('utf8', $input));
- }
- else {
- return md5_hex($input);
- }
-}
-
-sub _HashHTMLBlocks {
- my ($self, $text) = @_;
- my $less_than_tab = $self->{tab_width} - 1;
-
- # Hashify HTML blocks:
- # We only want to do this for block-level HTML tags, such as headers,
- # lists, and tables. That's because we still want to wrap <p>s around
- # "paragraphs" that are wrapped in non-block-level tags, such as anchors,
- # phrase emphasis, and spans. The list of tags we're looking for is
- # hard-coded:
- my $block_tags = qr{
- (?:
- p | div | h[1-6] | blockquote | pre | table |
- dl | ol | ul | script | noscript | form |
- fieldset | iframe | math | ins | del
- )
- }x;
-
- my $tag_attrs = qr{
- (?: # Match one attr name/value pair
- \s+ # There needs to be at least some whitespace
- # before each attribute name.
- [\w.:_-]+ # Attribute name
- \s*=\s*
- (?:
- ".+?" # "Attribute value"
- |
- '.+?' # 'Attribute value'
- )
- )* # Zero or more
- }x;
-
- my $empty_tag = qr{< \w+ $tag_attrs \s* />}xms;
- my $open_tag = qr{< $block_tags $tag_attrs \s* >}xms;
- my $close_tag = undef; # let Text::Balanced handle this
-
- use Text::Balanced qw(gen_extract_tagged);
- my $extract_block = gen_extract_tagged($open_tag, $close_tag, undef, { ignore => [$empty_tag] });
-
- my @chunks;
- ## TO-DO: the 0,3 on the next line ought to respect the
- ## tabwidth, or else, we should mandate 4-space tabwidth and
- ## be done with it:
- while ($text =~ s{^(([ ]{0,3}<)?.*\n)}{}m) {
- my $cur_line = $1;
- if (defined $2) {
- # current line could be start of code block
-
- my ($tag, $remainder) = $extract_block->($cur_line . $text);
- if ($tag) {
- my $key = _md5_utf8($tag);
- $self->{_html_blocks}{$key} = $tag;
- push @chunks, "\n\n" . $key . "\n\n";
- $text = $remainder;
- }
- else {
- # No tag match, so toss $cur_line into @chunks
- push @chunks, $cur_line;
- }
- }
- else {
- # current line could NOT be start of code block
- push @chunks, $cur_line;
- }
-
- }
- push @chunks, $text; # Whatever is left.
-
- $text = join '', @chunks;
-
-
-
- # Special case just for <hr />. It was easier to make a special case than
- # to make the other regex more complicated.
- $text =~ s{
- (?:
- (?<=\n\n) # Starting after a blank line
- | # or
- \A\n? # the beginning of the doc
- )
- ( # save in $1
- [ ]{0,$less_than_tab}
- <(hr) # start tag = $2
- \b # word break
- ([^<>])*? #
- /?> # the matching end tag
- [ \t]*
- (?=\n{2,}|\Z) # followed by a blank line or end of document
- )
- }{
- my $key = _md5_utf8($1);
- $self->{_html_blocks}{$key} = $1;
- "\n\n" . $key . "\n\n";
- }egx;
-
- # Special case for standalone HTML comments:
- $text =~ s{
- (?:
- (?<=\n\n) # Starting after a blank line
- | # or
- \A\n? # the beginning of the doc
- )
- ( # save in $1
- [ ]{0,$less_than_tab}
- (?s:
- <!
- (--.*?--\s*)+
- >
- )
- [ \t]*
- (?=\n{2,}|\Z) # followed by a blank line or end of document
- )
- }{
- my $key = _md5_utf8($1);
- $self->{_html_blocks}{$key} = $1;
- "\n\n" . $key . "\n\n";
- }egx;
-
- # PHP and ASP-style processor instructions (<?…?> and <%…%>)
- $text =~ s{
- (?:
- (?<=\n\n) # Starting after a blank line
- | # or
- \A\n? # the beginning of the doc
- )
- ( # save in $1
- [ ]{0,$less_than_tab}
- (?s:
- <([?%]) # $2
- .*?
- \2>
- )
- [ \t]*
- (?=\n{2,}|\Z) # followed by a blank line or end of document
- )
- }{
- my $key = _md5_utf8($1);
- $self->{_html_blocks}{$key} = $1;
- "\n\n" . $key . "\n\n";
- }egx;
-
- return $text;
-}
-
-
-sub _RunBlockGamut {
-#
-# These are all the transformations that form block-level
-# tags like paragraphs, headers, and list items.
-#
- my ($self, $text) = @_;
-
- # Do headers first, as these populate cross-refs
- $text = $self->_DoHeaders($text);
-
- # Do tables first to populate the table id's for cross-refs
- # (but after headers as the tables can contain cross-refs to other things, so we want the header cross-refs)
- # Escape <pre><code> so we don't get greedy with tables
- $text = $self->_DoTables($text);
-
- # And now, protect our tables
- $text = $self->_HashHTMLBlocks($text) unless $self->{markdown_in_html_blocks};
-
- # Do Horizontal Rules:
- $text =~ s{^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$}{\n<hr$self->{empty_element_suffix}\n}gmx;
- $text =~ s{^[ ]{0,2}([ ]? -[ ]?){3,}[ \t]*$}{\n<hr$self->{empty_element_suffix}\n}gmx;
- $text =~ s{^[ ]{0,2}([ ]? _[ ]?){3,}[ \t]*$}{\n<hr$self->{empty_element_suffix}\n}gmx;
-
- $text = $self->_DoLists($text);
-
- $text = $self->_DoCodeBlocks($text);
-
- $text = $self->_DoBlockQuotes($text);
-
- # We already ran _HashHTMLBlocks() before, in Markdown(), but that
- # was to escape raw HTML in the original Markdown source. This time,
- # we're escaping the markup we've just created, so that we don't wrap
- # <p> tags around block-level tags.
- $text = $self->_HashHTMLBlocks($text);
-
- # Escape <pre><code> so we don't get greedy with tables
-# $text = _DoTables($text);
-
- # And now, protect our tables
-# $text = _HashHTMLBlocks($text);
-
- $text = $self->_FormParagraphs($text);
-
- return $text;
-}
-
-
-sub _RunSpanGamut {
-#
-# These are all the transformations that occur *within* block-level
-# tags like paragraphs, headers, and list items.
-#
- my ($self, $text) = @_;
-
- $text = $self->_DoCodeSpans($text);
- $text = $self->_EscapeSpecialCharsWithinTagAttributes($text);
- $text = $self->_EscapeSpecialChars($text);
-
- # Process anchor and image tags. Images must come first,
- # because ![foo][f] looks like an anchor.
- $text = $self->_DoImages($text);
- $text = $self->_DoAnchors($text);
-
- # Process WikiWords
- if ($self->_UseWikiLinks()) {
- $text = $self->_DoWikiLinks($text);
-
- # And then reprocess anchors and images
- $text = $self->_DoImages($text);
- $text = $self->_DoAnchors($text);
- }
-
-
- # Make links out of things like `<http://example.com/>`
- # Must come after _DoAnchors(), because you can use < and >
- # delimiters in inline links like [this](<url>).
- $text = $self->_DoAutoLinks($text);
-
- $text = $self->_EncodeAmpsAndAngles($text);
-
- $text = $self->_DoItalicsAndBold($text);
-
- # Do hard breaks:
- $text =~ s/ {2,}\n/ <br$self->{empty_element_suffix}\n/g;
-
- return $text;
-}
-
-sub _EscapeSpecialChars {
- my ($self, $text) = @_;
- my $tokens ||= $self->_TokenizeHTML($text);
-