remi-maruku 0.5.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (183) hide show
  1. data/Rakefile +73 -0
  2. data/bin/marudown +29 -0
  3. data/bin/maruku +176 -0
  4. data/bin/marutest +338 -0
  5. data/bin/marutex +31 -0
  6. data/docs/changelog.md +334 -0
  7. data/docs/div_syntax.md +36 -0
  8. data/docs/entity_test.md +23 -0
  9. data/docs/markdown_syntax.md +899 -0
  10. data/docs/maruku.md +346 -0
  11. data/docs/math.md +194 -0
  12. data/docs/other_stuff.md +51 -0
  13. data/docs/proposal.md +309 -0
  14. data/lib/maruku.rb +141 -0
  15. data/lib/maruku/attributes.rb +227 -0
  16. data/lib/maruku/defaults.rb +70 -0
  17. data/lib/maruku/errors_management.rb +92 -0
  18. data/lib/maruku/ext/div.rb +100 -0
  19. data/lib/maruku/ext/math.rb +41 -0
  20. data/lib/maruku/ext/math/elements.rb +27 -0
  21. data/lib/maruku/ext/math/latex_fix.rb +11 -0
  22. data/lib/maruku/ext/math/mathml_engines/blahtex.rb +104 -0
  23. data/lib/maruku/ext/math/mathml_engines/itex2mml.rb +29 -0
  24. data/lib/maruku/ext/math/mathml_engines/none.rb +20 -0
  25. data/lib/maruku/ext/math/mathml_engines/ritex.rb +24 -0
  26. data/lib/maruku/ext/math/parsing.rb +105 -0
  27. data/lib/maruku/ext/math/to_html.rb +170 -0
  28. data/lib/maruku/ext/math/to_latex.rb +22 -0
  29. data/lib/maruku/helpers.rb +260 -0
  30. data/lib/maruku/input/charsource.rb +326 -0
  31. data/lib/maruku/input/extensions.rb +69 -0
  32. data/lib/maruku/input/html_helper.rb +189 -0
  33. data/lib/maruku/input/linesource.rb +111 -0
  34. data/lib/maruku/input/parse_block.rb +613 -0
  35. data/lib/maruku/input/parse_doc.rb +227 -0
  36. data/lib/maruku/input/parse_span_better.rb +732 -0
  37. data/lib/maruku/input/rubypants.rb +225 -0
  38. data/lib/maruku/input/type_detection.rb +144 -0
  39. data/lib/maruku/input_textile2/t2_parser.rb +163 -0
  40. data/lib/maruku/maruku.rb +33 -0
  41. data/lib/maruku/output/s5/fancy.rb +756 -0
  42. data/lib/maruku/output/s5/to_s5.rb +125 -0
  43. data/lib/maruku/output/to_html.rb +971 -0
  44. data/lib/maruku/output/to_latex.rb +563 -0
  45. data/lib/maruku/output/to_latex_entities.rb +367 -0
  46. data/lib/maruku/output/to_latex_strings.rb +64 -0
  47. data/lib/maruku/output/to_markdown.rb +164 -0
  48. data/lib/maruku/output/to_s.rb +53 -0
  49. data/lib/maruku/string_utils.rb +191 -0
  50. data/lib/maruku/structures.rb +165 -0
  51. data/lib/maruku/structures_inspect.rb +87 -0
  52. data/lib/maruku/structures_iterators.rb +61 -0
  53. data/lib/maruku/tests/benchmark.rb +82 -0
  54. data/lib/maruku/tests/new_parser.rb +370 -0
  55. data/lib/maruku/tests/tests.rb +136 -0
  56. data/lib/maruku/textile2.rb +1 -0
  57. data/lib/maruku/toc.rb +199 -0
  58. data/lib/maruku/usage/example1.rb +33 -0
  59. data/lib/maruku/version.rb +40 -0
  60. data/tests/bugs/code_in_links.md +16 -0
  61. data/tests/bugs/complex_escaping.md +4 -0
  62. data/tests/math/syntax.md +46 -0
  63. data/tests/math_usage/document.md +13 -0
  64. data/tests/others/abbreviations.md +11 -0
  65. data/tests/others/blank.md +4 -0
  66. data/tests/others/code.md +5 -0
  67. data/tests/others/code2.md +8 -0
  68. data/tests/others/code3.md +16 -0
  69. data/tests/others/email.md +4 -0
  70. data/tests/others/entities.md +19 -0
  71. data/tests/others/escaping.md +16 -0
  72. data/tests/others/extra_dl.md +101 -0
  73. data/tests/others/extra_header_id.md +13 -0
  74. data/tests/others/extra_table1.md +40 -0
  75. data/tests/others/footnotes.md +17 -0
  76. data/tests/others/headers.md +10 -0
  77. data/tests/others/hrule.md +10 -0
  78. data/tests/others/images.md +20 -0
  79. data/tests/others/inline_html.md +42 -0
  80. data/tests/others/links.md +38 -0
  81. data/tests/others/list1.md +4 -0
  82. data/tests/others/list2.md +5 -0
  83. data/tests/others/list3.md +8 -0
  84. data/tests/others/lists.md +32 -0
  85. data/tests/others/lists_after_paragraph.md +44 -0
  86. data/tests/others/lists_ol.md +39 -0
  87. data/tests/others/misc_sw.md +105 -0
  88. data/tests/others/one.md +1 -0
  89. data/tests/others/paragraphs.md +13 -0
  90. data/tests/others/sss06.md +352 -0
  91. data/tests/others/test.md +4 -0
  92. data/tests/s5/s5profiling.md +48 -0
  93. data/tests/unittest/abbreviations.md +72 -0
  94. data/tests/unittest/alt.md +30 -0
  95. data/tests/unittest/attributes/att2.md +34 -0
  96. data/tests/unittest/attributes/att3.md +45 -0
  97. data/tests/unittest/attributes/attributes.md +82 -0
  98. data/tests/unittest/attributes/circular.md +43 -0
  99. data/tests/unittest/attributes/default.md +38 -0
  100. data/tests/unittest/blank.md +39 -0
  101. data/tests/unittest/blanks_in_code.md +106 -0
  102. data/tests/unittest/bug_def.md +29 -0
  103. data/tests/unittest/bug_table.md +67 -0
  104. data/tests/unittest/code.md +53 -0
  105. data/tests/unittest/code2.md +46 -0
  106. data/tests/unittest/code3.md +102 -0
  107. data/tests/unittest/data_loss.md +42 -0
  108. data/tests/unittest/divs/div1.md +204 -0
  109. data/tests/unittest/divs/div2.md +34 -0
  110. data/tests/unittest/divs/div3_nest.md +62 -0
  111. data/tests/unittest/easy.md +28 -0
  112. data/tests/unittest/email.md +33 -0
  113. data/tests/unittest/encoding/iso-8859-1.md +38 -0
  114. data/tests/unittest/encoding/utf-8.md +33 -0
  115. data/tests/unittest/entities.md +124 -0
  116. data/tests/unittest/escaping.md +89 -0
  117. data/tests/unittest/extra_dl.md +72 -0
  118. data/tests/unittest/extra_header_id.md +86 -0
  119. data/tests/unittest/extra_table1.md +55 -0
  120. data/tests/unittest/footnotes.md +126 -0
  121. data/tests/unittest/headers.md +54 -0
  122. data/tests/unittest/hex_entities.md +50 -0
  123. data/tests/unittest/hrule.md +60 -0
  124. data/tests/unittest/html2.md +38 -0
  125. data/tests/unittest/html3.md +47 -0
  126. data/tests/unittest/html4.md +42 -0
  127. data/tests/unittest/html5.md +38 -0
  128. data/tests/unittest/ie.md +82 -0
  129. data/tests/unittest/images.md +114 -0
  130. data/tests/unittest/images2.md +46 -0
  131. data/tests/unittest/inline_html.md +260 -0
  132. data/tests/unittest/inline_html2.md +36 -0
  133. data/tests/unittest/links.md +197 -0
  134. data/tests/unittest/list1.md +66 -0
  135. data/tests/unittest/list2.md +76 -0
  136. data/tests/unittest/list3.md +88 -0
  137. data/tests/unittest/list4.md +116 -0
  138. data/tests/unittest/lists.md +241 -0
  139. data/tests/unittest/lists11.md +31 -0
  140. data/tests/unittest/lists6.md +54 -0
  141. data/tests/unittest/lists7.md +79 -0
  142. data/tests/unittest/lists7b.md +136 -0
  143. data/tests/unittest/lists8.md +83 -0
  144. data/tests/unittest/lists9.md +85 -0
  145. data/tests/unittest/lists_after_paragraph.md +268 -0
  146. data/tests/unittest/lists_ol.md +324 -0
  147. data/tests/unittest/loss.md +29 -0
  148. data/tests/unittest/math/equations.md +69 -0
  149. data/tests/unittest/math/inline.md +66 -0
  150. data/tests/unittest/math/math2.md +110 -0
  151. data/tests/unittest/math/notmath.md +40 -0
  152. data/tests/unittest/math/table.md +43 -0
  153. data/tests/unittest/math/table2.md +60 -0
  154. data/tests/unittest/misc_sw.md +615 -0
  155. data/tests/unittest/notyet/escape.md +36 -0
  156. data/tests/unittest/notyet/header_after_par.md +81 -0
  157. data/tests/unittest/notyet/ticks.md +31 -0
  158. data/tests/unittest/notyet/triggering.md +206 -0
  159. data/tests/unittest/olist.md +64 -0
  160. data/tests/unittest/one.md +28 -0
  161. data/tests/unittest/paragraph.md +29 -0
  162. data/tests/unittest/paragraph_rules/dont_merge_ref.md +57 -0
  163. data/tests/unittest/paragraph_rules/tab_is_blank.md +39 -0
  164. data/tests/unittest/paragraphs.md +66 -0
  165. data/tests/unittest/pending/amps.md +29 -0
  166. data/tests/unittest/pending/empty_cells.md +53 -0
  167. data/tests/unittest/pending/link.md +103 -0
  168. data/tests/unittest/recover/recover_links.md +28 -0
  169. data/tests/unittest/references/long_example.md +88 -0
  170. data/tests/unittest/references/spaces_and_numbers.md +28 -0
  171. data/tests/unittest/smartypants.md +171 -0
  172. data/tests/unittest/syntax_hl.md +80 -0
  173. data/tests/unittest/table_attributes.md +52 -0
  174. data/tests/unittest/test.md +32 -0
  175. data/tests/unittest/wrapping.md +88 -0
  176. data/tests/unittest/xml.md +54 -0
  177. data/tests/unittest/xml2.md +34 -0
  178. data/tests/unittest/xml3.md +44 -0
  179. data/tests/unittest/xml_instruction.md +72 -0
  180. data/tests/utf8-files/simple.md +1 -0
  181. data/unit_test_block.sh +5 -0
  182. data/unit_test_span.sh +2 -0
  183. metadata +243 -0
