class Lookbook::CodeHighlighter
def call
def call coder = HTMLEntities.new decoded_source = coder.decode(source) language = opts.fetch(:language, "ruby") formatter = LookbookFormatter.new(language: language, **opts) lexer = Rouge::Lexer.find(language.to_s) || Rouge::Lexer.find("plaintext") formatter.format(lexer.lex(decoded_source)).html_safe end
def initialize(source, opts = {})
def initialize(source, opts = {}) @source = source.to_s @opts = opts end
def opts
def opts (@opts.is_a?(String) || @opts.is_a?(Symbol)) ? {language: @opts} : @opts.to_h end