module Kramdown::SyntaxHighlighter::Rouge

Public Class Methods

call(converter, text, lang, type, _unused_opts) click to toggle source
# File lib/nesta-contentfocus-extensions/kramdown.rb, line 13
def self.call(converter, text, lang, type, _unused_opts)
  opts = converter.options[:syntax_highlighter_opts].dup
  lexer = ::Rouge::Lexer.find_fancy(lang || opts[:default_lang], text)
  return nil unless lexer
  if type == :span
    opts[:wrap] = false
    opts[:line_numbers] = false
  end
  formatter = (opts.delete(:formatter) || ::Rouge::Formatters::HTML).new(opts)
  formatter.format(lexer.lex(text))
end