| Index: src/site/_plugins/pygments_cache.rb
|
| diff --git a/src/site/_plugins/pygments_cache.rb b/src/site/_plugins/pygments_cache.rb
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..06ae22323585214ccb2510ce49dfbaecbf23db73
|
| --- /dev/null
|
| +++ b/src/site/_plugins/pygments_cache.rb
|
| @@ -0,0 +1,26 @@
|
| +require 'fileutils'
|
| +require 'digest/md5'
|
| +
|
| +PYGMENTS_CACHE_DIR = File.expand_path('../../_cache', __FILE__)
|
| +FileUtils.mkdir_p(PYGMENTS_CACHE_DIR)
|
| +
|
| +Jekyll::HighlightBlock.class_eval do
|
| + def render_pygments(context, code)
|
| + if defined?(PYGMENTS_CACHE_DIR)
|
| + path = File.join(PYGMENTS_CACHE_DIR, "#{@lang}-#{Digest::MD5.hexdigest(code)}.html")
|
| + if File.exist?(path)
|
| + highlighted_code = File.read(path)
|
| + else
|
| + highlighted_code = Albino.new(code, @lang).to_s(@options)
|
| + File.open(path, 'w') {|f| f.print(highlighted_code) }
|
| + end
|
| + else
|
| + highlighted_code = Albino.new(code, @lang).to_s(@options)
|
| + end
|
| + output = add_code_tags(highlighted_code, @lang)
|
| + output = context["pygments_prefix"] + output if context["pygments_prefix"]
|
| + output = output + context["pygments_suffix"] if context["pygments_suffix"]
|
| + output
|
| + end
|
| +
|
| +end
|
|
|