Skip to content

Instantly share code, notes, and snippets.

@tkfm-yamaguchi
Forked from Takazudo/gfm.rb
Created September 6, 2012 05:48
Show Gist options
  • Save tkfm-yamaguchi/3651809 to your computer and use it in GitHub Desktop.
Save tkfm-yamaguchi/3651809 to your computer and use it in GitHub Desktop.
GitHub Flavored Markdown parser for use with Jekyll and Marked.app
#!/usr/bin/env ruby
require 'rubygems'
require 'redcarpet'
require 'pygments.rb'
class HTMLwithPygments < Redcarpet::Render::HTML
def block_code(code, language)
Pygments.highlight(code, :lexer => language.to_sym, :options => {
:encoding => 'utf-8'
})
rescue RubyPython::PythonError
STDERR.puts "sytle for #{language} was not found."
end
end
def from_markdown(text)
markdown = Redcarpet::Markdown.new(HTMLwithPygments,
:fenced_code_blocks => true,
:no_intra_emphasis => true,
:autolink => true,
:strikethrough => true,
:lax_html_blocks => true,
:superscript => true,
:hard_wrap => false,
:tables => true,
:xhtml => false)
text.gsub!(/\{\{( *)?"(.*?)"\}\}/, '\1\2')
text.gsub!(/^\{% highlight (.+?) ?%\}(.*?)^\{% endhighlight %\}/m) do |match|
Pygments.highlight($2, :lexer => $1, :options => {:encoding => 'utf-8'})
end
markdown.render(text)
end
puts from_markdown(ARGF.read)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment