Sha256: 25ea0acbafd910224df8399bf29c4ed227072b895a9943cce94b840c35aa7d6b
Contents?: true
Size: 939 Bytes
Versions: 3
Compression:
Stored size: 939 Bytes
Contents
# this file is not require'd from the root. To use this plugin, run: # # require 'rouge/plugins/redcarpet' # this plugin depends on redcarpet require 'redcarpet' # stdlib require 'cgi' module Rouge module Plugins module Redcarpet def block_code(code, language) name, opts = language.split('?') # parse the options hash from a cgi-style string opts = CGI.parse(opts || '').map do |k, vals| [ k.to_sym, vals.empty? ? true : vals[0] ] end opts = Hash[opts] lexer_class = case name when 'guess', nil lexer = Lexer.guess(:source => code, :mimetype => opts[:mimetype]) when String Lexer.find(name) end || Lexers::Text lexer = lexer_class.new(opts) formatter = Formatters::HTML.new(:css_class => "highlight #{lexer_class.tag}") Rouge.highlight(code, lexer, formatter) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rouge-0.0.12 | lib/rouge/plugins/redcarpet.rb |
rouge-0.0.11 | lib/rouge/plugins/redcarpet.rb |
rouge-0.0.10 | lib/rouge/plugins/redcarpet.rb |