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.

Methods
Public Class methods
new(macro_re = MACRO_RE)
    # File lib/rote/filters/syntax.rb, line 41
41:       def initialize(macro_re = MACRO_RE)
42:         super([],macro_re)
43:       end
Public Instance methods
macro_code(lang,body,raw)

Implementation of the code macro.

    # File lib/rote/filters/syntax.rb, line 46
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