blob: f27511b05e0ad8e107b9ca1df123b108decff8bc [file] [log] [blame]
# -*- coding: utf-8 -*- #
# this file is not require'd from the root. To use this plugin, run:
#
# require 'rouge/plugins/redcarpet'
module Rouge
module Plugins
module Redcarpet
def block_code(code, language)
lexer = Lexer.find_fancy(language, code) || Lexers::PlainText
# XXX HACK: Redcarpet strips hard tabs out of code blocks,
# so we assume you're not using leading spaces that aren't tabs,
# and just replace them here.
if lexer.tag == 'make'
code.gsub! /^ /, "\t"
end
formatter = rouge_formatter(lexer)
formatter.format(lexer.lex(code))
end
# override this method for custom formatting behavior
def rouge_formatter(lexer)
Formatters::HTML.new(:css_class => "highlight #{lexer.tag}")
end
end
end
end