Guest User

Untitled

a guest
May 25th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. require 'rubygems'
  2. require 'uv'
  3. require 'rdiscount'
  4. require 'hpricot'
  5.  
  6. desc "Show avaliable sintaxes"
  7. task :sintaxes do
  8. puts Uv.syntaxes.join("\n")
  9. end
  10.  
  11. desc "Show avaliable themes"
  12. task :themes do
  13. puts Uv.themes.join("\n")
  14. end
  15.  
  16. desc "Copy css theme files"
  17. task :copy_themes do
  18. Uv.copy_files "xhtml", ARGV[1] || File.dirname(__FILE__)
  19. end
  20.  
  21. desc "Convert to Markdown and highlight"
  22. task :convert do
  23. file_name = ARGV[1]
  24. new_file_name = "#{file_name}.html"
  25.  
  26. input = File.read(file_name)
  27. output = File.new(new_file_name, "w")
  28.  
  29. html = Markdown.new(input).to_html
  30. doc = Hpricot(html)
  31.  
  32. nodes = doc.search("pre > code")
  33.  
  34. nodes.each do |node|
  35. inner_text = node.inner_text.sub(/\s*:::([\w-]+)\s*$/,'')
  36. language = $1 || "javascript"
  37.  
  38. puts "Found <pre> with #{language} code"
  39.  
  40. themed = Uv.parse(inner_text, "xhtml", language, false, "twilight")
  41. node.parent.swap(themed)
  42. end
  43.  
  44. output << doc
  45. output.flush and output.close
  46. puts "=> Generated #{new_file_name}"
  47. end
Add Comment
Please, Sign In to add comment