maruku 0.4.2.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. data/bin/maruku +66 -20
  2. data/bin/marutest +12 -2
  3. data/docs/changelog.html +188 -23
  4. data/docs/changelog.md +128 -5
  5. data/docs/entity_test.html +245 -240
  6. data/docs/entity_test.md +2 -0
  7. data/docs/exd.html +181 -23
  8. data/docs/index.html +130 -349
  9. data/docs/markdown_syntax.html +55 -51
  10. data/docs/maruku.html +130 -349
  11. data/docs/maruku.md +154 -339
  12. data/docs/math.md +143 -0
  13. data/docs/proposal.html +16 -12
  14. data/lib/maruku.rb +6 -3
  15. data/lib/maruku/attributes.rb +7 -2
  16. data/lib/maruku/defaults.rb +27 -27
  17. data/lib/maruku/errors_management.rb +10 -9
  18. data/lib/maruku/ext/diagrams/diagrams.rb +8 -0
  19. data/lib/maruku/ext/diagrams/grid.rb +78 -0
  20. data/lib/maruku/ext/diagrams/inspect.rb +11 -0
  21. data/lib/maruku/ext/diagrams/layout.rb +105 -0
  22. data/lib/maruku/ext/diagrams/parser.rb +219 -0
  23. data/lib/maruku/ext/diagrams/structures.rb +168 -0
  24. data/lib/maruku/ext/diagrams/to_html.rb +37 -0
  25. data/lib/maruku/ext/diagrams/to_latex.rb +308 -0
  26. data/lib/maruku/ext/diagrams/unittest.rb +123 -0
  27. data/lib/maruku/ext/math.rb +11 -0
  28. data/lib/maruku/ext/math/elements.rb +26 -0
  29. data/lib/maruku/ext/math/mathml_engines/blahtex.rb +108 -0
  30. data/lib/maruku/ext/math/mathml_engines/itex2mml.rb +29 -0
  31. data/lib/maruku/ext/math/mathml_engines/none.rb +20 -0
  32. data/lib/maruku/ext/math/mathml_engines/ritex.rb +24 -0
  33. data/lib/maruku/ext/math/parsing.rb +82 -0
  34. data/lib/maruku/ext/math/to_html.rb +178 -0
  35. data/lib/maruku/ext/math/to_latex.rb +21 -0
  36. data/lib/maruku/helpers.rb +11 -0
  37. data/lib/maruku/input/charsource.rb +1 -1
  38. data/lib/maruku/input/extensions.rb +68 -0
  39. data/lib/maruku/input/html_helper.rb +91 -60
  40. data/lib/maruku/input/parse_block.rb +10 -9
  41. data/lib/maruku/input/parse_doc.rb +21 -13
  42. data/lib/maruku/input/parse_span_better.rb +19 -8
  43. data/lib/maruku/input/type_detection.rb +5 -3
  44. data/lib/maruku/output/to_html.rb +236 -67
  45. data/lib/maruku/output/to_latex.rb +69 -26
  46. data/lib/maruku/output/to_latex_entities.rb +14 -2
  47. data/lib/maruku/output/to_s.rb +8 -0
  48. data/lib/maruku/structures.rb +1 -1
  49. data/lib/maruku/tests/benchmark.rb +2 -2
  50. data/lib/maruku/tests/new_parser.rb +13 -5
  51. data/lib/maruku/version.rb +1 -1
  52. data/lib/sort_prof.rb +22 -0
  53. data/tests/diagrams/diagrams.md +54 -0
  54. data/tests/math/syntax.md +46 -0
  55. data/tests/math_usage/document.md +13 -0
  56. data/tests/unittest/attributes/attributes.md +50 -6
  57. data/tests/unittest/easy.md +1 -1
  58. data/tests/unittest/email.md +3 -3
  59. data/tests/unittest/entities.md +12 -7
  60. data/tests/unittest/escaping.md +4 -4
  61. data/tests/unittest/extra_table1.md +3 -1
  62. data/tests/unittest/footnotes.md +5 -5
  63. data/tests/unittest/headers.md +3 -3
  64. data/tests/unittest/images.md +7 -7
  65. data/tests/unittest/inline_html.md +51 -5
  66. data/tests/unittest/links.md +7 -7
  67. data/tests/unittest/list2.md +1 -1
  68. data/tests/unittest/lists.md +1 -1
  69. data/tests/unittest/lists_after_paragraph.md +1 -1
  70. data/tests/unittest/lists_ol.md +1 -1
  71. data/tests/unittest/math/equations.md +82 -0
  72. data/tests/unittest/math/inline.md +80 -0
  73. data/tests/unittest/math/table.md +51 -0
  74. data/tests/unittest/math/table2.md +67 -0
  75. data/tests/unittest/misc_sw.md +24 -24
  76. data/tests/unittest/notyet/ticks.md +1 -1
  77. data/tests/unittest/references/long_example.md +2 -2
  78. data/tests/unittest/smartypants.md +4 -4
  79. data/tests/unittest/xml.md +68 -0
  80. data/tests/unittest/xml2.md +36 -0
  81. data/tests/unittest/xml3.md +52 -0
  82. data/tests/unittest/xml_instruction.md +5 -5
  83. metadata +33 -4
  84. data/docs/a.html +0 -6
  85. data/docs/char.html +0 -1924