@@ -0,0 +1,106 @@
1
+ Write a comment abouth the test here.
2
+ *** Parameters: ***
3
+ {}
4
+ *** Markdown input: ***
5
+ This block is composed of three lines:
6
+
7
+ one
8
+
9
+ three
10
+
11
+ This block is composed of 5
12
+
13
+
14
+ one
15
+
16
+
17
+ four
18
+
19
+
20
+ This block is composed of 2
21
+
22
+
23
+ two
24
+
25
+
26
+
27
+ *** Output of inspect ***
28
+ md_el(:document,[
29
+ md_par(["This block is composed of three lines:"]),
30
+ md_el(:code,[],{:raw_code=>"one\n\nthree"},[]),
31
+ md_par(["This block is composed of 5"]),
32
+ md_el(:code,[],{:raw_code=>"one\n\n\nfour"},[]),
33
+ md_par(["This block is composed of 2"]),
34
+ md_el(:code,[],{:raw_code=>"two"},[])
35
+ ],{},[])
36
+ *** Output of to_html ***
37
+ <p>This block is composed of three lines:</p>
38
+
39
+ <pre><code>one
40
+
41
+ three</code></pre>
42
+
43
+ <p>This block is composed of 5</p>
44
+
45
+ <pre><code>one
46
+
47
+
48
+ four</code></pre>
49
+
50
+ <p>This block is composed of 2</p>
51
+
52
+ <pre><code>two</code></pre>
53
+ *** Output of to_latex ***
54
+ This block is composed of three lines:
55
+
56
+ \begin{verbatim}one
57
+
58
+ three\end{verbatim}
59
+ This block is composed of 5
60
+
61
+ \begin{verbatim}one
62
+
63
+
64
+ four\end{verbatim}
65
+ This block is composed of 2
66
+
67
+ \begin{verbatim}two\end{verbatim}
68
+ *** Output of to_md ***
69
+ This block is composed of three lines:
70
+
71
+ This block is composed of 5
72
+
73
+ This block is composed of 2
74
+ *** Output of to_s ***
75
+ This block is composed of three lines:This block is composed of 5This block is composed of 2
76
+ *** EOF ***
77
+
78
+
79
+
80
+ OK!
81
+
82
+
83
+
84
+ *** Output of Markdown.pl ***
85
+ <p>This block is composed of three lines:</p>
86
+
87
+ <pre><code>one
88
+
89
+ three
90
+ </code></pre>
91
+
92
+ <p>This block is composed of 5</p>
93
+
94
+ <pre><code>one
95
+
96
+
97
+ four
98
+ </code></pre>
99
+
100
+ <p>This block is composed of 2</p>
101
+
102
+ <pre><code>two
103
+ </code></pre>
104
+
105
+ *** Output of Markdown.pl (parsed) ***
106
+ Error: #<NoMethodError: undefined method `write_children' for <div> ... </>:REXML::Element>
@@ -0,0 +1,29 @@
1
+ Write a comment here
2
+ *** Parameters: ***
3
+ {} # params
4
+ *** Markdown input: ***
5
+ [test][]:
6
+
7
+ *** Output of inspect ***
8
+ md_el(:document,[md_par([md_link(["test"],"test"), ":"])],{},[])
9
+ *** Output of to_html ***
10
+ <p><span>test</span>:</p>
11
+ *** Output of to_latex ***
12
+ test:
13
+ *** Output of to_md ***
14
+ test:
15
+ *** Output of to_s ***
16
+ test:
17
+ *** EOF ***
18
+
19
+
20
+
21
+ OK!
22
+
23
+
24
+
25
+ *** Output of Markdown.pl ***
26
+ <p>[test][]:</p>
27
+
28
+ *** Output of Markdown.pl (parsed) ***
29
+ Error: #<NoMethodError: undefined method `write_children' for <div> ... </>:REXML::Element>
@@ -0,0 +1,67 @@
1
+ Write a comment here
2
+ *** Parameters: ***
3
+ {} # params
4
+ *** Markdown input: ***
5
+
6
+
7
+ hello
8
+ {: summary="Table summary" .class1 style="color:red"}
9
+
10
+ h | h
11
+ ----------|--
12
+ {:t} c1 | c2
13
+ {: summary="Table summary" .class1 style="color:red"}
14
+
15
+
16
+
17
+ {:t: scope="row"}
18
+ *** Output of inspect ***
19
+ md_el(:document,[
20
+ md_par(["hello"], [["summary", "Table summary"], [:class, "class1"], ["style", "color:red"]]),
21
+ md_el(:table,[
22
+ md_el(:head_cell,["h"],{},[]),
23
+ md_el(:head_cell,["h"],{},[]),
24
+ md_el(:cell,[" c1"],{},[[:ref, "t"]]),
25
+ md_el(:cell,["c2"],{},[])
26
+ ],{:align=>[:left, :left]},[["summary", "Table summary"], [:class, "class1"], ["style", "color:red"]]),
27
+ md_el(:ald,[],{:ald=>[["scope", "row"]],:ald_id=>"t"},[])
28
+ ],{},[])
29
+ *** Output of to_html ***
30
+ <p class='class1' style='color:red'>hello</p>
31
+ <table class='class1' summary='Table summary' style='color:red'><thead><tr><th>h</th><th>h</th></tr></thead><tbody><tr><th scope='row' style='text-align: left;'> c1</th><td style='text-align: left;'>c2</td>
32
+ </tr></tbody></table>
33
+ *** Output of to_latex ***
34
+ hello
35
+
36
+ \begin{tabular}{l|l}
37
+ h&h\\
38
+ \hline
39
+ c1&c2\\
40
+ \end{tabular}
41
+ *** Output of to_md ***
42
+ hello
43
+
44
+ hh c1c2
45
+ *** Output of to_s ***
46
+ hellohh c1c2
47
+ *** EOF ***
48
+
49
+
50
+
51
+ OK!
52
+
53
+
54
+
55
+ *** Output of Markdown.pl ***
56
+ <p>hello
57
+ {: summary="Table summary" .class1 style="color:red"}</p>
58
+
59
+ <p>h | h
60
+ ----------|--
61
+ {:t} c1 | c2
62
+ {: summary="Table summary" .class1 style="color:red"}</p>
63
+
64
+ <p>{:t: scope="row"}</p>
65
+
66
+ *** Output of Markdown.pl (parsed) ***
67
+ Error: #<NoMethodError: undefined method `write_children' for <div> ... </>:REXML::Element>
@@ -0,0 +1,53 @@
1
+ Comment
2
+ *** Parameters: ***
3
+ {}
4
+ *** Markdown input: ***
5
+ Here is an example of AppleScript:
6
+
7
+ tell application "Foo"
8
+ beep
9
+ end tell
10
+ tab
11
+
12
+ *** Output of inspect ***
13
+ md_el(:document,[
14
+ md_par(["Here is an example of AppleScript:"]),
15
+ md_el(:code,[],{:raw_code=>"tell application \"Foo\"\n beep\nend tell\n\ttab"},[])
16
+ ],{},[])
17
+ *** Output of to_html ***
18
+ <p>Here is an example of AppleScript:</p>
19
+
20
+ <pre><code>tell application &quot;Foo&quot;
21
+ beep
22
+ end tell
23
+ tab</code></pre>
24
+ *** Output of to_latex ***
25
+ Here is an example of AppleScript:
26
+
27
+ \begin{verbatim}tell application "Foo"
28
+ beep
29
+ end tell
30
+ tab\end{verbatim}
31
+ *** Output of to_md ***
32
+ Here is an example of AppleScript:
33
+ *** Output of to_s ***
34
+ Here is an example of AppleScript:
35
+ *** EOF ***
36
+
37
+
38
+
39
+ OK!
40
+
41
+
42
+
43
+ *** Output of Markdown.pl ***
44
+ <p>Here is an example of AppleScript:</p>
45
+
46
+ <pre><code>tell application "Foo"
47
+ beep
48
+ end tell
49
+ tab
50
+ </code></pre>
51
+
52
+ *** Output of Markdown.pl (parsed) ***
53
+ Error: #<NoMethodError: undefined method `write_children' for <div> ... </>:REXML::Element>
@@ -0,0 +1,46 @@
1
+ Write a comment abouth the test here.
2
+ *** Parameters: ***
3
+ {}
4
+ *** Markdown input: ***
5
+ > Code
6
+ >
7
+ > Ciao
8
+ *** Output of inspect ***
9
+ md_el(:document,[
10
+ md_el(:quote,[md_par(["Code"]), md_el(:code,[],{:raw_code=>"Ciao"},[])],{},[])
11
+ ],{},[])
12
+ *** Output of to_html ***
13
+ <blockquote>
14
+ <p>Code</p>
15
+
16
+ <pre><code>Ciao</code></pre>
17
+ </blockquote>
18
+ *** Output of to_latex ***
19
+ \begin{quote}%
20
+ Code
21
+
22
+ \begin{verbatim}Ciao\end{verbatim}
23
+
24
+ \end{quote}
25
+ *** Output of to_md ***
26
+ Code
27
+ *** Output of to_s ***
28
+ Code
29
+ *** EOF ***
30
+
31
+
32
+
33
+ OK!
34
+
35
+
36
+
37
+ *** Output of Markdown.pl ***
38
+ <blockquote>
39
+ <p>Code</p>
40
+
41
+ <pre><code>Ciao
42
+ </code></pre>
43
+ </blockquote>
44
+
45
+ *** Output of Markdown.pl (parsed) ***
46
+ Error: #<NoMethodError: undefined method `write_children' for <div> ... </>:REXML::Element>
@@ -0,0 +1,102 @@
1
+ Write a comment abouth the test here.
2
+ *** Parameters: ***
3
+ {}
4
+ *** Markdown input: ***
5
+
6
+ This is code (4 spaces):
7
+
8
+ Code
9
+ This is not code
10
+
11
+ Code
12
+
13
+ This is code (1 tab):
14
+
15
+ Code
16
+ This is not code
17
+
18
+ Code
19
+
20
+
21
+
22
+ *** Output of inspect ***
23
+ md_el(:document,[
24
+ md_par(["This is code (4 spaces):"]),
25
+ md_el(:code,[],{:raw_code=>"Code"},[]),
26
+ md_par(["This is not code"]),
27
+ md_el(:code,[],{:raw_code=>"Code"},[]),
28
+ md_par(["This is code (1 tab):"]),
29
+ md_el(:code,[],{:raw_code=>"Code"},[]),
30
+ md_par(["This is not code"]),
31
+ md_el(:code,[],{:raw_code=>"Code"},[])
32
+ ],{},[])
33
+ *** Output of to_html ***
34
+ <p>This is code (4 spaces):</p>
35
+
36
+ <pre><code>Code</code></pre>
37
+
38
+ <p>This is not code</p>
39
+
40
+ <pre><code>Code</code></pre>
41
+
42
+ <p>This is code (1 tab):</p>
43
+
44
+ <pre><code>Code</code></pre>
45
+
46
+ <p>This is not code</p>
47
+
48
+ <pre><code>Code</code></pre>
49
+ *** Output of to_latex ***
50
+ This is code (4 spaces):
51
+
52
+ \begin{verbatim}Code\end{verbatim}
53
+ This is not code
54
+
55
+ \begin{verbatim}Code\end{verbatim}
56
+ This is code (1 tab):
57
+
58
+ \begin{verbatim}Code\end{verbatim}
59
+ This is not code
60
+
61
+ \begin{verbatim}Code\end{verbatim}
62
+ *** Output of to_md ***
63
+ This is code (4 spaces):
64
+
65
+ This is not code
66
+
67
+ This is code (1 tab):
68
+
69
+ This is not code
70
+ *** Output of to_s ***
71
+ This is code (4 spaces):This is not codeThis is code (1 tab):This is not code
72
+ *** EOF ***
73
+
74
+
75
+
76
+ OK!
77
+
78
+
79
+
80
+ *** Output of Markdown.pl ***
81
+ <p>This is code (4 spaces):</p>
82
+
83
+ <pre><code>Code
84
+ </code></pre>
85
+
86
+ <p>This is not code</p>
87
+
88
+ <pre><code>Code
89
+ </code></pre>
90
+
91
+ <p>This is code (1 tab):</p>
92
+
93
+ <pre><code>Code
94
+ </code></pre>
95
+
96
+ <p>This is not code</p>
97
+
98
+ <pre><code>Code
99
+ </code></pre>
100
+
101
+ *** Output of Markdown.pl (parsed) ***
102
+ Error: #<NoMethodError: undefined method `write_children' for <div> ... </>:REXML::Element>
@@ -0,0 +1,42 @@
1
+ Write a comment here
2
+ *** Parameters: ***
3
+ {} # params
4
+ *** Markdown input: ***
5
+ 1. abcd
6
+ efgh
7
+ ijkl
8
+
9
+ *** Output of inspect ***
10
+ md_el(:document,[
11
+ md_el(:ol,[md_el(:li_span,["abcd efgh ijkl"],{:want_my_paragraph=>false},[])],{},[])
12
+ ],{},[])
13
+ *** Output of to_html ***
14
+ <ol>
15
+ <li>abcd efgh ijkl</li>
16
+ </ol>
17
+ *** Output of to_latex ***
18
+ \begin{enumerate}%
19
+ \item abcd efgh ijkl
20
+
21
+ \end{enumerate}
22
+ *** Output of to_md ***
23
+ 1. abcd efgh ijkl
24
+ *** Output of to_s ***
25
+ abcd efgh ijkl
26
+ *** EOF ***
27
+
28
+
29
+
30
+ OK!
31
+
32
+
33
+
34
+ *** Output of Markdown.pl ***
35
+ <ol>
36
+ <li>abcd
37
+ efgh
38
+ ijkl</li>
39
+ </ol>
40
+
41
+ *** Output of Markdown.pl (parsed) ***
42
+ Error: #<NoMethodError: undefined method `write_children' for <div> ... </>:REXML::Element>