913fa105c4
I think it's probably better to ship plugins with themes to make it easier to update them. 2. Improved 'install' rake task and made nicer output
31 lines
1.0 KiB
Ruby
31 lines
1.0 KiB
Ruby
#
|
|
# Author: Raimonds Simanovskis, http://blog.rayapps.com/
|
|
# Source URL: https://github.com/rsim/blog.rayapps.com/blob/master/_plugins/pygments_cache_patch.rb
|
|
#
|
|
|
|
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
|