@@ -2,16 +2,16 @@ CSS: style.css
2
2
  Use numbered headers: true
3
3
  HTML use syntax: true
4
4
  LaTeX use listings: true
5
- LaTeX CJK: true
5
+ LaTeX CJK: false
6
6
 
7
7
  ![MaRuKu](logo.png){#logo}
8
8
 
9
9
  Mar**u**k**u**: a Markdown-superset interpreter
10
10
  ===============================================
11
11
 
12
- [Maruku][] is a Markdown interpreter written in [Ruby][].
12
+ [Maruku] is a Markdown interpreter written in [Ruby].
13
13
 
14
- > [Last release](#release_notes) is version 0.4.2 -- 2007-01-12.
14
+ > [Last release](#release_notes) is version 0.5.0 -- 2007-01-23.
15
15
  >
16
16
  > Use this command to update:
17
17
  >
@@ -37,16 +37,16 @@ Maruku implements:
37
37
  * the original [Markdown syntax][markdown_html]
38
38
  ([HTML][markdown_html] or [PDF][markdown_pdf]), translated by Maruku).
39
39
 
40
- * all the improvements in [PHP Markdown Extra][].
40
+ * all the improvements in [PHP Markdown Extra].
41
41
 
42
- * a new [meta-data syntax][meta]
42
+ * a new [meta-data syntax][meta_data_proposal]
43
43
 
44
44
 
45
- __Authors__: Maruku has been developed so far by [Andrea Censi][].
45
+ __Authors__: Maruku has been developed so far by [Andrea Censi].
46
46
  Contributors are most welcome!
47
47
 
48
- __The name of the game__: Maruku is the [romaji][] transliteration of
49
- the [katakana][] transliteration
48
+ __The name of the game__: Maruku is the [romaji] transliteration of
49
+ the [katakana] transliteration
50
50
  of "Mark", the first word in Markdown. I chose this name because Ruby
51
51
  is Japanese, and also the sillable "ru" appears in Maruku.
52
52
 
@@ -63,6 +63,25 @@ is Japanese, and also the sillable "ru" appears in Maruku.
63
63
  [this_pdf]: http://maruku.rubyforge.org/maruku.pdf
64
64
  [Andrea Censi]: http://www.dis.uniroma1.it/~acensi/
65
65
 
66
+ [contact]: http://www.dis.uniroma1.it/~acensi/contact.html
67
+ [gem]: http://rubygems.rubyforge.org/
68
+ [tracker]: http://rubyforge.org/tracker/?group_id=2795
69
+
70
+
71
+ [ruby]: http://www.ruby-lang.org
72
+ [bluecloth]: http://www.deveiate.org/projects/BlueCloth
73
+ [Markdown syntax]: http://daringfireball.net/projects/markdown/syntax
74
+ [PHP Markdown Extra]: http://www.michelf.com/projects/php-markdown/extra/
75
+ [math syntax]: http://maruku.rubyforge.org/math.xhtml
76
+ [blahtex]: http://www.blahtex.org
77
+ [ritex]: http://ritex.rubyforge.org
78
+ [itex2mml]: http://golem.ph.utexas.edu/~distler/code/itexToMML/
79
+ [syntax]: http://syntax.rubyforge.org/
80
+
81
+ [listings]: http://www.ctan.org/tex-archive/macros/latex/contrib/listings/
82
+ [meta_data_proposal]: http://maruku.rubyforge.org/proposal.html
83
+ [markdown-discuss]: http://six.pairlist.net/mailman/listinfo/markdown-discuss
84
+
66
85
  * * *
67
86
 
68
87
  Table of contents: (**auto-generated by Maruku!**)
@@ -92,142 +111,7 @@ please write to the [Markdown-discuss mailing list][markdown-discuss].
92
111
 
93
112
  Have fun!
94
113
 
95
-
96
- #### Changes in 0.4.2 #### {#last}
97
-
98
- * Adapted syntax to the [new meta-data proposal][proposal].
99
-
100
- * Changes in LaTeX export:
101
-
102
- * Links to external URLs are blue by default.
103
-
104
- * New attributes: `latex_preamble` to add a custom preamble,
105
- and `latex_cjk` to add packages for UTF-8 Japanese characters.
106
- (**support for this is still shaky**). Example:
107
-
108
- Title: my document
109
- LaTeX CJK: true
110
- LaTeX preamble: preamble.tex
111
-
112
- Content
113
-
114
- * Bug fixes
115
-
116
- + Images were not given `id` or `class` attributes.
117
-
118
- + Fixed bug in LaTeX export with handling of `<`,`>` enclosed URLs: `<google.com>`.
119
-
120
- #### Changes in 0.4.1 aka "Typographer" ####
121
-
122
- * Implemented SmartyPants support:
123
-
124
- 'Twas a "test" to 'remember' -- in the '90s
125
- --- while I was <<ok>>. She was 6\"12\'.
126
- > 'Twas a "test" to 'remember' -- in the '90s --- while I was <<ok>>.
127
- > She was 6\"12\'.
128
-
129
- I adapted the code from RubyPants.
130
-
131
- * Server directives between `<? ?>` are properly preserved.
132
- * Changes in LaTeX export:
133
-
134
- * Now Japanese text rendering sort of works, using the following packages:
135
-
136
- \usepackage[C40]{fontenc}
137
- \usepackage[cjkjis]{ucs}
138
- \usepackage[utf8x]{inputenc}
139
-
140
- Nevertheless, I could only get bitmap fonts working -- probably it's a problem
141
- with my setup.
142
-
143
- A quick test: 日本、中国、ひらがな、カタカナ。
144
-
145
- * Fixed bugs in rendering of immediate links.
146
- * External packages are `require`d only if needed.
147
- * More symbols supported.
148
- See the symbol list
149
- [in HTML](http://maruku.rubyforge.org/entity_test.html) and
150
- [in PDF](http://maruku.rubyforge.org/entity_test.pdf).
151
-
152
-
153
- #### Changes in 0.4 ####
154
-
155
- * First implementation of [the new meta-data syntax][meta].
156
- * General refactorization of the code and much cleaner error reporting.
157
- * Created [the RDOC documentation][rdoc].
158
- * The `add_whitespace` method took too much time -- it was O(n^2).
159
- * Added unit-tests for block-level elements.
160
-
161
- [rdoc]: http://maruku.rubyforge.org/rdoc/
162
- [meta]: http://maruku.rubyforge.org/proposal.html
163
-
164
- #### Changes in 0.3 ####
165
-
166
- * A real parser is used instead of a regexp-based system, also for span-level
167
- elements.
168
-
169
- Now Maruku is almost 2x faster than Bluecloth, while having more features.
170
-
171
- Here are some benchmarks:
172
-
173
- BlueCloth (to_html): parsing 0.00 sec + rendering 1.54 sec = 1.55 sec
174
- Maruku (to_html): parsing 0.47 sec + rendering 0.38 sec = 0.85 sec
175
- Maruku (to_latex): parsing 0.49 sec + rendering 0.25 sec = 0.73 sec
176
-
177
- This is the result of running `lib/maruku/tests/benchmark.rb` on the Markdown
178
- specification.
179
-
180
- * Prettier HTML output by adding whitespace.
181
-
182
- * Added a full suite of unit-tests for the span-level parser.
183
-
184
- * Error management: Having a real parser, Maruku warns you about syntax issues.
185
-
186
- The default action is to warn and try to continue. If you do this:
187
-
188
- Maruku.new(string, {:on_error => :raise})
189
-
190
- then syntax errors will cause an exception to be raised (you can catch this
191
- and retry).
192
-
193
- * Fixed a series of bugs in handling inline HTML code.
194
-
195
- Immediate TODO-list:
196
-
197
- * UTF-8 input/output works OK for HTML, however I am having pain trying to export
198
- to LaTeX. I want at least Japanese characters support, so if you know how to
199
- do this you are very welcome to give me an hand.
200
-
201
- For example: in the HTML version, you should see accented characters in this
202
- parenthesis:
203
-
204
- > (àèìòù)
205
-
206
- and Japanese text in these other parentheses:
207
-
208
- > (カタカナで 私の 名前は アンドレア チェンシ です).
209
- >
210
- > (日本のガルは 大好き、でも、日本語は難しですから、そうぞ 英語話すガルを おしえてください).
211
-
212
- In the LaTeX version, these do not appear. I know how to do LaTeX with
213
- ISO-8859-1 encoding (European characters), but I'm struggling with half-baked
214
- solutions for UTF-8 encoded documents.
215
-
216
- * Implement the [new meta-data proposal][proposal].
217
-
218
- * Exporting to Markdown (pretty printing).
219
-
220
- * Exporting to HTML splitting in multiple files.
221
-
222
- * RubyPants.
223
-
224
- * Support for images in PDF.
225
-
226
-
227
- [proposal]: http://maruku.rubyforge.org/proposal.html
228
- [contact]: http://www.dis.uniroma1.it/~acensi/contact.html
229
- [markdown-discuss]: http://six.pairlist.net/mailman/listinfo/markdown-discuss
230
- [tracker]: http://rubyforge.org/tracker/?group_id=2795
114
+ See the [changelog](http://maruku.rubyforge.org/changelog.html#stable).
231
115
 
232
116
  Download {#download}
233
117
  --------
@@ -244,24 +128,22 @@ Released files can also be seen at <http://rubyforge.org/frs/?group_id=2795>.
244
128
 
245
129
  Anonymous access to the repository is possible with:
246
130
 
247
- $ svn checkout svn://rubyforge.org/var/svn/maruku
131
+ $ svn checkout svn://rubyforge.org/var/svn/maruku/trunk
248
132
 
249
133
  {:shell}
250
134
 
251
- If you want commit access to the repository, just create an account on Rubyforge and [drop me a mail][drop].
252
-
253
- [drop]: http://www.dis.uniroma1.it/~acensi/contact.html
254
- [gem]: http://rubygems.rubyforge.org/
135
+ If you want commit access to the repository, just create an account on Rubyforge and [drop me a mail][contact].
255
136
 
256
137
  ### Bugs report ###
257
138
 
258
- Use the [tracker][tracker] or [drop me an email][drop].
139
+ Use the [tracker][tracker] or [drop me an email][contact].
259
140
 
260
- [tracker]: http://rubyforge.org/tracker/?group_id=2795
261
141
 
262
142
  Usage
263
143
  --------
264
144
 
145
+ ### Embedded Maruku ###
146
+
265
147
  This is the basic usage:
266
148
 
267
149
  require 'rubygems'
@@ -286,118 +168,97 @@ You can have the REXML document tree with:
286
168
 
287
169
  ### From the command line ###
288
170
 
289
- There are two command-line programs installed: `maruku` and `marutex`.
290
-
291
- * `maruku` converts Markdown to HTML:
292
-
293
- $ maruku file.md # creates file.html
294
- {:shell}
295
-
296
- * `marutex` converts Markdown to LaTeX, then calls `pdflatex` to
297
- transform to PDF:
298
-
299
- $ marutex file.md # creates file.tex and file.pdf
300
- {:shell}
301
-
302
-
303
- Examples of PHP Markdown Extra syntax {#extra}
304
- -------------------------------------
305
-
306
- * tables
307
-
308
- Col1 | Very very long head | Very very long head|
309
- -----|:-------------------:|-------------------:|
310
- cell | center-align | right-align |
311
- {:markdown}
312
-
313
- Col1 | Very very long head | Very very long head|
314
- -----|:-------------------:|-------------------:|
315
- cell | center-align | right-align |
316
-
317
-
318
- * footnotes [^foot]
319
-
320
- * footnotes [^foot]
321
-
322
- [^foot]: I really was missing those.
323
- {:markdown}
171
+ There is one command-line program installed: `maruku`.
324
172
 
325
- [^foot]: I really was missing those.
326
-
327
- * Markdown inside HTML elements
328
-
329
- <div markdown="1" style="border: solid 1px black">
330
- This is a div with Markdown **strong text**
331
- </div>
332
- {:html}
173
+ Without arguments, it converts Markdown to HTML:
333
174
 
334
- <div markdown="1" style="border: solid 1px black">
335
- This is a div with Markdown **strong text**
336
- </div>
175
+ $ maruku file.md # creates file.html
176
+ {:shell}
337
177
 
178
+ With the `--pdf` arguments, it converts Markdown to LaTeX, then calls `pdflatex` to
179
+ transform to PDF:
338
180
 
339
- * header ids
181
+ $ maruku --pdf file.md # creates file.tex and file.pdf
182
+ {:shell}
340
183
 
341
- ## Download ## {#download}
342
- {:markdown}
343
184
 
344
- For example, [a link to the download](#download) header.
185
+ Maruku and Bluecloth {#maruku-and-bluecloth}
186
+ --------------------
345
187
 
188
+ The other Ruby implementation of Markdown is [Bluecloth].
346
189
 
347
- * definition lists
190
+ Maruku is much different in philosophy from Bluecloth: the biggest
191
+ difference is that *parsing* is separated from *rendering*.
192
+ In Maruku, an in-memory representation of the Markdown
193
+ document is created. Instead, Bluecloth mantains the document in
194
+ memory as a String at all times, and does a series of `gsub`
195
+ to transform to HTML.
348
196
 
349
- Definition list
350
- : something very hard to parse
351
- {:markdown}
197
+ Maruku is usually faster than Bluecloth. Bluecloth is faster
198
+ for very small documents. Bluecloth sometimes chokes on very big
199
+ documents (it is reported that the blame should be on Ruby's regexp
200
+ implementation).
352
201
 
353
- Definition list
354
- : something very hard to parse
202
+ This is the canonical benchmark (the Markdown specification),
203
+ executed with Ruby 1.8.5 on a Powerbook 1.5GhZ:
355
204
 
356
- * abbreviations or ABB for short.
205
+ BlueCloth (to_html): parsing 0.01 sec + rendering 1.87 sec = 1.88 sec (1.00x)
206
+ Maruku (to_html): parsing 0.66 sec + rendering 0.43 sec = 1.09 sec (1.73x)
207
+ Maruku (to_latex): parsing 0.67 sec + rendering 0.23 sec = 0.90 sec (2.10x)
357
208
 
358
- *[ABB]: Simply an abbreviation
209
+ Please note that Maruku has a lot more features and therefore is
210
+ looking for much more patterns in the file.
359
211
 
360
212
 
361
213
 
362
- Maruku and Bluecloth {#maruku-and-bluecloth}
363
- --------------------
214
+ Maruku summary of features
215
+ --------------------------
364
216
 
365
- The other Ruby implementation of Markdown is [Bluecloth][].
217
+ * Supported syntax
218
+
219
+ * [Basic Markdown][markdown_syntax]
220
+ * [Markdown Extra](#extra)
221
+ * [Meta-data syntax](#meta)
222
+
223
+ * Output
224
+
225
+ * XHTML
226
+
227
+ * Syntax highlighting via the [`syntax`][syntax] library.
228
+
229
+ * LaTeX
366
230
 
367
- Maruku is much different in philosophy from Bluecloth: the biggest
368
- difference is that *parsing* is separated from *rendering*.
369
- In Maruku, an in-memory representation of the Markdown
370
- document is created. Instead, Bluecloth mantains the document in
371
- memory as a String at all times, and does a series of `gsub`
372
- to transform to HTML.
231
+ * [Translation of HTML entities to LaTeX](#entities)
232
+ * Syntax highlighting via the [`listings`][listings] package.
373
233
 
374
- The in-memory representation makes it very easy to export
375
- to various formats (at the moment HTML and LaTeX/PDF;
376
- the next is pretty-printed Markdown).
234
+ * Misc
377
235
 
378
- Other improvements over Bluecloth:
236
+ * [Documentation for supported attributes][supported_attributes]
237
+
238
+ * [Automatic generation of the TOC](#toc-generation)
379
239
 
380
- * the HTML output is provided also as a `REXML` document tree.
381
240
 
382
- * PHP Markdown Syntax support.
241
+ [supported_attributes]: exd.html
383
242
 
384
- [ruby]: http://www.ruby-lang.org
385
- [bluecloth]: http://www.deveiate.org/projects/BlueCloth
386
- [Markdown syntax]: http://daringfireball.net/projects/markdown/syntax
387
- [PHP Markdown Extra]: http://www.michelf.com/projects/php-markdown/extra/
243
+ **Experimental features (not released yet)**
388
244
 
245
+ * [LaTeX Math syntax][math_syntax] (not enabled by default)
246
+ * An extension system for adding new syntax is available,
247
+ but the API is bound to change in the future,
248
+ so please don't use it.
249
+ * LaTeX to MathML using either one of [`ritex`][ritex], [`itex2mml`][itex2mml],
250
+ [`blahtex`][blahtex].
251
+ * LaTeX to PNG using [`blahtex`][blahtex].
389
252
 
390
- New meta-data syntax {#meta}
391
- --------------------
253
+ ### New meta-data syntax {#meta}
392
254
 
393
255
  Maruku implements a syntax that allows to attach "meta" information
394
256
  to objects.
395
257
 
396
- ### Meta-data for block-level and span-level elements ###
397
-
398
- See [this proposal][meta].
258
+ See [this proposal][meta_data_proposal] for how to attach
259
+ metadata to the elements.
399
260
 
400
- ### Meta-data for the document ###
261
+ See the [documentation for supported attributes][supported_attributes].
401
262
 
402
263
  Meta-data for the document itself is specified through the use
403
264
  of email headers:
@@ -420,154 +281,108 @@ the title and stylesheet are added as expected.
420
281
  Meta-data keys are assumed to be case-insensitive.
421
282
 
422
283
 
423
- * * *
424
-
425
-
426
- ### List of meta-data ### {#metalist}
427
-
428
- [listings]: http://www.ctan.org/tex-archive/macros/latex/contrib/listings/
284
+ ### Automatic generation of the table of contents ### {#toc-generation}
429
285
 
430
- **`title`, `subject`**
431
- : (document) Sets the title of the document (HTML: used in the `TITLE` element).
286
+ If you create a list, and then set the `toc` attribute, when rendering
287
+ Maruku will create an auto-generated table of contents.
432
288
 
433
- **`use_numbered_headers`**
434
- : (document) If `true`, headers are numbered (just like this document). Default is `false`.
289
+ * This will become a table of contents (this text will be scraped).
290
+ {:toc}
435
291
 
436
- **`css`**
437
- : (document, HTML) Url of stylesheet.
292
+ You can see an example of this at the beginning of this document.
438
293
 
439
- **`html_use_syntax`**
440
- : (document, HTML) If set, use the [Ruby `syntax` library][syntax] to add source highlighting.
294
+ ### Use HTML entities ### {#entities}
441
295
 
442
- **`latex_use_listings`**
443
- : (document, LaTeX) If set, use the fancy [`listings` package][listings] for better displaying code blocks.
444
-
445
- If not set, use standard `verbatim` environment.
296
+ If you want to use HTML entities, go on! We will take care
297
+ of the translation to LaTeX:
446
298
 
447
- **`style`, `id`, `class`**
448
- : (any block object, HTML) Standard CSS attributes are copied.
299
+ Entity | Result
300
+ ------------|----------
301
+ `&copy;` | &copy;
302
+ `&pound;` | &pound;
303
+ `&lambda;` | &lambda;
304
+ `&mdash;` | &mdash;
449
305
 
450
- **`lang`**
451
- : (code blocks) Name of programming language (`ruby`) for syntax highlighting.
306
+ See the [list of supported entities][ent_html] ([pdf][ent_pdf]).
452
307
 
453
- Default for this is `code_lang` in document.
454
-
455
- Syntax highlighting is delegated to the [`syntax` library][syntax] for
456
- HTML output and to the [`listings` package][listings] for LaTeX output.
308
+ [ent_html]: http://maruku.rubyforge.org/entity_test.html
309
+ [ent_pdf]: http://maruku.rubyforge.org/entity_test.pdf
457
310
 
458
311
 
459
- **`code_show_spaces`**
460
- : Shows tabs and newlines (default is read in the document object).
312
+ ### This header contains *emphasis* **strong text** and `code` ####
461
313
 
462
- **`code_background_color`**
463
- : Background color for code blocks. (default is read in the document object).
314
+ Note that this header contains formatting and it still works, also in the table of contents.
464
315
 
465
- The format is either a named color (`green`, `red`) or a CSS color
466
- of the form `#ff00ff`.
316
+ And [This is a *link* with **all** ***sort*** of `weird stuff`](#features) in the text.
467
317
 
468
- * for **HTML output**, the value is put straight in the `background-color` CSS
469
- property of the block.
470
318
 
471
- * for **LaTeX output**, if it is a named color, it must be a color accepted
472
- by the LaTeX `color` packages. If it is of the form `#ff00ff`, Maruku
473
- defines a color using the `\color[rgb]{r,g,b}` macro.
319
+ Examples of PHP Markdown Extra syntax {#extra}
320
+ -------------------------------------
474
321
 
475
- For example, for `#0000ff`, the macro is called as: `\color[rgb]{0,0,1}`.
322
+ * tables
476
323
 
477
- [syntax]: http://syntax.rubyforge.org/
324
+ Col1 | Very very long head | Very very long head|
325
+ -----|:-------------------:|-------------------:|
326
+ cell | center-align | right-align |
327
+ {:markdown}
478
328
 
329
+ Col1 | Very very long head | Very very long head|
330
+ -----|:-------------------:|-------------------:|
331
+ cell | center-align | right-align |
479
332
 
480
- ### Examples ###
481
333
 
482
- An example of this is the following:
334
+ * footnotes [^foot]
483
335
 
484
- One space
485
- Two spaces
486
- Tab, space, tab
487
- Tab, tab, tab and all is green!
488
- {:code_show_spaces code_background_color=#ffeedd}
489
- {:markdown}
336
+ * footnotes [^foot]
490
337
 
491
- That will produce:
492
-
493
- One space
494
- Two spaces
495
- Tab, space, tab
496
- Tab, tab, tab and all is green!
497
- {:code_show_spaces code_background_color=#ffeedd}
498
-
499
-
500
- Or highlighting (support depends on languages):
501
-
502
- <div style="text-align:center">Div</div>
503
- {:lang=html}
504
-
505
- produces:
506
-
507
- <div style="text-align:center">Div</div>
508
- {:lang=html}
509
-
338
+ [^foot]: I really was missing those.
339
+ {:markdown}
510
340
 
341
+ [^foot]: I really was missing those.
511
342
 
512
- * * *
343
+ * Markdown inside HTML elements
513
344
 
514
- Other Features {#features}
515
- --------------
345
+ <div markdown="1" style="border: solid 1px black">
346
+ This is a div with Markdown **strong text**
347
+ </div>
348
+ {:html}
516
349
 
517
- ### Automatic generation of the table of contents ###
350
+ <div markdown="1" style="border: solid 1px black">
351
+ This is a div with Markdown **strong text**
352
+ </div>
518
353
 
519
- If you create a list, and then set the `toc` attribute, when rendering
520
- Maruku will create an auto-generated table of contents.
521
354
 
522
- * This will become a table of contents (this text will be scraped).
523
- {:toc}
355
+ * header ids
524
356
 
525
- You can see an example of this at the beginning of this document.
357
+ ## Download ## {#download}
358
+ {:markdown}
526
359
 
527
- ### This header contains *emphasis* **strong text** and `code` ####
360
+ For example, [a link to the download](#download) header.
528
361
 
529
- Note that this header contains formatting and it still works, also in the table of contents.
530
362
 
531
- And [This is a *link* with **all** ***sort*** of `weird stuff`](#features) in the text.
363
+ * definition lists
532
364
 
533
- ### Use HTML entities ###
365
+ Definition list
366
+ : something very hard to parse
367
+ {:markdown}
534
368
 
535
- If you want to use HTML entities, go on! We will take care
536
- of the translation to LaTeX:
369
+ Definition list
370
+ : something very hard to parse
537
371
 
538
- Entity | Result
539
- ------------|----------
540
- `&copy;` | &copy;
541
- `&pound;` | &pound;
542
- `a&nbsp;b` | a&nbsp;b
543
- `&lambda;` | &lambda;
544
- `&mdash;` | &mdash;
372
+ * abbreviations or ABB for short.
545
373
 
374
+ *[ABB]: Simply an abbreviation
546
375
 
547
376
 
548
377
 
378
+ <!--
549
379
  Future developments {#future}
550
- -------------------
551
380
 
552
- I think that [Pandoc][] and [MultiMarkdown][] are very cool projects.
381
+ I think that [Pandoc] and [MultiMarkdown] are very cool projects.
553
382
  However, they are written in Haskell and Perl, respectively.
554
383
  I would love to have an equivalent in Ruby.
555
384
 
556
385
  [Pandoc]: http://sophos.berkeley.edu/macfarlane/pandoc/
557
386
  [MultiMarkdown]: http://fletcher.freeshell.org/wiki/MultiMarkdown
558
387
 
559
-
560
- ### A syntax for adding math ###
561
-
562
- Something inspired from LaTeX should be familiar to all:
563
-
564
- This is inline math: $\alpha$
565
-
566
-
567
- This is an equation with label:
568
-
569
- $ \alpha = \beta + \gamma $ (eq:1)
570
-
571
- This is a reference to equation: please see (eq:1)
572
-
573
-
388
+ -->