class Rote::Filters::Syntax
Page
filter that supports syntax highlighting for Ruby code, XML and YAML via the (extensible) Syntax
(syntax.rubyforge.org/) library. Code is expected to be enclosed by the code
macro:
#:code#ruby# def amethod(arg) puts arg end #:code#
Where the macro argument may be ‘ruby’, ‘xml’, ‘yaml’, or a custom identifier registered (with Syntax
) for a custom highlighter.
The macro output will resemble:
<pre class='#{lang}'><code class=#{lang}'> ... </code></pre>
Syntax
uses <span> tags for highlighting, with CSS classes used to apply formatting. See syntax.rubyforge.org/chapter-2.html for a list of recognised classes.
Public Class Methods
new(macro_re = MACRO_RE)
click to toggle source
Calls superclass method
Rote::Filters::MacroFilter::new
# File lib/rote/filters/syntax.rb 41 def initialize(macro_re = MACRO_RE) 42 super([],macro_re) 43 end
Public Instance Methods
macro_code(lang,body,raw)
click to toggle source
Implementation of the code
macro.
# File lib/rote/filters/syntax.rb 46 def macro_code(lang,body,raw) 47 converter = ::Syntax::Convertors::HTML.for_syntax(lang) 48 "<pre class='#{lang}'><code class='#{lang}'>#{converter.convert(body,false)}</code></pre>" 49 end