Module: Webby::Helpers::UltraVioletHelper
- Defined in:
- lib/webby/helpers/ultraviolet_helper.rb
Instance Method Summary collapse
-
#uv(*args, &block) ⇒ Object
The
uvmethod applies syntax highlighting to source code embedded in a webpage.
Instance Method Details
#uv(*args, &block) ⇒ Object
The uv method applies syntax highlighting to source code embedded
in a webpage. The UltraViolet highlighting engine is used for the HTML
markup of the source code. The page sections to be highlighted are given
as blocks of text to the uv method.
Options can be passed to the UltraViolet engine via attributes in the
uv method.
<% uv( :lang => "ruby", :line_numbers => true ) do -%>
# Initializer for the class.
def initialize( string )
@str = string
end
<% end -%>
The supported UltraViolet options are the following:
:lang : the language to highlight (ruby, c, html, ...)
[defaults to 'ruby']
:line_numbers : true or false [defaults to false]
:theme : see list of available themes in ultraviolet
[defaults to 'mac_classic']
The defaults can be overridden for an entire site by changing the SITE.uv options hash in the Rakefile.
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/webby/helpers/ultraviolet_helper.rb', line 49 def uv( *args, &block ) opts = args.last.instance_of?(Hash) ? args.pop : {} text = capture_erb(&block) return if text.empty? defaults = ::Webby.site.uv lang = opts.getopt(:lang, defaults.lang) line_numbers = opts.getopt(:line_numbers, defaults.line_numbers) theme = opts.getopt(:theme, defaults.theme) out = %Q{<div class="UltraViolet">\n} out << Uv.parse(text, "xhtml", lang, line_numbers, theme) out << %Q{\n</div>} # put some guards around the output (specifically for textile) out = _guard(out) concat_erb(out, block.binding) return end |