Check out chjj/marked if you're looking for a good javascript markdown parser. Sorry!
Uses github's own redcarpet library to provide accurate markdown previews in your local editor. This screenshot shows Marked using docter
as the markdown processor.
- Updated styles to match new GitHub styles
- Updated gfm wrapper for
Redcarpet
2 - Removed
nokigiri
andalbino
dependencies - Using pygments.rb wrapper instead
GitHub Flavored Markdown Extensions Supported:
-
Fenced codeblocks
var awesome = new BadassClass (param) { return "string" }
-
Strikethrusupport -
Syntax highlighting via
pygments
require 'redcarpet' def markdown(text) options = [:fenced_code,:generate_toc,:hard_wrap,:no_intraemphasis,:strikethrough,:gh_blockcode,:autolink,:xhtml,:tables] html = Redcarpet.new(text, *options).to_html syntax_highlighter(html) end
-
table support
First Header Second Header Content Cell Content Cell Content Cell Content Cell
I have future plans for this in a node project. And because it's my party.
Lots. Ungodly heaps of requirements.
-
Various gems
$ gem install redcarpet pygments.rb
- Clone this repo locally
cd
to the repo[sudo] npm -g install
This will install the package into your global node_modules
dir (usually /usr/local/lib/node_modules
). It will also symbolically link two executables into your path:
docter
: the nodejs wrapper.gfm
: the ruby redcarpet/pygments wrapper.
Both of these executables take markdown input through STDIN and output formatted HTML on STDOUT.
Using with Marked.app
- Set the markdown processor to either of the linked executables. If you don't plan on doing anything with the node wrapper, I would suggest using the straight ruby wrapper (
gfm
). - Optionally, add the
ghf_marked.css
(in this repo) to Marked's custom CSS list.
Uncomment the doc_header()
function in github-flavored-markdown.rb
and include any of the built-in styles from pygments. Replace :style => 'vs'
with one of the styles in the comment block.
Outputting the emacs
style to the document header:
class HTMLwithPygments < Redcarpet::Render::XHTML
def doc_header()
'<style>' + Pygments.css('.highlight',:style => 'emacs') + '</style>'
end
def block_code(code, language)
Pygments.highlight(code, :lexer => language, :options => {:encoding => 'utf-8'})
end
end