redcarpet 3.4.0 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 54a531e17acc94f275045e633bab8458df9c0075
4
- data.tar.gz: 407c3e570ffbaff80b809ab344fb4a7d27b1b97f
2
+ SHA256:
3
+ metadata.gz: ff95ccb3cfac7e8785f4e93f3984ee2c86b04008628555b9ab64cbd50886860d
4
+ data.tar.gz: 7daf631354b3e0edb0104387ead39674bdce554dfec90041b0f2c57c4d97621f
5
5
  SHA512:
6
- metadata.gz: 7d7189a86a6ed3451e823f2b75acfc2c7086f73e02e22ece1490b25fba5df75d149c8d1ce61cef47c7604aa0a941e090bbff93f5623d501d78e3cf2ef5836d89
7
- data.tar.gz: 34e6b6980076319b5094c1766687c31b21ace1d2e5d96f7b291f36f60350d727b40f87f14a870f16601732532ca4ad469a79430312ac5b72eda18ef9f4e1e364
6
+ metadata.gz: b2829bb96f83da4db1e81ab8ff8e22678fc73b2c0a073a84d789d04cb88b84e39da2a2ad4de1ac6229b370368a69828e635af5020a094b73773477fcad118283
7
+ data.tar.gz: 4ee41dbbb347d5125478d1bca1fc9820bf825fc210bd27b1d2183934a23e7b0acbf5a72bc04445787c4129c73fd3d8d9bb612db1758c14d21b6df21f20752f20
data/CHANGELOG.md ADDED
@@ -0,0 +1,479 @@
1
+ # Changelog
2
+
3
+ ## Version 3.6.0
4
+
5
+ * Avoid warnings running on Ruby 3.2+.
6
+
7
+ Refs #721.
8
+
9
+ *Jean Boussier*
10
+
11
+ * Match fence char and length when matching closing fence in fenced code blocks.
12
+
13
+ Fixes #208.
14
+
15
+ *Martin Cizek, Orchitech*
16
+
17
+ * Consider `<center>` as a block-level element.
18
+
19
+ Refs #702.
20
+
21
+ *momijizukamori*
22
+
23
+ * Properly provide a third argument to the `table_cell` callback indicating
24
+ whether the current cell is part of the header or not.
25
+
26
+ The previous implementation with two parameters is still supported.
27
+
28
+ Fixes #604, Refs #605.
29
+
30
+ *Mark Lambley*
31
+
32
+ * Fix anchor generation on titles with ampersands.
33
+
34
+ Fixes #696.
35
+
36
+ ## Version 3.5.1 (Security)
37
+
38
+ * Fix a security vulnerability using `:quote` in combination with the
39
+ `:escape_html` option.
40
+
41
+ Reported by *Johan Smits*.
42
+
43
+
44
+ ## Version 3.5.0
45
+
46
+ * Avoid mutating the options hash passed to a render object.
47
+
48
+ Refs #663.
49
+
50
+ *Max Schwenk*
51
+
52
+ * Fix a segfault rendering quotes using `StripDown` and the `:quote`
53
+ option.
54
+
55
+ Fixes #639.
56
+
57
+ * Fix `warning: instance variable @options not initialized` when
58
+ running under verbose mode (`-w`, `$VERBOSE = true`).
59
+
60
+ * Fix SmartyPants single quotes right after a link. For example:
61
+
62
+ ~~~markdown
63
+ [John](http://john.doe)'s cat
64
+ ~~~
65
+
66
+ Will now properly converts `'` to a right single quote (i.e. `’`).
67
+
68
+ Fixes #624.
69
+
70
+ * Remove the `rel` and `rev` attributes from the output generated
71
+ for footnotes as they don't pass the HTML 5 validation.
72
+
73
+ Fixes #536.
74
+
75
+ * Automatically enable the `fenced_code_blocks` option passing a
76
+ `HTML_TOC` object to the `Markdown` object's constructor since
77
+ some languages rely on the sharp to comment code.
78
+
79
+ Fixes #451.
80
+
81
+ * Allow passing `Range` objects to the `nesting_level` option to have
82
+ a higher level of customization for table of contents:
83
+
84
+ ~~~ruby
85
+ Redcarpet::Render::HTML_TOC.new(nesting_level: 2..5)
86
+ ~~~
87
+
88
+ Fixes #519.
89
+
90
+ ## Version 3.4.0
91
+
92
+ * Rely on djb2 hashing generating anchors with non-ASCII chars.
93
+
94
+ Fix issue [#538](https://github.com/vmg/redcarpet/issues/538).
95
+
96
+ *Alexey Kopytko*, *namusyaka*
97
+
98
+ * Added suppport for HTML 5 `details` and `summary` tags.
99
+
100
+ Fix issue [#578](https://github.com/vmg/redcarpet/issues/578).
101
+
102
+ *James Edwards-Jones*
103
+
104
+ * Multiple single quote pairs are parsed correctly with SmartyPants.
105
+
106
+ Fix issue [#549](https://github.com/vmg/redcarpet/issues/549).
107
+
108
+ *Jan Jędrychowski*
109
+
110
+ * Table headers don't require a minimum of three dashes anymore; a
111
+ single one can be used for each row.
112
+
113
+ * Remove escaped entities from `HTML` render table of contents'
114
+ ids to be consistent with the `HTML_TOC` render.
115
+
116
+ Fix issue [#529](https://github.com/vmg/redcarpet/issues/529).
117
+
118
+ * Remove periods at the end of URLs when autolinking to make sure
119
+ that links at the end of a sentence get properly generated.
120
+
121
+ Fix issue [#465](https://github.com/vmg/redcarpet/issues/465).
122
+
123
+ * Expose the Markdown and rendering options through a `Hash` inside
124
+ the `@options` instance variable for custom render objects.
125
+
126
+ * Avoid escaping ampersands in href links.
127
+
128
+ *Nolan Evans*
129
+
130
+ ## Version 3.3.4
131
+
132
+ * Fix `bufprintf` to correctly work on Windows MinGW-w64 so strings
133
+ are properly written to the buffer.
134
+
135
+ *Kenichi Saita*
136
+
137
+ * Fix the header anchor normalization by skipping non-ASCII chars
138
+ and not calling tolower because this leads to invalid UTF-8 byte
139
+ sequences in the HTML output. (tolower is not locale-aware)
140
+
141
+ *Clemens Gruber*
142
+
143
+ ## Version 3.3.3
144
+
145
+ * Fix a memory leak instantiating a `Redcarpet::Render::Base` object.
146
+
147
+ *Oleg Dashevskii*
148
+
149
+ * Fix the `StripDown` renderer to handle the `:highlight` option.
150
+
151
+ *Itay Grudev*
152
+
153
+ * The `StripDown` renderer handles tables if the `tables` extension is
154
+ enabled.
155
+
156
+ *amnesia7*
157
+
158
+ * Fix Smarty Pants to avoid fraction conversions when there are several
159
+ numbers separated with slashes (e.g. for a date).
160
+
161
+ *Sam Saffron*
162
+
163
+ ## Version 3.3.2
164
+
165
+ * Fix a potential security issue in the HTML renderer
166
+ (Thanks to Giancarlo Canales Barreto for the heads up)
167
+
168
+ ## Version 3.3.1
169
+
170
+ * Include the `Redcarpet::CLI`'s file in the gemspec to make it
171
+ available when downloading.
172
+
173
+ ## Version 3.3.0
174
+
175
+ * Fix the stripping of surrounding characters that should be removed
176
+ during anchor generation.
177
+
178
+ * Provide a `Redcarpet::CLI` class to create custom binary files.
179
+
180
+ Relying on Ruby's OptionParser, it's now straightforward to add new
181
+ options, rely on custom render objects or handle differently the
182
+ rendering of the provided files.
183
+
184
+ * Undeprecate the compatibility layer for the old RedCloth API.
185
+
186
+ This layer actually ease the support of libraries supporting different
187
+ Markdown processors.
188
+
189
+ * Strip out `style` tags at the HTML-block rendering level when the
190
+ `:no_styles` options is enabled ; previously they were only removed
191
+ inside paragraphs.
192
+
193
+ * Avoid parsing images when the given URL isn't safe and the
194
+ `:safe_links_only` option is enabled.
195
+
196
+ *Alex Serban*
197
+
198
+ * Avoid parsing references inside fenced code blocks so they are
199
+ now kept in the code snippet.
200
+
201
+ *David Waller*
202
+
203
+ * Avoid escaping table-of-contents' headers by default. A new
204
+ `:escape_html` option is now available for the `HTML_TOC` object
205
+ if there are security concerns.
206
+
207
+ * Add the `lang-` prefix in front of the language's name when using
208
+ `:prettify` along with `:fenced_code_blocks`.
209
+
210
+ * Non-alphanumeric chars are now stripped out from generated anchors
211
+ (along the lines of Active Support's `#parameterize` method).
212
+
213
+ ## Version 3.2.3
214
+
215
+ * Avoid rewinding content of a previous inline when autolinking is
216
+ enabled.
217
+
218
+ *Daniel LeCheminant*
219
+
220
+ * Fix escaping of forward slashes with the `Safe` render object (add a
221
+ missing semi-colon).
222
+
223
+ ## Version 3.2.2
224
+
225
+ * Consider `script` as a block-level element so it doesn't get included
226
+ inside a paragraph.
227
+
228
+ ## Version 3.2.1
229
+
230
+ * Load `RedcarpetCompat` when requiring Redcarpet for the sake of
231
+ backward compatibility.
232
+
233
+ *Loren Segal*
234
+
235
+ ## Version 3.2.0
236
+
237
+ * Add a `Safe` renderer to deal with users' input. The `escape_html`
238
+ and `safe_links_only` options are turned on by default.
239
+
240
+ Moreover, the `block_code` callback removes the tag's class since
241
+ the user can basically set anything with the vanilla one.
242
+
243
+ *Robin Dupret*
244
+
245
+ * HTML5 block-level tags are now recognized
246
+
247
+ *silverhammermba*
248
+
249
+ * The `StripDown` render object now displays the URL of links
250
+ along with the text.
251
+
252
+ *Robin Dupret*
253
+
254
+ * The RedCloth API compatibility layer is now deprecated.
255
+
256
+ *Robin Dupret*
257
+
258
+ * A hyphen and an equal should not be converted to heading.
259
+
260
+ *namusyaka*
261
+
262
+ * Fix emphasis character escape sequence detection while mid-emphasis.
263
+
264
+ *jcheatham*
265
+
266
+ * Add `=` to the whitelist of escaped chars so it can be used inside
267
+ highlighted snippets.
268
+
269
+ *jcheatham*
270
+
271
+ * Convert trailing single quotes to curly quotes. For example,
272
+ `Road Trippin'` now converts to `Road Trippin’`.
273
+
274
+ *Kevin Chen*
275
+
276
+ * Allow in-page links (e.g. `[headline](#headline)`) when `:safe_links_only` is set.
277
+
278
+ *jomo*
279
+
280
+ * Enable emphasis inside of sentences in multi-byte languages when
281
+ `:no_intra_emphasis` is set.
282
+
283
+ *Chun-wei Kuo*
284
+
285
+ * Avoid making `:no_intra_emphasis` only match spaces. This allows
286
+ using emphasizes inside quotes when the option is enabled for
287
+ instance.
288
+
289
+ *Jason Webb* and *BJ Homer*
290
+
291
+ * The StripDown renderer handles image tags now.
292
+
293
+ ## Version 3.1.2
294
+
295
+ * Remove the yielding of anchors in the `header` callback. This was
296
+ a breaking change between 3.0 and 3.1 as the method's arity changed.
297
+
298
+ ## Version 3.1.1
299
+
300
+ * Fix a segfault when parsing text with headers.
301
+
302
+ ## Version 3.1.0
303
+
304
+ * Yield the anchor of the headers
305
+
306
+ Using the `header` callback, it's now possible to get access to the
307
+ humanized generated id to easily keep tracking of the tree of headers
308
+ or simply handle the duplicate values easily.
309
+
310
+ Since the `HTML_TOC` and `HTML` objects both have this callback, it's
311
+ advisable to define a module and mix it in these objects to avoid
312
+ code duplication.
313
+
314
+ *Robin Dupret*
315
+
316
+ * Allow using tabs between a reference's colon and its link
317
+
318
+ Fix issue [#337](https://github.com/vmg/redcarpet/issues/337)
319
+
320
+ *Juan Guerrero*
321
+
322
+ * Make ordered lists preceded by paragraph parsed with `:lax_spacing`
323
+
324
+ Previously, enabling the `:lax_spacing` option, if a paragraph was
325
+ followed by an ordered list it was unparsed and was part of the
326
+ paragraph but this is no more the case.
327
+
328
+ *Robin Dupret*
329
+
330
+ * Feed the gemspec into ExtensionTask so that we can pre-compile.
331
+ ie. `rake native gem`
332
+
333
+ *Todd Edwards*
334
+
335
+ * Revert lax indent of less than 4 characters after list items
336
+
337
+ Follow the standard to detect when new paragraph is outside last item.
338
+ Fixes [issue #111](https://github.com/vmg/redcarpet/issues/111).
339
+
340
+ *Eric Bréchemier*
341
+
342
+ * Fix code blocks' classes when using Google code prettify
343
+
344
+ When using the the `:prettify` option and specifying the
345
+ language name, the generated code block's class had a missing
346
+ space.
347
+
348
+ *Simonini*
349
+
350
+ * Add `-v`/`--version` and `-h` flags to commandline redcarpet
351
+
352
+ *Lukas Stabe*
353
+
354
+ * Add optional quote support through the `:quote` option. Render
355
+ quotations marks to `q` HTML tag.
356
+
357
+ This is a `"quote"`.
358
+
359
+ *Anatol Broder*
360
+
361
+ * Ensure inline markup in titles is correctly stripped when generating
362
+ headers' anchor.
363
+
364
+ *Robin Dupret*
365
+
366
+ * Revert the unescaping behavior on comments
367
+
368
+ This behavior doesn't follow the conformance suite.
369
+
370
+ *Robin Dupret*
371
+
372
+ * Add optional footnotes support
373
+
374
+ Add PHP-Markdown style footnotes through the `:footnotes` option.
375
+
376
+ *Ben Dolman, Adam Florin, microjo, brief*
377
+
378
+ * Enable GitHub style anchors for headers
379
+
380
+ Passing the `with_toc_data` option to a `HTML` render object now
381
+ generates GitHub style anchors.
382
+
383
+ *Matt Rogers*
384
+
385
+ * Allow to set a maximum rendering level for HTML_TOC
386
+
387
+ Allow the user to pass a `nesting_level` option when instantiating a
388
+ new HTML_TOC render object in order to limit the nesting level in the
389
+ generated table of content. For example:
390
+
391
+ ~~~ruby
392
+ Redcarpet::Markdown.new(Redcarpet::Render::HTML_TOC.new(nesting_level: 2))
393
+ ~~~
394
+
395
+ *Robin Dupret*
396
+
397
+ ## Version 3.0.0
398
+
399
+ * Remove support for Ruby 1.8.x *Matt Rogers & Robin Dupret*
400
+
401
+ * Avoid escaping for HTML comments *Robin Dupret*
402
+
403
+ * Make emphasis wrapped inside parenthesis parsed *Robin Dupret*
404
+
405
+ * Remove the Sundown submodule *Robin Dupret*
406
+
407
+ * Fix FTP uris identified as emails *Robin Dupret*
408
+
409
+ * Add optional highlight support *Sam Soffes*
410
+
411
+ This is `==highlighted==`.
412
+
413
+ * Ensure nested parenthesis are handled into links *Robin Dupret*
414
+
415
+ * Ensure nested code spans put in emphasis work correctly *Robin Dupret*
416
+
417
+ ## Version 2.3.0
418
+
419
+ * Add a `:disable_indented_code_blocks` option *Dmitriy Kiriyenko*
420
+
421
+ * Fix issue [#57](https://github.com/vmg/redcarpet/issues/57) *Mike Morearty*
422
+
423
+ * Ensure new lines characters are inserted when using the StripDown
424
+ render. *Robin Dupret*
425
+
426
+ * Mark all symbols as hidden except the main entry point *Tom Hughes*
427
+
428
+ This avoids conflicts with other gems that may have some of the
429
+ same symbols, such as escape_utils which also uses houdini.
430
+
431
+ * Remove unnecessary function pointer *Sam Soffes*
432
+
433
+ * Add optional underline support *Sam Soffes*
434
+
435
+ This is `*italic*` and this is `_underline_` when enabled.
436
+
437
+ * Test that links with quotes work *Michael Grosser*
438
+
439
+ * Adding a prettyprint class for google-code-prettify *Joel Rosenberg*
440
+
441
+ * Remove unused C macros *Matt Rogers*
442
+
443
+ * Remove 'extern' definition for Init_redcarpet_rndr() *Matt Rogers*
444
+
445
+ * Remove Gemfile.lock from the gemspec *Matt Rogers*
446
+
447
+ * Removed extra unused test statement. *Slipp D. Thompson*
448
+
449
+ * Use test-unit gem to get some red/green output when running tests
450
+ *Michael Grosser*
451
+
452
+ * Remove a deprecation warning and update Gemfile.lock *Robin Dupret*
453
+
454
+ * Added contributing file *Brent Beer*
455
+
456
+ * For tests for libxml2 > 2.8 *strzibny*
457
+
458
+ * SmartyPants: Preserve single `backticks` in HTML *Mike Morearty*
459
+
460
+ When SmartyPants is processing HTML, single `backticks` should be left
461
+ intact. Previously they were being deleted.
462
+
463
+ * Removed and ignored Gemfile.lock *Ryan McGeary*
464
+
465
+ * Added support for org-table syntax *Ryan McGeary*
466
+
467
+ Adds support for using a plus (+) as an intersection character instead of
468
+ requiring pipes (|). The emacs org-mode table syntax automatically manages
469
+ ascii tables, but uses pluses for line intersections.
470
+
471
+ * Ignore /tmp directory *Ryan McGeary*
472
+
473
+ * Add redcarpet_ prefix for `stack_*` functions *Kenta Murata*
474
+
475
+ * Mark any html_attributes has held by a renderer as used *Tom Hughes*
476
+
477
+ * Add Rubinius to the list of tested implementations *Gibheer*
478
+
479
+ * Add a changelog file
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,33 @@
1
+ ## Submitting a Pull Request
2
+
3
+ 1. [Fork the repository.][fork]
4
+ 2. [Create a topic branch.][branch]
5
+ 3. Check which version of Ruby is installed on your machine with `ruby -v`.
6
+ The list of supported Ruby versions is listed in [.travis.yml][travis_yml].
7
+ Set up one of these versions; use of [RVM][rvm] is recommended to switch
8
+ easily between different versions.
9
+ 4. [Install bundler.][bundler]
10
+ 5. Make sure to have the `tidy` command on your system:
11
+
12
+ * `apt-get install tidy`
13
+ * `yum install tidy`
14
+ * `pacman -S tidyhtml`
15
+
16
+ 6. Check that unit tests pass with `rake test`.
17
+ 7. Write a failing test to capture existing bug or lack of feature.
18
+ 8. Run `rake test` to verify that test fails.
19
+ 9. Implement your feature or bug fix.
20
+ 10. Ensure tests pass.
21
+ 11. If it's a new feature or a bug fix, please add an entry to the changelog file.
22
+ 12. Add, commit, and push your changes.
23
+ 13. [Submit a pull request.][pr]
24
+ 14. You will get some feedback and may need to push additional commits
25
+ with more fixes to the same branch; this will update your pull request
26
+ automatically.
27
+
28
+ [branch]: http://git-scm.com/book/en/Git-Branching-Branching-Workflows#Topic-Branches
29
+ [bundler]: http://bundler.io
30
+ [fork]: https://help.github.com/articles/fork-a-repo
31
+ [pr]: https://help.github.com/articles/using-pull-requests
32
+ [rvm]: https://rvm.io
33
+ [travis_yml]: https://github.com/vmg/redcarpet/blob/master/.travis.yml
data/Gemfile CHANGED
@@ -3,7 +3,7 @@ source "https://rubygems.org/"
3
3
  gemspec
4
4
 
5
5
  group :benchmark do
6
- gem "benchmark-ips", "~> 2.3.0"
6
+ gem "benchmark-ips", "~> 2.7.2"
7
7
  gem "bluecloth", "~> 2.2.0"
8
- gem "kramdown", "~> 1.8.0"
8
+ gem "kramdown", "~> 1.13.2"
9
9
  end
data/README.markdown CHANGED
@@ -2,7 +2,8 @@ Redcarpet is written with sugar, spice and everything nice
2
2
  ============================================================
3
3
 
4
4
  [![Build Status](https://travis-ci.org/vmg/redcarpet.svg?branch=master)](https://travis-ci.org/vmg/redcarpet)
5
- [![Dependency Status](https://www.versioneye.com/ruby/redcarpet/badge.svg)](https://www.versioneye.com/ruby/redcarpet)
5
+ [![Help Contribute to Open Source](https://www.codetriage.com/vmg/redcarpet/badges/users.svg)](https://www.codetriage.com/vmg/redcarpet)
6
+ [![Gem Version](https://badge.fury.io/rb/redcarpet.svg)](https://badge.fury.io/rb/redcarpet)
6
7
 
7
8
  Redcarpet is a Ruby library for Markdown processing that smells like
8
9
  butterflies and popcorn.
@@ -45,10 +46,10 @@ output.
45
46
  The `Redcarpet::Markdown` object is encouraged to be instantiated once with the
46
47
  required settings, and reused between parses.
47
48
 
48
- ~~~~~ ruby
49
+ ~~~~ ruby
49
50
  # Initializes a Markdown parser
50
51
  markdown = Redcarpet::Markdown.new(renderer, extensions = {})
51
- ~~~~~
52
+ ~~~~
52
53
 
53
54
  Here, the `renderer` variable refers to a renderer object, inheriting
54
55
  from `Redcarpet::Render::Base`. If the given object has not been
@@ -59,10 +60,10 @@ Unlike in the RedCloth API, the text to render is passed as an argument
59
60
  and not stored inside the `Markdown` instance, to encourage reusability.
60
61
  Example:
61
62
 
62
- ~~~~~ ruby
63
+ ~~~~ ruby
63
64
  markdown.render("This is *bongos*, indeed.")
64
65
  # => "<p>This is <em>bongos</em>, indeed.</p>"
65
- ~~~~~
66
+ ~~~~
66
67
 
67
68
  You can also specify a hash containing the Markdown extensions which the
68
69
  parser will identify. The following extensions are accepted:
@@ -119,9 +120,9 @@ within the document (e.g. `[^1]: This is a footnote.`).
119
120
 
120
121
  Example:
121
122
 
122
- ~~~ruby
123
+ ~~~~ ruby
123
124
  markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true, tables: true)
124
- ~~~~~
125
+ ~~~~
125
126
 
126
127
  Darling, I packed you a couple renderers for lunch
127
128
  --------------------------------------------------
@@ -136,9 +137,9 @@ All the rendering flags that previously applied only to HTML output have
136
137
  now been moved to the `Redcarpet::Render::HTML` class, and may be enabled when
137
138
  instantiating the renderer:
138
139
 
139
- ~~~~~ ruby
140
+ ~~~~ ruby
140
141
  Redcarpet::Render::HTML.new(render_options = {})
141
- ~~~~~
142
+ ~~~~
142
143
 
143
144
  Initializes an HTML renderer. The following flags are available:
144
145
 
@@ -172,9 +173,9 @@ Markdown document had newlines (by default, Markdown ignores these newlines).
172
173
 
173
174
  Example:
174
175
 
175
- ~~~~~ ruby
176
+ ~~~~ ruby
176
177
  renderer = Redcarpet::Render::HTML.new(no_links: true, hard_wrap: true)
177
- ~~~~~
178
+ ~~~~
178
179
 
179
180
 
180
181
  The `HTML` renderer has an alternate version, `Redcarpet::Render::HTML_TOC`,
@@ -182,8 +183,8 @@ which will output a table of contents in HTML based on the headers of the
182
183
  Markdown document.
183
184
 
184
185
  When instantiating this render object, you can optionally pass a `nesting_level`
185
- option which takes an integer and allows you to make it render only headers
186
- until a specific level.
186
+ option which takes an integer or a range and allows you to make it render only
187
+ headers at certain levels.
187
188
 
188
189
  Redcarpet also includes a plaintext renderer, `Redcarpet::Render::StripDown`, that
189
190
  strips out all the formatting:
@@ -205,7 +206,7 @@ And you can even cook your own
205
206
  Custom renderers are created by inheriting from an existing renderer. The
206
207
  built-in renderers, `HTML` and `XHTML` may be extended as such:
207
208
 
208
- ~~~~~ ruby
209
+ ~~~~ ruby
209
210
  # Create a custom renderer that sets a custom class for block-quotes.
210
211
  class CustomRender < Redcarpet::Render::HTML
211
212
  def block_quote(quote)
@@ -213,18 +214,18 @@ class CustomRender < Redcarpet::Render::HTML
213
214
  end
214
215
  end
215
216
 
216
- markdown = Redcarpet::Markdown.new(HTMLwithPygments, fenced_code_blocks: true)
217
- ~~~~~
217
+ markdown = Redcarpet::Markdown.new(CustomRender, fenced_code_blocks: true)
218
+ ~~~~
218
219
 
219
220
  But new renderers can also be created from scratch by extending the abstract
220
221
  base class `Redcarpet::Render::Base` (see `lib/redcarpet/render_man.rb` for
221
222
  an example implementation of a Manpage renderer):
222
223
 
223
- ~~~~~~ ruby
224
+ ~~~~ ruby
224
225
  class ManPage < Redcarpet::Render::Base
225
226
  # you get the drill -- keep going from here
226
227
  end
227
- ~~~~~
228
+ ~~~~
228
229
 
229
230
  The following instance methods may be implemented by the renderer:
230
231
 
@@ -257,7 +258,7 @@ end
257
258
  * paragraph(text)
258
259
  * table(header, body)
259
260
  * table_row(content)
260
- * table_cell(content, alignment)
261
+ * table_cell(content, alignment, header)
261
262
 
262
263
  ### Span-level calls
263
264
 
@@ -312,7 +313,7 @@ or after the rendering process begins:
312
313
  * postprocess(full_document)
313
314
 
314
315
  You can look at
315
- ["How to extend the Redcarpet 2 Markdown library?"](http://dev.af83.com/2012/02/27/howto-extend-the-redcarpet2-markdown-lib.html)
316
+ ["How to extend the Redcarpet 2 Markdown library?"](https://web.archive.org/web/20170505231254/http://dev.af83.com/2012/02/27/howto-extend-the-redcarpet2-markdown-lib.html)
316
317
  for some more explanations.
317
318
 
318
319
  Also, now our Pants are much smarter
@@ -337,7 +338,7 @@ end
337
338
 
338
339
  # Standalone
339
340
  Redcarpet::Render::SmartyPants.render("<p>Oh SmartyPants, you're so crazy...</p>")
340
- ~~~~~
341
+ ~~~~
341
342
 
342
343
  SmartyPants works on top of already-rendered HTML, and will ignore replacements
343
344
  inside the content of HTML tags and inside specific HTML blocks such as
@@ -362,16 +363,16 @@ renderer-independent, the results will be completely unreliable!
362
363
  Still, if major forces (let's say, tornadoes or other natural disasters) force you
363
364
  to keep a Markdown-compatibility layer, Redcarpet also supports this:
364
365
 
365
- ~~~~~ ruby
366
+ ~~~~ ruby
366
367
  require 'redcarpet/compat'
367
- ~~~~~
368
+ ~~~~
368
369
 
369
370
  Requiring the compatibility library will declare a `Markdown` class with the
370
371
  classical RedCloth API, e.g.
371
372
 
372
- ~~~~~ ruby
373
+ ~~~~ ruby
373
374
  Markdown.new('this is my text').to_html
374
- ~~~~~
375
+ ~~~~
375
376
 
376
377
  This class renders 100% standards compliant Markdown with 0 extensions. Nada.
377
378
  Don't even try to enable extensions with a compatibility layer, because
@@ -306,4 +306,3 @@ sd_autolink__url(
306
306
 
307
307
  return link_end;
308
308
  }
309
-
@@ -86,4 +86,3 @@ void bufprintf(struct buf *, const char *, ...) __attribute__ ((format (printf,
86
86
  #endif
87
87
 
88
88
  #endif
89
-