Discount is an implementation of John Gruber's Markdown markup language in C. It implements all of the language as described in Markdown Syntax and passes the Markdown 1.0 test suite. The RDiscount extension makes the Discount processor available via a Ruby C Extension library.
RDiscount implements the basic protocol popularized by RedCloth and adopted by BlueCloth:
require 'rdiscount' markdown = RDiscount.new("Hello World!") puts markdown.to_html
Inject RDiscount into your BlueCloth-using code by replacing your bluecloth require statements with the following:
begin require 'rdiscount' BlueCloth = RDiscount rescue LoadError require 'bluecloth' end
Convert URL in links, even if they aren't encased in <>
Do not output any raw HTML included in the source text.
Do not output <style>
tags included in the source text.
RedCloth compatible line folding -- not used for Markdown but included for compatibility.
Enable php markdown extra-style footnotes
Enable Table Of Contents generation
Do not process ![]
and remove <img>
tags
from the output.
Do not process []
and remove <a>
tags from
the output.
Do not process pseudo-protocols like [](id:name)
Do not process tables
Don't make hyperlinks from [][]
links that have unknown URL
types.
Set true to have smarty-like quote translation performed.
Disable superscript and relaxed emphasis processing.
Original Markdown formatted text.
Create a RDiscount Markdown processor. The
text
argument should be a string containing Markdown text.
Additional arguments may be supplied to set various processing options:
:smart
- Enable SmartyPants processing.
:filter_styles
- Do not output <style>
tags.
:filter_html
- Do not output any raw HTML tags included in the
source text.
:fold_lines
- RedCloth compatible line folding (not used).
:footnotes
- PHP markdown extra-style footnotes.
:generate_toc
- Enable Table Of Contents generation
:no_image
- Do not output any <img>
tags.
:no_links
- Do not output any <a>
tags.
:no_tables
- Do not output any tables.
:strict
- Disable superscript and relaxed emphasis processing.
:autolink
- Greedily urlify links.
:safelink
- Do not make links for unknown URL types.
:no_pseudo_protocols
- Do not process pseudo-protocols.
# File lib/rdiscount.rb, line 91 def initialize(text, *extensions) @text = text extensions.each { |e| send("#{e}=", true) } end