module Rouge::Plugins::Redcarpet

def block_code(code, language)

def block_code(code, language)
  lexer =
    begin
      Lexer.find_fancy(language, code)
    rescue Guesser::Ambiguous => e
      e.alternatives.first
    end
  lexer ||= 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! %r/^    /, "\t"
  end
  formatter = rouge_formatter(lexer)
  formatter.format(lexer.lex(code))
end

def rouge_formatter(lexer)

override this method for custom formatting behavior
def rouge_formatter(lexer)
  Formatters::HTMLLegacy.new(:css_class => "highlight #{lexer.tag}")
end