class UltraVioletFilter < Nanoc3::Filter
identifier :ultraviolet
def run(content, params={})
require 'rubygems'
require 'uv'
code_rule = %r{((.+?)
)}m
new_content=content.gsub(code_rule) do |full|
@lang, @filename, @code = $2, $4, $5
if @lang =~ /^(zsh|bash|sh|csh|shell)$/
@lang='shell-unix-generic'
end
@codeprefix=''
@codesuffix=''
if not @filename.nil? and @filename != ""
create_file_for_code
end
@codeprefix+
Uv.parse(@code, "xhtml", @lang, false, @config[:ultraviolet_theme])+
@codesuffix
end
return new_content
end
private
def create_file_for_code
# Create a plaintext file version for download.
webpath = @item.path
url = webpath + 'code/' + @filename
@codeprefix=%{