Markdown Engine Wrapper - Use Your Markdown Library of Choice in Ruby
- home :: github.com/rubylibs/markdown
- bugs :: github.com/rubylibs/markdown/issues
- gem :: rubygems.org/gems/markdown
- rdoc :: rubydoc.info/gems/markdown
The Markdown Engine Wrapper (markdown
) Ruby gem lets you use
your markdown library of choice. Preconfigured markdown libraries include
kramdown
redcarpet
bluecloth
maruku
rpeg-markdown
rdiscount
pandoc-ruby
Usage - Ruby Code
require 'markdown'
Markdown.new( 'Hello World' ).to_html
# => "<p>Hello World</p>\n"
Configuration - Markdown Engine Loading Order
The default (fallback) Markdown library is kramdown
. To use your markdown engine of choice
configure the wrapper. The wrapper
uses the following lookup order to find the markdown engine:
1) MARKDOWN_LIB
Environment Variable
Example:
set MARKDOWN_LIB=kramdown
2) lib
Property (in ./markdown.yml
or ~/markdown.yml
)
Example:
lib: kramdown
3) libs
Property (in ./markdown.yml
or ~/markdown.yml
)
Example:
libs:
- redcarpet
- kramdown
Markdown libraries in the list get loaded on a first-come first-serve principle,
that is, the first library require
'd successfully will get used.
Configuration - Markdown Engine Options
You can also pass along options to your Markdown library. Example:
## Let's use the Redcarpet library
lib: redcarpet
redcarpet:
extensions:
- no_intra_emphasis
- fenced_code_blocks
- tables
- strikethrough
Configuration -Filters (Command Line Only)
For the command line tool only you can configure preprocessing filters to allow comments, Ruby helpers, and much more. Example:
## Let's use percent style comments
filters:
- comments-percent-style
Now the filter will strip comment lines starting with percent (that is, %). Example:
%%%%%%%%%%%%%%%%
% Some Headers
Title: Web Services REST-Style: Universal Identifiers, Formats & Protocols
Becomes
Title: Web Services REST-Style: Universal Identifiers, Formats & Protocols
before the text gets passed along to the markdown engine. The filter
also supports multiline comments with %begin
|comment
|comments
/%end
pairs. Example:
%begin
Using modern browser such as Firefox, Chrome and Safari you can
now theme your slide shows using using "loss-free" vector graphics
in plain old CSS. Thanks to gradient support in backgrounds in CSS3.
%end
or
%comment
Using modern browser such as Firefox, Chrome and Safari you can
now theme your slide shows using using "loss-free" vector graphics
in plain old CSS. Thanks to gradient support in backgrounds in CSS3.
%end
Note: As a shortcut using a single %end
directive (that is, without a leading %begin
)
will skip everything until the end of the document.
For more about filters see the textutils
gem.
Configuration - Converters
The Markdown wrapper lets you configure different converter methods
for each markdown engine. By default
the converter method <lib>_to_html
gets used
(for example, the default converter for kramdown
is kramdown_to_html
).
Example:
pandoc-ruby:
converter: pandoc-ruby-to-s5
Install
Just install the gem:
$ gem install markdown
Real World Usage
The slideshow
(also known as Slide Show (S9)) gem
that lets you create slide shows
and author slides in plain text using a wiki-style markup language that's easy-to-write and easy-to-read.
Alternatives
multi_markdown
gem by Hal Brodigan (aka postmodern)markdown_meta
gem by Charles Oliver Nutter (aka headius)
License
The markdown
scripts are dedicated to the public domain.
Use it as you please with no restrictions whatsoever.
Questions? Comments?
Send them along to the Free Web Slide Show Alternatives (S5, S6, S9, Slidy And Friends) Forum/Mailing List. Thanks!