Created: 2011-07-18 19:00
Updated: 2019-01-04 22:33



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 and albino dependencies
  • Using pygments.rb wrapper instead

GitHub Flavored Markdown Extensions Supported:

  • Fenced codeblocks

     var awesome = new BadassClass (param) {
     	return "string"
  • Strikethru support

  • 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 =, *options).to_html 

  • table support

    First Header Second Header
    Content Cell Content Cell
    Content Cell Content Cell

Why NodeJS and not ruby?

I have future plans for this in a node project. And because it's my party.


Lots. Ungodly heaps of requirements.

  • NodeJS and NPM if you plan on using the node wrapper.

  • Ruby & Rubygems

  • Various gems

     $ gem install redcarpet pygments.rb


  1. Clone this repo locally
  2. cd to the repo
  3. [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:

  1. docter: the nodejs wrapper.
  2. gfm: the ruby redcarpet/pygments wrapper.

Both of these executables take markdown input through STDIN and output formatted HTML on STDOUT.

Using with

  1. 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).
  2. Optionally, add the ghf_marked.css (in this repo) to Marked's custom CSS list.

Other styles

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>'
	def block_code(code, language)
		Pygments.highlight(code, :lexer => language, :options => {:encoding => 'utf-8'})
Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more