Method: Rouge.highlight

Defined in:
lib/rouge.rb

.highlight(text, lexer, formatter, &b) ⇒ Object

Highlight some text with a given lexer and formatter.

Examples:

Rouge.highlight('@foo = 1', 'ruby', 'html')
Rouge.highlight('var foo = 1;', 'js', 'terminal256')

# streaming - chunks become available as they are lexed
Rouge.highlight(large_string, 'ruby', 'html') do |chunk|
  $stdout.print chunk
end

19
20
21
22
23
24
25
26
27
# File 'lib/rouge.rb', line 19

def highlight(text, lexer, formatter, &b)
  lexer = Lexer.find(lexer) unless lexer.respond_to? :lex
  raise "unknown lexer #{lexer}" unless lexer

  formatter = Formatter.find(formatter) unless formatter.respond_to? :format
  raise "unknown formatter #{formatter}" unless formatter

  formatter.format(lexer.lex(text), &b)
end