├── Rakefile ├── lib ├── mustache │ └── plugins │ │ └── syntax_highlighter.rb └── albino.rb ├── example.rb ├── LICENSE └── README.md /Rakefile: -------------------------------------------------------------------------------- 1 | 2 | desc "List the available lexers" 3 | task :lexers do 4 | $LOAD_PATH.unshift 'lib' 5 | require 'mustache/plugins/syntax_highlighter' 6 | 7 | lexers = 8 | Mustache::Plugins::SyntaxHighlighter.instance_methods.grep(/highlight/) 9 | puts 'Lexers:' 10 | puts lexers.map { |lexer| ' ' + lexer.sub('highlight_', '') } 11 | end 12 | -------------------------------------------------------------------------------- /lib/mustache/plugins/syntax_highlighter.rb: -------------------------------------------------------------------------------- 1 | require 'albino' 2 | 3 | class Mustache 4 | module Plugins 5 | module SyntaxHighlighter 6 | LEXERS = %w( ruby js python scheme ) 7 | 8 | LEXERS.each do |lexer| 9 | define_method "highlight_#{lexer}" do 10 | lambda { |text| render Albino.new(text, lexer) } 11 | end 12 | end 13 | end 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /example.rb: -------------------------------------------------------------------------------- 1 | require 'mustache' 2 | require 'mustache/plugins/syntax_highlighter' 3 | 4 | class Dude < Mustache 5 | include Mustache::Plugins::SyntaxHighlighter 6 | 7 | def name 8 | "Chris" 9 | end 10 | end 11 | 12 | Dude.template = <