Skip to content

Instantly share code, notes, and snippets.

@simonc
Created June 3, 2013 00:30
Show Gist options
  • Save simonc/5695507 to your computer and use it in GitHub Desktop.
Save simonc/5695507 to your computer and use it in GitHub Desktop.
Redcarpet+Rouge converter for Jekyll
# _plugins/redcarpet_rouge.rb
require 'redcarpet'
require 'rouge'
require 'rouge/plugins/redcarpet'
module Jekyll
class RedcarpetRouge < Converter
safe true
priority :high
def matches(ext)
ext =~ /^.md(own)?$/i
end
def output_ext(ext)
".html"
end
def initialize(config)
super
@redcarpet_extensions = {}
@config['redcarpet']['extensions'].each { |e| @redcarpet_extensions[e.to_sym] = true }
@redcarpet_extensions = @config['redcarpet']['extensions'].each_with_object({}) do |e, hash|
hash[e.to_sym] = true
end
@renderer ||= Class.new(Redcarpet::Render::HTML) do
include Rouge::Plugins::Redcarpet
end
end
def convert(content)
@renderer.send :include, Redcarpet::Render::SmartyPants if @redcarpet_extensions[:smart]
markdown = Redcarpet::Markdown.new(@renderer.new(@redcarpet_extensions), @redcarpet_extensions)
markdown.render(content)
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment