class Makeup::SyntaxHighlighter
Public Class Methods
lexer(path, code = nil, mode = nil)
click to toggle source
# File lib/makeup/syntax_highlighter.rb, line 51 def self.lexer(path, code = nil, mode = nil) lexer = Linguist::Language.detect(path, code, mode) lexer && (lexer.aliases.first || lexer.name) end
new()
click to toggle source
# File lib/makeup/syntax_highlighter.rb, line 33 def initialize @entities = HTMLEntities.new end
Public Instance Methods
highlight(path, code, options = {})
click to toggle source
# File lib/makeup/syntax_highlighter.rb, line 37 def highlight(path, code, options = {}) options[:lexer] ||= lexer(path, code) lexer = Pygments::Lexer.find(options[:lexer]) return unknown_lexer(code) unless lexer code = Pygments.highlight(code, highlight_options(options)) CodeBlock.new(lexer.aliases.first, code) rescue MentosError unknown_lexer(code) end
lexer(path, code = nil, mode = nil)
click to toggle source
# File lib/makeup/syntax_highlighter.rb, line 47 def lexer(path, code = nil, mode = nil) self.class.lexer(path, code, mode) end
Private Instance Methods
highlight_options(options = {})
click to toggle source
# File lib/makeup/syntax_highlighter.rb, line 62 def highlight_options(options = {}) options[:options] ||= {} options[:options][:nowrap] = true options[:options][:encoding] ||= "utf-8" options end
unknown_lexer(code)
click to toggle source
# File lib/makeup/syntax_highlighter.rb, line 58 def unknown_lexer(code) CodeBlock.new(nil, @entities.encode(code)) end