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
[ show source ]
# File lib/rote/filters/syntax.rb, line 41
41: def initialize(macro_re = MACRO_RE)
42: super([],macro_re)
43: end
Public Instance methods
Implementation of the code macro.
[ show source ]
# 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