Markdown Implementations
Gmas / Ruby.markdown Forked from avdi/Ruby.markdown. Created Feb 17, 2014. Star 0 Fork 0; Star Code Revisions 1. What would you like to do? The Markdown Guide is a free and open-source reference guide that explains how to use Markdown, the simple and easy-to-use markup language you can use to format virtually any document. Get Started DigitalOcean App Platform, a new PaaS that gets your apps to market, faster. The RDoc Markdown parser has the following built-in behaviors that cannot be disabled. Underscores embedded in words are never interpreted as emphasis. (While the markdown dingus emphasizes in-word underscores, neither the Markdown syntax nor MarkdownTest mention this behavior.) For HTML output, RDoc always auto-links bare URLs. Some styles failed to load. 😵 Please try reloading this page. I use markdown for virtually any work I do. I actually wrote then entire Hello Rails course in markdown. This blog's post editor is based in markdown as well. It's safe to say I love it over any other type of word editor out there. Adding support for it in a Ruby on Rails app is quite trivial thanks to a few gems out there.
Either direct or other lists
- stackoverflow Question 11 lists some and references
Specific implementations
In Python universe, some packages. There are more.
- Markdown with its features
In Perl, there is a package:
Wikipedia has a list that is reproduced here, so that we can add/remove columns and Markdown processors.
| Name | Language | Type | Description | Official site |
|---|---|---|---|---|
| mmd2pdf | Autoit | - | MultiMarkdown to PDF converter | google code |
| md2html.awk | Awk | Converter | Markdown to Html | bitbucket |
| apache-mod-sundown | C | Apache HTTPd module | Using Sundown C library | github |
| Discount | C | Library and HTML converter | - | site |
| libpandoc | C | Multiconverter | - | github |
| peg-multimarkdown | C | - | Using parsing expressing grammar (PEG) | github, github fork |
| peg-markdown | C | - | Using parsing expressing grammar (PEG) | github |
| PEG Markdown Highlight | C | Syntax highlighter | Using parsing expressing grammar (PEG) | site |
| Sundown | C | - | - | github |
| libupskirt | C | Parser | Fork of libsoldout | github |
| libsoldout | C | Parser | Simple parser only | site |
| Doxygen | C++ | Sourcecode documentation generator | Doxygen supports Markdown with extra features | site |
| Cpp-Markdown | C++ | Generator | Markdown to HTML | sourceforge |
| RStudio | C++ | IDE for R (programming language) | C++ wrapper for sundown | site |
| Qarkdown | C++ | Editor (Qt) | Simple crossplatform Markdown editor using Qt | site |
| MarkdownSharp | C# | - | - | google code |
| MoonShine | C# | - | - | github |
| Sundown.net | C# | - | - | github |
| markdown-clj | Clojure | Converter | Generates HTML from Markdown, compiles to both Clojure and ClojureScript | github |
| Blackfriday | Go | - | - | github |
| Goskirt | Go | - | - | github |
| MaTeS | Go | Converter to HTML5 | Creates web pages or presentation slides. Supports citation, tables, math and charts. | site |
| Upskirt.go | Go | - | - | github |
| Pandoc | Haskell | Converter (Multiformat) | - | site |
| Sundown HS | Haskell | - | - | github |
| MarkdownJ | Java | - | - | google code |
| pegdown | Java | - | - | github |
| MarkdownPapers | Java | - | Implementation based on a JavaCC parser | site |
| Txtmark | Java | - | - | github |
| Markdown4j | Java | - | Extensible markdown java implementation | google code |
| Dillinger | JavaScript | Editor | 'WYSIWYM' editor | site, github |
| uedit | JavaScript | Editor | 'WYSIWYM' editor | github |
| node-discount | JavaScript | - | node.js binding for Discount | github |
| markdown-js | JavaScript | - | Parser for JavaScript/node.js | github |
| marked | JavaScript | - | A fast markdown parser | github |
| PageDown | JavaScript | Webeditor and viewer | Used by Stack Exchange sites | google code and github |
| PageDown-Bootstrap | JavaScript | Webeditor and viewer | Fork of PageDown which uses the Twitter Bootstrap template framework | github |
| Showdown | JavaScript | Webeditor and viewer | - | site/github |
| markdown.pioul.fr | JavaScript | Webeditor and viewer | Minimalist Online Markdown Editor | site |
| TextDown | JavaScript | Editor plugin for Chrome | - | chrome store/github |
| texts.js | JavaScript | Node.js module | PEG-based grammar, intermediate format in JSON | github |
| markdown.lua | Lua | - | - | luaforge |
| Lunamark | Lua | Converter | HTML and LaTeX converter | github |
| lua-discount | Lua | Binding | - | site |
| node-multimarkdown | Node.js | Parser | Native MultiMarkdown extension for Node.js | github |
| RobotSkirt | Node.js | - | - | github |
| node-markdown | Node.js | - | Parse Markdown syntax with node.js | github |
| gfm | Node.js | - | The port of Showdown used on github.com | github |
| Markdown | Perl 6 | Parser | Markdown parser in Perl 6 | github |
| Markdown.pl | Perl | Converter to (X)HTML | Official author perl markdown implementation | site |
| MultiMarkdown | Perl | Converter | Markdowns originals MultiMarkdown superset | site, github |
| text-markdown | Perl | Converter to (X)HTML | - | github |
| markdown-oo-php | PHP | Converter to (X)HTML | Object-oriented implementation of Markdown | github |
| markdown-handler | PHP | Converter to (X)HTML | github | |
| PHP Markdown | PHP | Converter to HTML | - | site |
| PHP Markdown Extra | PHP | Converter to HTML | Markdown with extra options | site |
| PHP Markdown Extended | PHP | Converter to various formats (HTML, MAN, extensible) | Markdown extended syntax | github |
| PHP Markdown Viewer | PHP | Viewer | Wrapper for PHP Markdown | site |
| secondcrack | PHP | Blog | A static-file Markdown blogging engine | github, site |
| qlmarkdown | Objective C | - | A Mac OS X Quicklook extension that uses Discount. | github |
| Python-Markdown | Python | - | A implementation with various extensions such as tables and ignoring internal bold/italic markings. | site |
| Misaka | Python | Binding | Python binding for Sundown | site |
| BlueCloth | Ruby | - | - | site |
| BlueFeather | Ruby | - | - | site |
| ffi-sundown | Ruby | - | - | github |
| gimli | Ruby | Markdown to PDF | - | gimli |
| kramdown | Ruby | Library | - | rubyforge |
| md2man | Ruby | Converter | Markdown to manpage | github |
| markdownr.com | Ruby | Webviewer and Editor | A nifty markdown notepad | site/github |
| Maruku | Ruby | Interpreter | - | github |
| RDiscount | Ruby | Binding | Ruby binding for Discount | github |
| Redcarpet | Ruby | Binding | Ruby binding for Sundown | github |
| Knockoff | Scala | - | - | site |
| Actuarius | Scala | - | - | site |
| Lowdown | Chicken Scheme | Parser library (egg) | Can emit SXML | chicken wiki, Bitbucket |
| markdown.bash | Bash | Converter | Markdown to Html | Github |
Alternative lightweight markup formats
RDoc::Markdown as described by the markdownsyntax.
To choose Markdown as your only default formatsee Saved Options atRDoc::Options for instructions on setting up a.doc_options file to store your project default.
Usage
Here is a brief example of using this parse to read a markdown file byhand.
Extensions
The following markdown extensions are supported by the parser, but not allare used in RDoc output by default.
RDoc
The RDocMarkdownparser has the following built-in behaviors that cannot be disabled.
Underscores embedded in words are never interpreted as emphasis. (While themarkdowndingus emphasizes in-word underscores, neither the Markdown syntax nor MarkdownTest mention thisbehavior.)
For HTML output, RDoc always auto-links bareURLs.
Break on Newline
The #break_on_newlineextension converts all newlines into hard line breaks as in Github FlavoredMarkdown. This extension is disabled by default.
CSS
The css extension enables CSSblocks to be included in the output, but they are not used for any built-inRDoc output format. This extension is disabledby default.
Example:
Definition Lists
The #definition_listsextension allows definition lists using the PHPMarkdown Extra syntax, but only one label and definition are supportedat this time. This extension is enabled by default.
Example:
Produces:
A small furry mammal that seems to sleep a lot
A little insect that is known to enjoy picnics
Strike
Example:
Produces:
This is ~~striked~~.
Github
The github extension enables apartial set of Github FlavoredMarkdown. This extension is enabled by default.
Supported github extensions include:
Fenced code blocks
Use ``` around a block of code instead of indenting it fourspaces.
Syntax highlighting
Use ``` ruby as the start of a code fence to add syntaxhighlighting. (Currently only ruby syntax is supported).
HTML
Ruby Markdown Download
Enables raw HTML to be included in the output. This extension is enabled bydefault.
Example:
Notes
The notes extension enablesfootnote support. This extension is enabled by default.
Example:
Produces:
Here is some text1including an inline footnote 2
Limitations
Ruby Markdownify
Link titles are not used
Footnotes are collapsed into a single paragraph
Author
This markdown parser is a port to kpeg from peg-markdown by JohnMacFarlane.
It is used under the MIT license:
Permission is hereby granted, free of charge, to any person obtaining acopy of this software and associated documentation files (the “Software”),to deal in the Software without restriction, including without limitationthe rights to use, copy, modify, merge, publish, distribute, sublicense,and/or sell copies of the Software, and to permit persons to whom theSoftware is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included inall copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISINGFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHERDEALINGS IN THE SOFTWARE.
The port to kpeg was performed by Eric Hodel and Evan Phoenix
1 With the footnotetext down at the bottom

Ruby Markdown Game
2 for short footnotes
