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,29 @@
1
+ Write a comment here
2
+ *** Parameters: ***
3
+ {} # params
4
+ *** Markdown input: ***
5
+ <br/>123
6
+
7
+ *** Output of inspect ***
8
+ md_el(:document,[md_html("<br />")],{},[])
9
+ *** Output of to_html ***
10
+ <br />
11
+ *** Output of to_latex ***
12
+
13
+ *** Output of to_md ***
14
+
15
+ *** Output of to_s ***
16
+
17
+ *** EOF ***
18
+
19
+
20
+
21
+ OK!
22
+
23
+
24
+
25
+ *** Output of Markdown.pl ***
26
+ <p><br/>123</p>
27
+
28
+ *** Output of Markdown.pl (parsed) ***
29
+ Error: #<NoMethodError: undefined method `write_children' for <div> ... </>:REXML::Element>
@@ -0,0 +1,69 @@
1
+ Write a comment here
2
+ *** Parameters: ***
3
+ {}
4
+ *** Markdown input: ***
5
+
6
+ $$ x = y $$
7
+
8
+ $$ x
9
+ = y $$
10
+
11
+ $$
12
+ x = y $$
13
+
14
+ $$ x = y
15
+ $$
16
+
17
+ *** Output of inspect ***
18
+ md_el(:document,[
19
+ md_par(["$$ x = y $$"]),
20
+ md_el(:header,["$$ x"],{:level=>1},[]),
21
+ md_par(["$$ x = y $$"]),
22
+ md_par(["$$ x = y $$"])
23
+ ],{},[])
24
+ *** Output of to_html ***
25
+ <p>$$ x = y $$</p>
26
+
27
+ <h1 id='_x'>$$ x</h1>
28
+
29
+ <p>$$ x = y $$</p>
30
+
31
+ <p>$$ x = y $$</p>
32
+ *** Output of to_latex ***
33
+ \$\$ x = y \$\$
34
+
35
+ \hypertarget{_x}{}\section*{{\$\$ x}}\label{_x}
36
+
37
+ \$\$ x = y \$\$
38
+
39
+ \$\$ x = y \$\$
40
+ *** Output of to_md ***
41
+ $$ x = y $$
42
+
43
+ $$ x$$ x = y $$
44
+
45
+ $$ x = y $$
46
+ *** Output of to_s ***
47
+ $$ x = y $$$$ x$$ x = y $$$$ x = y $$
48
+ *** EOF ***
49
+
50
+
51
+
52
+ OK!
53
+
54
+
55
+
56
+ *** Output of Markdown.pl ***
57
+ <p>$$ x = y $$</p>
58
+
59
+ <p>$$ x
60
+ = y $$</p>
61
+
62
+ <p>$$
63
+ x = y $$</p>
64
+
65
+ <p>$$ x = y
66
+ $$</p>
67
+
68
+ *** Output of Markdown.pl (parsed) ***
69
+ Error: #<NoMethodError: undefined method `write_children' for <div> ... </>:REXML::Element>
@@ -0,0 +1,66 @@
1
+
2
+ *** Parameters: ***
3
+ require 'maruku/ext/math'; {}
4
+ *** Markdown input: ***
5
+ Here are some formulas:
6
+
7
+ * $\alpha$
8
+ * $x^{n}+y^{n} \neq z^{n}$
9
+
10
+ That's it, nothing else is supported.
11
+
12
+ *** Output of inspect ***
13
+ md_el(:document,[
14
+ md_par(["Here are some formulas:"]),
15
+ md_el(:ul,[
16
+ md_el(:li_span,[md_el(:inline_math,[],{:math=>"\\alpha"},[])],{:want_my_paragraph=>false},[]),
17
+ md_el(:li_span,[md_el(:inline_math,[],{:math=>"x^{n}+y^{n} \\neq z^{n}"},[])],{:want_my_paragraph=>false},[])
18
+ ],{},[]),
19
+ md_par(["That", md_entity("rsquo"), "s it, nothing else is supported."])
20
+ ],{},[])
21
+ *** Output of to_html ***
22
+ <p>Here are some formulas:</p>
23
+
24
+ <ul>
25
+ <li><span class='maruku-inline'><code class='maruku-mathml'>\alpha</code></span></li>
26
+
27
+ <li><span class='maruku-inline'><code class='maruku-mathml'>x^{n}+y^{n} \neq z^{n}</code></span></li>
28
+ </ul>
29
+
30
+ <p>That&#8217;s it, nothing else is supported.</p>
31
+ *** Output of to_latex ***
32
+ Here are some formulas:
33
+
34
+ \begin{itemize}%
35
+ \item $\alpha$
36
+ \item $x^{n}+y^{n} \neq z^{n}$
37
+
38
+ \end{itemize}
39
+ That'{}s it, nothing else is supported.
40
+ *** Output of to_md ***
41
+ Here are some formulas:
42
+
43
+ --
44
+ That s it, nothing else is supported.
45
+ *** Output of to_s ***
46
+ Here are some formulas:Thats it, nothing else is supported.
47
+ *** EOF ***
48
+
49
+
50
+
51
+ OK!
52
+
53
+
54
+
55
+ *** Output of Markdown.pl ***
56
+ <p>Here are some formulas:</p>
57
+
58
+ <ul>
59
+ <li>$\alpha$</li>
60
+ <li>$x^{n}+y^{n} \neq z^{n}$</li>
61
+ </ul>
62
+
63
+ <p>That's it, nothing else is supported.</p>
64
+
65
+ *** Output of Markdown.pl (parsed) ***
66
+ Error: #<NoMethodError: undefined method `write_children' for <div> ... </>:REXML::Element>
@@ -0,0 +1,110 @@
1
+
2
+ *** Parameters: ***
3
+ require 'maruku/ext/math'
4
+ {:math_numbered => ['\\['], :html_math_engine => 'itex2mml' }
5
+ *** Markdown input: ***
6
+
7
+ \[
8
+ \alpha
9
+ \]
10
+
11
+ \begin{equation}
12
+ \alpha
13
+ \end{equation}
14
+
15
+ \begin{equation} \beta
16
+ \end{equation}
17
+
18
+
19
+ \begin{equation} \gamma \end{equation}
20
+ *** Output of inspect ***
21
+ md_el(:document,[
22
+ md_el(:equation,[],{:label=>"eq1",:math=>"\t\\alpha\n\n",:num=>1},[]),
23
+ md_el(:equation,[],{:label=>nil,:math=>"\t\\alpha\n\n",:num=>nil},[]),
24
+ md_el(:equation,[],{:label=>nil,:math=>" \\beta\n",:num=>nil},[]),
25
+ md_el(:equation,[],{:label=>nil,:math=>" \\gamma ",:num=>nil},[])
26
+ ],{},[])
27
+ *** Output of to_html ***
28
+ <div class='maruku-equation' id='eq:eq1'><span class='maruku-eq-number'>(1)</span><math class='maruku-mathml' display='block' xmlns='http://www.w3.org/1998/Math/MathML'><mi>&alpha;</mi></math><div class='maruku-eq-tex'><code style='display: none'> \alpha
29
+
30
+ </code></div></div><div class='maruku-equation'><math class='maruku-mathml' display='block' xmlns='http://www.w3.org/1998/Math/MathML'><mi>&alpha;</mi></math><div class='maruku-eq-tex'><code style='display: none'> \alpha
31
+
32
+ </code></div></div><div class='maruku-equation'><math class='maruku-mathml' display='block' xmlns='http://www.w3.org/1998/Math/MathML'><mi>&beta;</mi></math><div class='maruku-eq-tex'><code style='display: none'> \beta
33
+ </code></div></div><div class='maruku-equation'><math class='maruku-mathml' display='block' xmlns='http://www.w3.org/1998/Math/MathML'><mi>&gamma;</mi></math><div class='maruku-eq-tex'><code style='display: none'> \gamma </code></div></div>
34
+ *** Output of to_latex ***
35
+ \begin{equation}
36
+ \alpha
37
+ \label{eq1}\end{equation}
38
+ \begin{displaymath}
39
+ \alpha
40
+ \end{displaymath}
41
+ \begin{displaymath}
42
+ \beta
43
+ \end{displaymath}
44
+ \begin{displaymath}
45
+ \gamma
46
+ \end{displaymath}
47
+ *** Output of to_md ***
48
+
49
+ *** Output of to_s ***
50
+
51
+ *** EOF ***
52
+
53
+
54
+
55
+
56
+ Failed tests: [:to_html]
57
+
58
+ *** Output of inspect ***
59
+ md_el(:document,[
60
+ md_el(:equation,[],{:label=>"eq1",:math=>"\t\\alpha\n\n",:num=>1},[]),
61
+ md_el(:equation,[],{:label=>nil,:math=>"\t\\alpha\n\n",:num=>nil},[]),
62
+ md_el(:equation,[],{:label=>nil,:math=>" \\beta\n",:num=>nil},[]),
63
+ md_el(:equation,[],{:label=>nil,:math=>" \\gamma ",:num=>nil},[])
64
+ ],{},[])
65
+ *** Output of to_html ***
66
+ -----| WARNING | -----
67
+ <div class='maruku-equation' id='eq:eq1'><span class='maruku-eq-number'>(1)</span><code class='maruku-mathml'> \alpha
68
+
69
+ </code><div class='maruku-eq-tex'><code style='display: none'> \alpha
70
+
71
+ </code></div></div><div class='maruku-equation'><code class='maruku-mathml'> \alpha
72
+
73
+ </code><div class='maruku-eq-tex'><code style='display: none'> \alpha
74
+
75
+ </code></div></div><div class='maruku-equation'><code class='maruku-mathml'> \beta
76
+ </code><div class='maruku-eq-tex'><code style='display: none'> \beta
77
+ </code></div></div><div class='maruku-equation'><code class='maruku-mathml'> \gamma </code><div class='maruku-eq-tex'><code style='display: none'> \gamma </code></div></div>
78
+ *** Output of to_latex ***
79
+ \begin{equation}
80
+ \alpha
81
+ \label{eq1}\end{equation}
82
+ \begin{displaymath}
83
+ \alpha
84
+ \end{displaymath}
85
+ \begin{displaymath}
86
+ \beta
87
+ \end{displaymath}
88
+ \begin{displaymath}
89
+ \gamma
90
+ \end{displaymath}
91
+ *** Output of to_md ***
92
+
93
+ *** Output of to_s ***
94
+
95
+ *** Output of Markdown.pl ***
96
+ <p>[
97
+ \alpha
98
+ ]</p>
99
+
100
+ <p>\begin{equation}
101
+ \alpha
102
+ \end{equation}</p>
103
+
104
+ <p>\begin{equation} \beta
105
+ \end{equation}</p>
106
+
107
+ <p>\begin{equation} \gamma \end{equation}</p>
108
+
109
+ *** Output of Markdown.pl (parsed) ***
110
+ Error: #<NoMethodError: undefined method `write_children' for <div> ... </>:REXML::Element>
@@ -0,0 +1,40 @@
1
+
2
+ *** Parameters: ***
3
+ require 'maruku/ext/math'; {:math_enabled => false}
4
+ *** Markdown input: ***
5
+
6
+ This is not $math$.
7
+
8
+ \[ \alpha \]
9
+
10
+ *** Output of inspect ***
11
+ md_el(:document,[md_par(["This is not $math$."]), md_par(["[ \\alpha ]"])],{},[])
12
+ *** Output of to_html ***
13
+ <p>This is not $math$.</p>
14
+
15
+ <p>[ \alpha ]</p>
16
+ *** Output of to_latex ***
17
+ This is not \$math\$.
18
+
19
+ [ $\backslash$alpha ]
20
+ *** Output of to_md ***
21
+ This is not $math$.
22
+
23
+ [ \alpha ]
24
+ *** Output of to_s ***
25
+ This is not $math$.[ \alpha ]
26
+ *** EOF ***
27
+
28
+
29
+
30
+ OK!
31
+
32
+
33
+
34
+ *** Output of Markdown.pl ***
35
+ <p>This is not $math$.</p>
36
+
37
+ <p>[ \alpha ]</p>
38
+
39
+ *** Output of Markdown.pl (parsed) ***
40
+ Error: #<NoMethodError: undefined method `write_children' for <div> ... </>:REXML::Element>
@@ -0,0 +1,43 @@
1
+ Write a comment here
2
+ *** Parameters: ***
3
+ {}
4
+ *** Markdown input: ***
5
+ <table markdown='1'>
6
+ $\alpha$
7
+ <thead>
8
+ <td>$\beta$</td>
9
+ </thead>
10
+ </table>
11
+ *** Output of inspect ***
12
+ md_el(:document,[
13
+ md_html("<table markdown='1'>\n\t$\\alpha$\n\t<thead>\n\t\t<td>$\\beta$</td>\n\t</thead>\n</table>")
14
+ ],{},[])
15
+ *** Output of to_html ***
16
+ <table><span class='maruku-inline'><code class='maruku-mathml'>\alpha</code></span><thead>
17
+ <td><span class='maruku-inline'><code class='maruku-mathml'>\beta</code></span></td>
18
+ </thead>
19
+ </table>
20
+ *** Output of to_latex ***
21
+
22
+ *** Output of to_md ***
23
+
24
+ *** Output of to_s ***
25
+
26
+ *** EOF ***
27
+
28
+
29
+
30
+ OK!
31
+
32
+
33
+
34
+ *** Output of Markdown.pl ***
35
+ <table markdown='1'>
36
+ $\alpha$
37
+ <thead>
38
+ <td>$\beta$</td>
39
+ </thead>
40
+ </table>
41
+
42
+ *** Output of Markdown.pl (parsed) ***
43
+ Error: #<NoMethodError: undefined method `write_children' for <div> ... </>:REXML::Element>
@@ -0,0 +1,60 @@
1
+ Write a comment here
2
+ *** Parameters: ***
3
+ {}
4
+ *** Markdown input: ***
5
+
6
+ Symbol | Meaning | comments
7
+ ------------|---------|---------
8
+ {:r} &alpha; | The first | I like it.
9
+ {:r} &aleph; | The first | I like it.
10
+
11
+
12
+ {:r: scope='row'}
13
+ *** Output of inspect ***
14
+ md_el(:document,[
15
+ md_el(:table,[
16
+ md_el(:head_cell,["Symbol"],{},[]),
17
+ md_el(:head_cell,["Meaning"],{},[]),
18
+ md_el(:head_cell,["comments"],{},[]),
19
+ md_el(:cell,[" ", md_entity("alpha")],{},[[:ref, "r"]]),
20
+ md_el(:cell,["The first"],{},[]),
21
+ md_el(:cell,["I like it."],{},[]),
22
+ md_el(:cell,[" ", md_entity("aleph")],{},[[:ref, "r"]]),
23
+ md_el(:cell,["The first"],{},[]),
24
+ md_el(:cell,["I like it."],{},[])
25
+ ],{:align=>[:left, :left, :left]},[]),
26
+ md_el(:ald,[],{:ald=>[["scope", "row"]],:ald_id=>"r"},[])
27
+ ],{},[])
28
+ *** Output of to_html ***
29
+ <table><thead><tr><th>Symbol</th><th>Meaning</th><th>comments</th></tr></thead><tbody><tr><th scope='row' style='text-align: left;'> &#945;</th><td style='text-align: left;'>The first</td><td style='text-align: left;'>I like it.</td>
30
+ </tr><tr><th scope='row' style='text-align: left;'> &aleph;</th><td style='text-align: left;'>The first</td><td style='text-align: left;'>I like it.</td>
31
+ </tr></tbody></table>
32
+ *** Output of to_latex ***
33
+ \begin{tabular}{l|l|l}
34
+ Symbol&Meaning&comments\\
35
+ \hline
36
+ $\alpha${}&The first&I like it.\\
37
+ &The first&I like it.\\
38
+ \end{tabular}
39
+ *** Output of to_md ***
40
+ SymbolMeaningcomments The firstI like it. The firstI like it.
41
+ *** Output of to_s ***
42
+ SymbolMeaningcomments The firstI like it. The firstI like it.
43
+ *** EOF ***
44
+
45
+
46
+
47
+ OK!
48
+
49
+
50
+
51
+ *** Output of Markdown.pl ***
52
+ <p>Symbol | Meaning | comments
53
+ ------------|---------|---------
54
+ {:r} &alpha; | The first | I like it.
55
+ {:r} &aleph; | The first | I like it.</p>
56
+
57
+ <p>{:r: scope='row'}</p>
58
+
59
+ *** Output of Markdown.pl (parsed) ***
60
+ Error: #<NoMethodError: undefined method `write_children' for <div> ... </>:REXML::Element>
@@ -0,0 +1,615 @@
1
+ Write a comment abouth the test here.
2
+ *** Parameters: ***
3
+ {:archive=>false, :date=>"Nov 20 2006", :inmenu=>true, :subject_short=>"painless software", :subject=>"Software not painful to use", :topic=>"/misc/coolsw", :order=>"-9.5"}
4
+ *** Markdown input: ***
5
+ Subject: Software not painful to use
6
+ Subject_short: painless software
7
+ Topic: /misc/coolsw
8
+ Archive: no
9
+ Date: Nov 20 2006
10
+ Order: -9.5
11
+ inMenu: true
12
+
13
+
14
+ ### General ###
15
+
16
+ * *Operating System* : [Mac OS X][switch]: heaven, after the purgatory of Linux
17
+ and the hell of Windows.
18
+ * *Browser*: [Firefox][firefox]. On a Mac, [Camino][camino].
19
+ * *Email*: [GMail][gmail], "search, don't sort" really works.
20
+ * *Text Editor*: [TextMate][textmate], you have to buy it, but it's worth every
21
+ penny. There are rumours that it's been converting (recovering) Emacs
22
+ users (addicts). Unfortunately, it's Mac only. An alternative is
23
+ [jedit][jedit] (GPL, Java).
24
+
25
+ ### Development ###
26
+
27
+ * *Build system*: [cmake][cmake], throw the [autotools][autotools] away.
28
+ * *Source code control system*: ditch CVS for [subversion][subversion].
29
+ * *Project management*: [Trac][trac] tracks everything.
30
+ * *Scripting language*: [Ruby][ruby] is Japanese pragmatism (and has a [poignant][poignant] guide).
31
+ Python, you say? Python is too academic and snob:
32
+
33
+ $ python
34
+ Python 2.4.1 (\#1, Jun 4 2005, 00:54:33)
35
+ Type "help", "copyright", "credits" or "license" for more information.
36
+ >>> exit
37
+ 'Use Ctrl-D (i.e. EOF) to exit.'
38
+ >>> quit
39
+ 'Use Ctrl-D (i.e. EOF) to exit.'
40
+
41
+ * *Java IDE*: [JBuilder][jbuilder] is great software and has a free version (IMHO better than Eclipse). Java
42
+ is not a pain anymore since it gained [generics][java-generics] and got opensourced.
43
+ * *Mark-up language*: HTML is so 2001, why don't you take at look at [Markdown][markdown]? [Look at the source of this page](data/misc_markdown.png).
44
+ * *C++ libraries*:
45
+ * [QT][qt] for GUIs.
46
+ * [GSL][gsl] for math.
47
+ * [Magick++][magick] for manipulating images.
48
+ * [Cairo][cairo] for creating PDFs.
49
+ * [Boost][boost] for just about everything else.
50
+
51
+
52
+ ### Research ###
53
+
54
+ * *Writing papers*: [LaTeX][latex]
55
+ * *Writing papers & enjoying the process*: [LyX][lyx]
56
+ * *Handsome figures in your papers*: [xfig][xfig] or, better, [jfig][jfig].
57
+ * *The occasional presentation with many graphical content*:
58
+ [OpenOffice Impress][impress] (using the [OOOlatex plugin][ooolatex]);
59
+ the alternative is PowerPoint with the [TexPoint][texpoint] plugin.
60
+ * *Managing BibTeX*: [jabref][jabref]: multi-platform, for all your bibtex needs.
61
+ * *IEEExplore and BibTeX*: convert citations using [BibConverter][bibconverter].
62
+
63
+ ### Cool websites ###
64
+
65
+ * *Best site in the wwworld*: [Wikipedia][wikipedia]
66
+ * [Mutopia][mutopia] for sheet music; [the Gutenberg Project][gutenberg] for books; [LiberLiber][liberliber] for books in italian.
67
+ * *Blogs*: [Bloglines][bloglines]
68
+ * *Sharing photos*: [flickr][flickr] exposes an API you can use.
69
+
70
+
71
+ [firefox]: http://getfirefox.com/
72
+ [gmail]: http://gmail.com/
73
+ [bloglines]: http://bloglines.com/
74
+ [wikipedia]: http://en.wikipedia.org/
75
+ [ruby]: http://www.ruby-lang.org/
76
+ [poignant]: http://poignantguide.net/ruby/
77
+ [webgen]: http://webgen.rubyforge.org/
78
+ [markdown]: http://daringfireball.net/projects/markdown/
79
+ [latex]: http://en.wikipedia.org/wiki/LaTeX
80
+ [lyx]: http://www.lyx.org
81
+ [impress]: http://www.openoffice.org/product/impress.html
82
+ [ooolatex]: http://ooolatex.sourceforge.net/
83
+ [texpoint]: http://texpoint.necula.org/
84
+ [jabref]: http://jabref.sourceforge.net/
85
+ [camino]: http://www.caminobrowser.org/
86
+ [switch]: http://www.apple.com/getamac/
87
+ [textmate]: http://www.apple.com/getamac/
88
+ [cmake]: http://www.cmake.org/
89
+ [xfig]: http://www.xfig.org/
90
+ [jfig]: http://tams-www.informatik.uni-hamburg.de/applets/jfig/
91
+ [subversion]: http://subversion.tigris.org
92
+ [jbuilder]: http://www.borland.com/us/products/jbuilder/index.html
93
+ [flickr]: http://www.flickr.com/
94
+ [myflickr]: http://www.flickr.com/photos/censi
95
+ [bibconverter]: http://www.bibconverter.net/ieeexplore/
96
+ [autotools]: http://sources.redhat.com/autobook/
97
+ [jedit]: http://www.jedit.org/
98
+ [qt]: http://www.trolltech.no/
99
+ [gsl]: http://www.gnu.org/software/gsl/
100
+ [magick]: http://www.imagemagick.org/Magick++/
101
+ [cairo]: http://cairographics.org/
102
+ [boost]: http://www.boost.org/
103
+ [markdown]: http://en.wikipedia.org/wiki/Markdown
104
+ [trac]: http://trac.edgewall.org/
105
+ [mutopia]: http://www.mutopiaproject.org/
106
+ [liberliber]: http://www.liberliber.it/
107
+ [gutenberg]: http://www.gutenberg.org/
108
+ [java-generics]: http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html
109
+
110
+
111
+ *** Output of inspect ***
112
+ md_el(:document,[
113
+ md_el(:header,["General"],{:level=>3},[]),
114
+ md_el(:ul,[
115
+ md_el(:li_span,[
116
+ md_em(["Operating System"]),
117
+ " : ",
118
+ md_link(["Mac OS X"],"switch"),
119
+ ": heaven, after the purgatory of Linux and the hell of Windows."
120
+ ],{:want_my_paragraph=>false},[]),
121
+ md_el(:li_span,[
122
+ md_em(["Browser"]),
123
+ ": ",
124
+ md_link(["Firefox"],"firefox"),
125
+ ". On a Mac, ",
126
+ md_link(["Camino"],"camino"),
127
+ "."
128
+ ],{:want_my_paragraph=>false},[]),
129
+ md_el(:li_span,[
130
+ md_em(["Email"]),
131
+ ": ",
132
+ md_link(["GMail"],"gmail"),
133
+ ", ",
134
+ md_entity("ldquo"),
135
+ "search, don",
136
+ md_entity("rsquo"),
137
+ "t sort",
138
+ md_entity("rdquo"),
139
+ " really works."
140
+ ],{:want_my_paragraph=>false},[]),
141
+ md_el(:li_span,[
142
+ md_em(["Text Editor"]),
143
+ ": ",
144
+ md_link(["TextMate"],"textmate"),
145
+ ", you have to buy it, but it",
146
+ md_entity("rsquo"),
147
+ "s worth every penny. There are rumours that it",
148
+ md_entity("rsquo"),
149
+ "s been converting (recovering) Emacs users (addicts). Unfortunately, it",
150
+ md_entity("rsquo"),
151
+ "s Mac only. An alternative is ",
152
+ md_link(["jedit"],"jedit"),
153
+ " (GPL, Java)."
154
+ ],{:want_my_paragraph=>false},[])
155
+ ],{},[]),
156
+ md_el(:header,["Development"],{:level=>3},[]),
157
+ md_el(:ul,[
158
+ md_el(:li,[
159
+ md_par([
160
+ md_em(["Build system"]),
161
+ ": ",
162
+ md_link(["cmake"],"cmake"),
163
+ ", throw the ",
164
+ md_link(["autotools"],"autotools"),
165
+ " away."
166
+ ])
167
+ ],{:want_my_paragraph=>false},[]),
168
+ md_el(:li,[
169
+ md_par([
170
+ md_em(["Source code control system"]),
171
+ ": ditch CVS for ",
172
+ md_link(["subversion"],"subversion"),
173
+ "."
174
+ ])
175
+ ],{:want_my_paragraph=>false},[]),
176
+ md_el(:li,[
177
+ md_par([
178
+ md_em(["Project management"]),
179
+ ": ",
180
+ md_link(["Trac"],"trac"),
181
+ " tracks everything."
182
+ ])
183
+ ],{:want_my_paragraph=>false},[]),
184
+ md_el(:li,[
185
+ md_par([
186
+ md_em(["Scripting language"]),
187
+ ": ",
188
+ md_link(["Ruby"],"ruby"),
189
+ " is Japanese pragmatism (and has a ",
190
+ md_link(["poignant"],"poignant"),
191
+ " guide). Python, you say? Python is too academic and snob:"
192
+ ]),
193
+ md_el(:code,[],{:raw_code=>"$ python \nPython 2.4.1 (\\#1, Jun 4 2005, 00:54:33) \nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n>>> exit\n'Use Ctrl-D (i.e. EOF) to exit.'\n>>> quit\n'Use Ctrl-D (i.e. EOF) to exit.'"},[])
194
+ ],{:want_my_paragraph=>true},[]),
195
+ md_el(:li,[
196
+ md_par([
197
+ md_em(["Java IDE"]),
198
+ ": ",
199
+ md_link(["JBuilder"],"jbuilder"),
200
+ " is great software and has a free version (IMHO better than Eclipse). Java is not a pain anymore since it gained ",
201
+ md_link(["generics"],"javagenerics"),
202
+ " and got opensourced."
203
+ ])
204
+ ],{:want_my_paragraph=>false},[]),
205
+ md_el(:li,[
206
+ md_par([
207
+ md_em(["Mark-up language"]),
208
+ ": HTML is so 2001, why don",
209
+ md_entity("rsquo"),
210
+ "t you take at look at ",
211
+ md_link(["Markdown"],"markdown"),
212
+ "? ",
213
+ md_im_link(["Look at the source of this page"], "data/misc_markdown.png", nil),
214
+ "."
215
+ ])
216
+ ],{:want_my_paragraph=>false},[]),
217
+ md_el(:li,[
218
+ md_par([
219
+ md_em(["C++ libraries"]),
220
+ ": * ",
221
+ md_link(["QT"],"qt"),
222
+ " for GUIs. * ",
223
+ md_link(["GSL"],"gsl"),
224
+ " for math. * ",
225
+ md_link(["Magick++"],"magick"),
226
+ " for manipulating images. * ",
227
+ md_link(["Cairo"],"cairo"),
228
+ " for creating PDFs. * ",
229
+ md_link(["Boost"],"boost"),
230
+ " for just about everything else."
231
+ ])
232
+ ],{:want_my_paragraph=>false},[])
233
+ ],{},[]),
234
+ md_el(:header,["Research"],{:level=>3},[]),
235
+ md_el(:ul,[
236
+ md_el(:li_span,[md_em(["Writing papers"]), ": ", md_link(["LaTeX"],"latex")],{:want_my_paragraph=>false},[]),
237
+ md_el(:li_span,[
238
+ md_em(["Writing papers & enjoying the process"]),
239
+ ": ",
240
+ md_link(["LyX"],"lyx")
241
+ ],{:want_my_paragraph=>false},[]),
242
+ md_el(:li_span,[
243
+ md_em(["Handsome figures in your papers"]),
244
+ ": ",
245
+ md_link(["xfig"],"xfig"),
246
+ " or, better, ",
247
+ md_link(["jfig"],"jfig"),
248
+ "."
249
+ ],{:want_my_paragraph=>false},[]),
250
+ md_el(:li_span,[
251
+ md_em(["The occasional presentation with many graphical content"]),
252
+ ": ",
253
+ md_link(["OpenOffice Impress"],"impress"),
254
+ " (using the ",
255
+ md_link(["OOOlatex plugin"],"ooolatex"),
256
+ "); the alternative is PowerPoint with the ",
257
+ md_link(["TexPoint"],"texpoint"),
258
+ " plugin."
259
+ ],{:want_my_paragraph=>false},[]),
260
+ md_el(:li_span,[
261
+ md_em(["Managing BibTeX"]),
262
+ ": ",
263
+ md_link(["jabref"],"jabref"),
264
+ ": multi-platform, for all your bibtex needs."
265
+ ],{:want_my_paragraph=>false},[]),
266
+ md_el(:li_span,[
267
+ md_em(["IEEExplore and BibTeX"]),
268
+ ": convert citations using ",
269
+ md_link(["BibConverter"],"bibconverter"),
270
+ "."
271
+ ],{:want_my_paragraph=>false},[])
272
+ ],{},[]),
273
+ md_el(:header,["Cool websites"],{:level=>3},[]),
274
+ md_el(:ul,[
275
+ md_el(:li_span,[
276
+ md_em(["Best site in the wwworld"]),
277
+ ": ",
278
+ md_link(["Wikipedia"],"wikipedia")
279
+ ],{:want_my_paragraph=>false},[]),
280
+ md_el(:li_span,[
281
+ md_link(["Mutopia"],"mutopia"),
282
+ " for sheet music; ",
283
+ md_link(["the Gutenberg Project"],"gutenberg"),
284
+ " for books; ",
285
+ md_link(["LiberLiber"],"liberliber"),
286
+ " for books in italian."
287
+ ],{:want_my_paragraph=>false},[]),
288
+ md_el(:li_span,[md_em(["Blogs"]), ": ", md_link(["Bloglines"],"bloglines")],{:want_my_paragraph=>false},[]),
289
+ md_el(:li_span,[
290
+ md_em(["Sharing photos"]),
291
+ ": ",
292
+ md_link(["flickr"],"flickr"),
293
+ " exposes an API you can use."
294
+ ],{:want_my_paragraph=>false},[])
295
+ ],{},[]),
296
+ md_ref_def("firefox", "http://getfirefox.com/", {:title=>nil}),
297
+ md_ref_def("gmail", "http://gmail.com/", {:title=>nil}),
298
+ md_ref_def("bloglines", "http://bloglines.com/", {:title=>nil}),
299
+ md_ref_def("wikipedia", "http://en.wikipedia.org/", {:title=>nil}),
300
+ md_ref_def("ruby", "http://www.ruby-lang.org/", {:title=>nil}),
301
+ md_ref_def("poignant", "http://poignantguide.net/ruby/", {:title=>nil}),
302
+ md_ref_def("webgen", "http://webgen.rubyforge.org/", {:title=>nil}),
303
+ md_ref_def("markdown", "http://daringfireball.net/projects/markdown/", {:title=>nil}),
304
+ md_ref_def("latex", "http://en.wikipedia.org/wiki/LaTeX", {:title=>nil}),
305
+ md_ref_def("lyx", "http://www.lyx.org", {:title=>nil}),
306
+ md_ref_def("impress", "http://www.openoffice.org/product/impress.html", {:title=>nil}),
307
+ md_ref_def("ooolatex", "http://ooolatex.sourceforge.net/", {:title=>nil}),
308
+ md_ref_def("texpoint", "http://texpoint.necula.org/", {:title=>nil}),
309
+ md_ref_def("jabref", "http://jabref.sourceforge.net/", {:title=>nil}),
310
+ md_ref_def("camino", "http://www.caminobrowser.org/", {:title=>nil}),
311
+ md_ref_def("switch", "http://www.apple.com/getamac/", {:title=>nil}),
312
+ md_ref_def("textmate", "http://www.apple.com/getamac/", {:title=>nil}),
313
+ md_ref_def("cmake", "http://www.cmake.org/", {:title=>nil}),
314
+ md_ref_def("xfig", "http://www.xfig.org/", {:title=>nil}),
315
+ md_ref_def("jfig", "http://tams-www.informatik.uni-hamburg.de/applets/jfig/", {:title=>nil}),
316
+ md_ref_def("subversion", "http://subversion.tigris.org", {:title=>nil}),
317
+ md_ref_def("jbuilder", "http://www.borland.com/us/products/jbuilder/index.html", {:title=>nil}),
318
+ md_ref_def("flickr", "http://www.flickr.com/", {:title=>nil}),
319
+ md_ref_def("myflickr", "http://www.flickr.com/photos/censi", {:title=>nil}),
320
+ md_ref_def("bibconverter", "http://www.bibconverter.net/ieeexplore/", {:title=>nil}),
321
+ md_ref_def("autotools", "http://sources.redhat.com/autobook/", {:title=>nil}),
322
+ md_ref_def("jedit", "http://www.jedit.org/", {:title=>nil}),
323
+ md_ref_def("qt", "http://www.trolltech.no/", {:title=>nil}),
324
+ md_ref_def("gsl", "http://www.gnu.org/software/gsl/", {:title=>nil}),
325
+ md_ref_def("magick", "http://www.imagemagick.org/Magick++/", {:title=>nil}),
326
+ md_ref_def("cairo", "http://cairographics.org/", {:title=>nil}),
327
+ md_ref_def("boost", "http://www.boost.org/", {:title=>nil}),
328
+ md_ref_def("markdown", "http://en.wikipedia.org/wiki/Markdown", {:title=>nil}),
329
+ md_ref_def("trac", "http://trac.edgewall.org/", {:title=>nil}),
330
+ md_ref_def("mutopia", "http://www.mutopiaproject.org/", {:title=>nil}),
331
+ md_ref_def("liberliber", "http://www.liberliber.it/", {:title=>nil}),
332
+ md_ref_def("gutenberg", "http://www.gutenberg.org/", {:title=>nil}),
333
+ md_ref_def("javagenerics", "http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html", {:title=>nil})
334
+ ],{},[])
335
+ *** Output of to_html ***
336
+ <h3 id='general'>General</h3>
337
+
338
+ <ul>
339
+ <li><em>Operating System</em> : <a href='http://www.apple.com/getamac/'>Mac OS X</a>: heaven, after the purgatory of Linux and the hell of Windows.</li>
340
+
341
+ <li><em>Browser</em>: <a href='http://getfirefox.com/'>Firefox</a>. On a Mac, <a href='http://www.caminobrowser.org/'>Camino</a>.</li>
342
+
343
+ <li><em>Email</em>: <a href='http://gmail.com/'>GMail</a>, &#8220;search, don&#8217;t sort&#8221; really works.</li>
344
+
345
+ <li><em>Text Editor</em>: <a href='http://www.apple.com/getamac/'>TextMate</a>, you have to buy it, but it&#8217;s worth every penny. There are rumours that it&#8217;s been converting (recovering) Emacs users (addicts). Unfortunately, it&#8217;s Mac only. An alternative is <a href='http://www.jedit.org/'>jedit</a> (GPL, Java).</li>
346
+ </ul>
347
+
348
+ <h3 id='development'>Development</h3>
349
+
350
+ <ul>
351
+ <li>
352
+ <p><em>Build system</em>: <a href='http://www.cmake.org/'>cmake</a>, throw the <a href='http://sources.redhat.com/autobook/'>autotools</a> away.</p>
353
+ </li>
354
+
355
+ <li>
356
+ <p><em>Source code control system</em>: ditch CVS for <a href='http://subversion.tigris.org'>subversion</a>.</p>
357
+ </li>
358
+
359
+ <li>
360
+ <p><em>Project management</em>: <a href='http://trac.edgewall.org/'>Trac</a> tracks everything.</p>
361
+ </li>
362
+
363
+ <li>
364
+ <p><em>Scripting language</em>: <a href='http://www.ruby-lang.org/'>Ruby</a> is Japanese pragmatism (and has a <a href='http://poignantguide.net/ruby/'>poignant</a> guide). Python, you say? Python is too academic and snob:</p>
365
+
366
+ <pre><code>$ python
367
+ Python 2.4.1 (\#1, Jun 4 2005, 00:54:33)
368
+ Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
369
+ &gt;&gt;&gt; exit
370
+ &#39;Use Ctrl-D (i.e. EOF) to exit.&#39;
371
+ &gt;&gt;&gt; quit
372
+ &#39;Use Ctrl-D (i.e. EOF) to exit.&#39;</code></pre>
373
+ </li>
374
+
375
+ <li>
376
+ <p><em>Java IDE</em>: <a href='http://www.borland.com/us/products/jbuilder/index.html'>JBuilder</a> is great software and has a free version (IMHO better than Eclipse). Java is not a pain anymore since it gained <a href='http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html'>generics</a> and got opensourced.</p>
377
+ </li>
378
+
379
+ <li>
380
+ <p><em>Mark-up language</em>: HTML is so 2001, why don&#8217;t you take at look at <a href='http://en.wikipedia.org/wiki/Markdown'>Markdown</a>? <a href='data/misc_markdown.png'>Look at the source of this page</a>.</p>
381
+ </li>
382
+
383
+ <li>
384
+ <p><em>C++ libraries</em>: * <a href='http://www.trolltech.no/'>QT</a> for GUIs. * <a href='http://www.gnu.org/software/gsl/'>GSL</a> for math. * <a href='http://www.imagemagick.org/Magick++/'>Magick++</a> for manipulating images. * <a href='http://cairographics.org/'>Cairo</a> for creating PDFs. * <a href='http://www.boost.org/'>Boost</a> for just about everything else.</p>
385
+ </li>
386
+ </ul>
387
+
388
+ <h3 id='research'>Research</h3>
389
+
390
+ <ul>
391
+ <li><em>Writing papers</em>: <a href='http://en.wikipedia.org/wiki/LaTeX'>LaTeX</a></li>
392
+
393
+ <li><em>Writing papers &amp; enjoying the process</em>: <a href='http://www.lyx.org'>LyX</a></li>
394
+
395
+ <li><em>Handsome figures in your papers</em>: <a href='http://www.xfig.org/'>xfig</a> or, better, <a href='http://tams-www.informatik.uni-hamburg.de/applets/jfig/'>jfig</a>.</li>
396
+
397
+ <li><em>The occasional presentation with many graphical content</em>: <a href='http://www.openoffice.org/product/impress.html'>OpenOffice Impress</a> (using the <a href='http://ooolatex.sourceforge.net/'>OOOlatex plugin</a>); the alternative is PowerPoint with the <a href='http://texpoint.necula.org/'>TexPoint</a> plugin.</li>
398
+
399
+ <li><em>Managing BibTeX</em>: <a href='http://jabref.sourceforge.net/'>jabref</a>: multi-platform, for all your bibtex needs.</li>
400
+
401
+ <li><em>IEEExplore and BibTeX</em>: convert citations using <a href='http://www.bibconverter.net/ieeexplore/'>BibConverter</a>.</li>
402
+ </ul>
403
+
404
+ <h3 id='cool_websites'>Cool websites</h3>
405
+
406
+ <ul>
407
+ <li><em>Best site in the wwworld</em>: <a href='http://en.wikipedia.org/'>Wikipedia</a></li>
408
+
409
+ <li><a href='http://www.mutopiaproject.org/'>Mutopia</a> for sheet music; <a href='http://www.gutenberg.org/'>the Gutenberg Project</a> for books; <a href='http://www.liberliber.it/'>LiberLiber</a> for books in italian.</li>
410
+
411
+ <li><em>Blogs</em>: <a href='http://bloglines.com/'>Bloglines</a></li>
412
+
413
+ <li><em>Sharing photos</em>: <a href='http://www.flickr.com/'>flickr</a> exposes an API you can use.</li>
414
+ </ul>
415
+ *** Output of to_latex ***
416
+ \hypertarget{general}{}\subsubsection*{{General}}\label{general}
417
+
418
+ \begin{itemize}%
419
+ \item \emph{Operating System} : \href{http://www.apple.com/getamac/}{Mac OS X}: heaven, after the purgatory of Linux and the hell of Windows.
420
+ \item \emph{Browser}: \href{http://getfirefox.com/}{Firefox}. On a Mac, \href{http://www.caminobrowser.org/}{Camino}.
421
+ \item \emph{Email}: \href{http://gmail.com/}{GMail}, ``{}search, don'{}t sort''{} really works.
422
+ \item \emph{Text Editor}: \href{http://www.apple.com/getamac/}{TextMate}, you have to buy it, but it'{}s worth every penny. There are rumours that it'{}s been converting (recovering) Emacs users (addicts). Unfortunately, it'{}s Mac only. An alternative is \href{http://www.jedit.org/}{jedit} (GPL, Java).
423
+
424
+ \end{itemize}
425
+ \hypertarget{development}{}\subsubsection*{{Development}}\label{development}
426
+
427
+ \begin{itemize}%
428
+ \item \emph{Build system}: \href{http://www.cmake.org/}{cmake}, throw the \href{http://sources.redhat.com/autobook/}{autotools} away.
429
+
430
+
431
+ \item \emph{Source code control system}: ditch CVS for \href{http://subversion.tigris.org}{subversion}.
432
+
433
+
434
+ \item \emph{Project management}: \href{http://trac.edgewall.org/}{Trac} tracks everything.
435
+
436
+
437
+ \item \emph{Scripting language}: \href{http://www.ruby-lang.org/}{Ruby} is Japanese pragmatism (and has a \href{http://poignantguide.net/ruby/}{poignant} guide). Python, you say? Python is too academic and snob:
438
+
439
+ \begin{verbatim}$ python
440
+ Python 2.4.1 (\#1, Jun 4 2005, 00:54:33)
441
+ Type "help", "copyright", "credits" or "license" for more information.
442
+ >>> exit
443
+ 'Use Ctrl-D (i.e. EOF) to exit.'
444
+ >>> quit
445
+ 'Use Ctrl-D (i.e. EOF) to exit.'\end{verbatim}
446
+
447
+ \item \emph{Java IDE}: \href{http://www.borland.com/us/products/jbuilder/index.html}{JBuilder} is great software and has a free version (IMHO better than Eclipse). Java is not a pain anymore since it gained \href{http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html}{generics} and got opensourced.
448
+
449
+
450
+ \item \emph{Mark-up language}: HTML is so 2001, why don'{}t you take at look at \href{http://en.wikipedia.org/wiki/Markdown}{Markdown}? \href{data/misc_markdown.png}{Look at the source of this page}.
451
+
452
+
453
+ \item \emph{C++ libraries}: * \href{http://www.trolltech.no/}{QT} for GUIs. * \href{http://www.gnu.org/software/gsl/}{GSL} for math. * \href{http://www.imagemagick.org/Magick++/}{Magick++} for manipulating images. * \href{http://cairographics.org/}{Cairo} for creating PDFs. * \href{http://www.boost.org/}{Boost} for just about everything else.
454
+
455
+
456
+
457
+ \end{itemize}
458
+ \hypertarget{research}{}\subsubsection*{{Research}}\label{research}
459
+
460
+ \begin{itemize}%
461
+ \item \emph{Writing papers}: \href{http://en.wikipedia.org/wiki/LaTeX}{LaTeX}
462
+ \item \emph{Writing papers \& enjoying the process}: \href{http://www.lyx.org}{LyX}
463
+ \item \emph{Handsome figures in your papers}: \href{http://www.xfig.org/}{xfig} or, better, \href{http://tams-www.informatik.uni-hamburg.de/applets/jfig/}{jfig}.
464
+ \item \emph{The occasional presentation with many graphical content}: \href{http://www.openoffice.org/product/impress.html}{OpenOffice Impress} (using the \href{http://ooolatex.sourceforge.net/}{OOOlatex plugin}); the alternative is PowerPoint with the \href{http://texpoint.necula.org/}{TexPoint} plugin.
465
+ \item \emph{Managing BibTeX}: \href{http://jabref.sourceforge.net/}{jabref}: multi-platform, for all your bibtex needs.
466
+ \item \emph{IEEExplore and BibTeX}: convert citations using \href{http://www.bibconverter.net/ieeexplore/}{BibConverter}.
467
+
468
+ \end{itemize}
469
+ \hypertarget{cool_websites}{}\subsubsection*{{Cool websites}}\label{cool_websites}
470
+
471
+ \begin{itemize}%
472
+ \item \emph{Best site in the wwworld}: \href{http://en.wikipedia.org/}{Wikipedia}
473
+ \item \href{http://www.mutopiaproject.org/}{Mutopia} for sheet music; \href{http://www.gutenberg.org/}{the Gutenberg Project} for books; \href{http://www.liberliber.it/}{LiberLiber} for books in italian.
474
+ \item \emph{Blogs}: \href{http://bloglines.com/}{Bloglines}
475
+ \item \emph{Sharing photos}: \href{http://www.flickr.com/}{flickr} exposes an API you can use.
476
+
477
+ \end{itemize}
478
+ *** Output of to_md ***
479
+ General-perating System: Mac OS X: heaven,
480
+ after the purgatory of Linux and
481
+ the hell of Windows.
482
+ -rowser: Firefox. On a Mac, Camino.
483
+ -mail: GMail, search, don t sort
484
+ really works.
485
+ -ext Editor: TextMate, you have to
486
+ buy it, but it s worth every penny.
487
+ There are rumours that it s been
488
+ converting (recovering) Emacs users
489
+ (addicts). Unfortunately, it s Mac
490
+ only. An alternative is jedit(GPL,
491
+ Java).
492
+
493
+ Development-Build system: cmake, throw the autotools away.
494
+ -Source code control system: ditch CVS for subversion.
495
+ -Project management: Trac tracks everything.
496
+ -Scripting language: Ruby is Japanese pragmatism (and has a poignant guide). Python, you say? Python is too academic and snob:
497
+ -Java IDE: JBuilder is great software and has a free version (IMHO better than Eclipse). Java is not a pain anymore since it gained generics and got opensourced.
498
+ -Mark-up language: HTML is so 2001, why dont you take at look at Markdown? Look at the source of this page.
499
+ -C++ libraries: * QT for GUIs. * GSL for math. * Magick++ for manipulating images. * Cairo for creating PDFs. * Boost for just about everything else.
500
+
501
+ Research-riting papers: LaTeX
502
+ -Writing papers & enjoying the process
503
+ : LyX
504
+ -andsome figures in your papers:
505
+ xfigor, better, jfig.
506
+ -The occasional presentation with many graphical content
507
+ : OpenOffice Impress(using the
508
+ OOOlatex plugin); the alternative
509
+ is PowerPoint with the TexPoint
510
+ plugin.
511
+ -anaging BibTeX: jabref:
512
+ multi-platform, for all your bibtex
513
+ needs.
514
+ -EEExplore and BibTeX: convert
515
+ citations using BibConverter.
516
+
517
+ Cool websites-est site in the wwworld: Wikipedia
518
+ -utopiafor sheet music;
519
+ the Gutenberg Projectfor books;
520
+ LiberLiberfor books in italian.
521
+ -logs: Bloglines
522
+ -haring photos: flickrexposes an
523
+ API you can use.
524
+ *** Output of to_s ***
525
+ GeneralOperating System : Mac OS X: heaven, after the purgatory of Linux and the hell of Windows.Browser: Firefox. On a Mac, Camino.Email: GMail, search, dont sort really works.Text Editor: TextMate, you have to buy it, but its worth every penny. There are rumours that its been converting (recovering) Emacs users (addicts). Unfortunately, its Mac only. An alternative is jedit (GPL, Java).DevelopmentBuild system: cmake, throw the autotools away.Source code control system: ditch CVS for subversion.Project management: Trac tracks everything.Scripting language: Ruby is Japanese pragmatism (and has a poignant guide). Python, you say? Python is too academic and snob:Java IDE: JBuilder is great software and has a free version (IMHO better than Eclipse). Java is not a pain anymore since it gained generics and got opensourced.Mark-up language: HTML is so 2001, why dont you take at look at Markdown? Look at the source of this page.C++ libraries: * QT for GUIs. * GSL for math. * Magick++ for manipulating images. * Cairo for creating PDFs. * Boost for just about everything else.ResearchWriting papers: LaTeXWriting papers & enjoying the process: LyXHandsome figures in your papers: xfig or, better, jfig.The occasional presentation with many graphical content: OpenOffice Impress (using the OOOlatex plugin); the alternative is PowerPoint with the TexPoint plugin.Managing BibTeX: jabref: multi-platform, for all your bibtex needs.IEEExplore and BibTeX: convert citations using BibConverter.Cool websitesBest site in the wwworld: WikipediaMutopia for sheet music; the Gutenberg Project for books; LiberLiber for books in italian.Blogs: BloglinesSharing photos: flickr exposes an API you can use.
526
+ *** EOF ***
527
+
528
+
529
+
530
+ OK!
531
+
532
+
533
+
534
+ *** Output of Markdown.pl ***
535
+ <p>Subject: Software not painful to use
536
+ Subject_short: painless software
537
+ Topic: /misc/coolsw
538
+ Archive: no
539
+ Date: Nov 20 2006
540
+ Order: -9.5
541
+ inMenu: true</p>
542
+
543
+ <h3>General</h3>
544
+
545
+ <ul>
546
+ <li><em>Operating System</em> : <a href="http://www.apple.com/getamac/">Mac OS X</a>: heaven, after the purgatory of Linux
547
+ and the hell of Windows.</li>
548
+ <li><em>Browser</em>: <a href="http://getfirefox.com/">Firefox</a>. On a Mac, <a href="http://www.caminobrowser.org/">Camino</a>.</li>
549
+ <li><em>Email</em>: <a href="http://gmail.com/">GMail</a>, "search, don't sort" really works.</li>
550
+ <li><em>Text Editor</em>: <a href="http://www.apple.com/getamac/">TextMate</a>, you have to buy it, but it's worth every
551
+ penny. There are rumours that it's been converting (recovering) Emacs
552
+ users (addicts). Unfortunately, it's Mac only. An alternative is
553
+ <a href="http://www.jedit.org/">jedit</a> (GPL, Java).</li>
554
+ </ul>
555
+
556
+ <h3>Development</h3>
557
+
558
+ <ul>
559
+ <li><em>Build system</em>: <a href="http://www.cmake.org/">cmake</a>, throw the <a href="http://sources.redhat.com/autobook/">autotools</a> away.</li>
560
+ <li><em>Source code control system</em>: ditch CVS for <a href="http://subversion.tigris.org">subversion</a>.</li>
561
+ <li><em>Project management</em>: <a href="http://trac.edgewall.org/">Trac</a> tracks everything.</li>
562
+ <li><p><em>Scripting language</em>: <a href="http://www.ruby-lang.org/">Ruby</a> is Japanese pragmatism (and has a <a href="http://poignantguide.net/ruby/">poignant</a> guide).
563
+ Python, you say? Python is too academic and snob:</p>
564
+
565
+ <p>$ python <br />
566
+ Python 2.4.1 (#1, Jun 4 2005, 00:54:33)
567
+ Type "help", "copyright", "credits" or "license" for more information.</p>
568
+
569
+ <blockquote>
570
+ <blockquote>
571
+ <blockquote>
572
+ <p>exit
573
+ 'Use Ctrl-D (i.e. EOF) to exit.'
574
+ quit
575
+ 'Use Ctrl-D (i.e. EOF) to exit.'</p>
576
+ </blockquote>
577
+ </blockquote>
578
+ </blockquote></li>
579
+ <li><p><em>Java IDE</em>: <a href="http://www.borland.com/us/products/jbuilder/index.html">JBuilder</a> is great software and has a free version (IMHO better than Eclipse). Java
580
+ is not a pain anymore since it gained <a href="http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html">generics</a> and got opensourced.</p></li>
581
+ <li><em>Mark-up language</em>: HTML is so 2001, why don't you take at look at <a href="http://en.wikipedia.org/wiki/Markdown">Markdown</a>? <a href="data/misc_markdown.png">Look at the source of this page</a>.</li>
582
+ <li><em>C++ libraries</em>:
583
+ <ul>
584
+ <li><a href="http://www.trolltech.no/">QT</a> for GUIs.</li>
585
+ <li><a href="http://www.gnu.org/software/gsl/">GSL</a> for math.</li>
586
+ <li><a href="http://www.imagemagick.org/Magick++/">Magick++</a> for manipulating images.</li>
587
+ <li><a href="http://cairographics.org/">Cairo</a> for creating PDFs.</li>
588
+ <li><a href="http://www.boost.org/">Boost</a> for just about everything else.</li>
589
+ </ul></li>
590
+ </ul>
591
+
592
+ <h3>Research</h3>
593
+
594
+ <ul>
595
+ <li><em>Writing papers</em>: <a href="http://en.wikipedia.org/wiki/LaTeX">LaTeX</a></li>
596
+ <li><em>Writing papers &amp; enjoying the process</em>: <a href="http://www.lyx.org">LyX</a></li>
597
+ <li><em>Handsome figures in your papers</em>: <a href="http://www.xfig.org/">xfig</a> or, better, <a href="http://tams-www.informatik.uni-hamburg.de/applets/jfig/">jfig</a>.</li>
598
+ <li><em>The occasional presentation with many graphical content</em>:
599
+ <a href="http://www.openoffice.org/product/impress.html">OpenOffice Impress</a> (using the <a href="http://ooolatex.sourceforge.net/">OOOlatex plugin</a>);
600
+ the alternative is PowerPoint with the <a href="http://texpoint.necula.org/">TexPoint</a> plugin.</li>
601
+ <li><em>Managing BibTeX</em>: <a href="http://jabref.sourceforge.net/">jabref</a>: multi-platform, for all your bibtex needs.</li>
602
+ <li><em>IEEExplore and BibTeX</em>: convert citations using <a href="http://www.bibconverter.net/ieeexplore/">BibConverter</a>.</li>
603
+ </ul>
604
+
605
+ <h3>Cool websites</h3>
606
+
607
+ <ul>
608
+ <li><em>Best site in the wwworld</em>: <a href="http://en.wikipedia.org/">Wikipedia</a></li>
609
+ <li><a href="http://www.mutopiaproject.org/">Mutopia</a> for sheet music; <a href="http://www.gutenberg.org/">the Gutenberg Project</a> for books; <a href="http://www.liberliber.it/">LiberLiber</a> for books in italian.</li>
610
+ <li><em>Blogs</em>: <a href="http://bloglines.com/">Bloglines</a></li>
611
+ <li><em>Sharing photos</em>: <a href="http://www.flickr.com/">flickr</a> exposes an API you can use.</li>
612
+ </ul>
613
+
614
+ *** Output of Markdown.pl (parsed) ***
615
+ Error: #<NoMethodError: undefined method `write_children' for <div> ... </>:REXML::Element>