From 9f128f8fed549b555ee910eaac337dfbe4fc533f Mon Sep 17 00:00:00 2001 From: hotovson Date: Sun, 6 Mar 2011 19:58:35 +0100 Subject: [PATCH] Added Ace::PygmentsFilter for syntax highlighting via pygments.org's pygmentize. --- lib/ace/filters/pygments.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 lib/ace/filters/pygments.rb diff --git a/lib/ace/filters/pygments.rb b/lib/ace/filters/pygments.rb new file mode 100644 index 0000000..33a4a61 --- /dev/null +++ b/lib/ace/filters/pygments.rb @@ -0,0 +1,19 @@ +# encoding: utf-8 + +require "ace/filters" +require "nokogiri" +require "albino" + +class PygmentsFilter < Filter + def call(item, content) + puts 'PygmentsFilter ************************' + doc = Nokogiri::HTML(content) + doc.css('pre').each do |pre| + puts "\nWARNING: '#{item.original_path}' - element
 not contains attribute 'lang'\n" if pre['lang'].nil?
+      puts "\nWARNING: '#{item.original_path}' - attribute 'lang' not contains any value\n" if  !pre['lang'].nil? && pre['lang'].empty?
+      puts "*** Syntax highlight using '#{pre['lang']}' lexer" unless pre['lang'].nil? || pre['lang'].empty?
+      pre.replace Albino.colorize(pre.content, pre['lang']) unless pre['lang'].nil? || pre['lang'].empty?
+    end
+    doc
+  end
+end