module Lookbook::CodeFormatter

def beautify(source, **opts)

def beautify(source, **opts)
  language = opts[:language] || "html"
  source = source.strip
  result = language.downcase == "html" ? HtmlBeautifier.beautify(source) : source
  result.strip.html_safe
end

def highlight(source, **opts)

def highlight(source, **opts)
  coder = HTMLEntities.new
  source = coder.decode source
  language = opts[:language] || "ruby"
  formatter = Formatter.new(**opts)
  lexer = Rouge::Lexer.find(language.to_s) || Rouge::Lexer.find("plaintext")
  formatter.format(lexer.lex(source)).html_safe
end