class Pirka::Highlighter::Middleware::Rouge

Constants

FORMATTER

Public Class Methods

new(highlighter, formatter: FORMATTER) click to toggle source
# File lib/pirka/highlighter.rb, line 18
def initialize(highlighter, formatter: FORMATTER)
  @highlighter = highlighter
  @formatter = formatter
end

Public Instance Methods

markup(element, lang) click to toggle source
# File lib/pirka/highlighter.rb, line 23
def markup(element, lang)
  @highlighter.markup(element, lang)
  lexer = ::Rouge::Lexer.find(lang) || ::Rouge::Lexer.guess(source: element.content)
  unless lexer
    warn _("Cannot find lexer for %{lang}") % {lang: lang}
    return
  end
  element.inner_html = @formatter.format(lexer.lex(element.content)) # @todo Consider the case `element` has descendants
end