Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'rubygems'
- require 'uv'
- require 'rdiscount'
- require 'hpricot'
- desc "Show avaliable sintaxes"
- task :sintaxes do
- puts Uv.syntaxes.join("\n")
- end
- desc "Show avaliable themes"
- task :themes do
- puts Uv.themes.join("\n")
- end
- desc "Copy css theme files"
- task :copy_themes do
- Uv.copy_files "xhtml", ARGV[1] || File.dirname(__FILE__)
- end
- desc "Convert to Markdown and highlight"
- task :convert do
- file_name = ARGV[1]
- new_file_name = "#{file_name}.html"
- input = File.read(file_name)
- output = File.new(new_file_name, "w")
- html = Markdown.new(input).to_html
- doc = Hpricot(html)
- nodes = doc.search("pre > code")
- nodes.each do |node|
- inner_text = node.inner_text.sub(/\s*:::([\w-]+)\s*$/,'')
- language = $1 || "javascript"
- puts "Found <pre> with #{language} code"
- themed = Uv.parse(inner_text, "xhtml", language, false, "twilight")
- node.parent.swap(themed)
- end
- output << doc
- output.flush and output.close
- puts "=> Generated #{new_file_name}"
- end
Add Comment
Please, Sign In to add comment