diff --git a/Gemfile b/Gemfile index cabd07f..e4f3029 100644 --- a/Gemfile +++ b/Gemfile @@ -6,6 +6,7 @@ gem 'jekyll' group :jekyll_plugins do gem 'jekyll-3rd-party-libraries' gem 'jekyll-archives-v2' + gem 'jekyll-cache-bust' gem 'jekyll-email-protect' gem 'jekyll-feed' gem 'jekyll-get-json' diff --git a/Gemfile.lock b/Gemfile.lock index 54a7c51..c9f5040 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -144,6 +144,8 @@ GEM jekyll-archives-v2 (0.0.6) activesupport jekyll (>= 3.6, < 5.0) + jekyll-cache-bust (0.0.1) + jekyll (>= 3.6, < 5.0) jekyll-email-protect (1.1.0) jekyll-feed (0.17.0) jekyll (>= 3.7, < 5.0) @@ -299,6 +301,7 @@ DEPENDENCIES jekyll jekyll-3rd-party-libraries jekyll-archives-v2 + jekyll-cache-bust jekyll-email-protect jekyll-feed jekyll-get-json diff --git a/_config.yml b/_config.yml index 1779922..969c043 100644 --- a/_config.yml +++ b/_config.yml @@ -212,6 +212,7 @@ keep_files: plugins: - jekyll-3rd-party-libraries - jekyll-archives-v2 + - jekyll-cache-bust - jekyll-email-protect - jekyll-feed - jekyll-get-json diff --git a/_plugins/cache-bust.rb b/_plugins/cache-bust.rb deleted file mode 100644 index 94d82d2..0000000 --- a/_plugins/cache-bust.rb +++ /dev/null @@ -1,51 +0,0 @@ -# based on https://distresssignal.org/busting-css-cache-with-jekyll-md5-hash -# https://gist.github.com/BryanSchuetz/2ee8c115096d7dd98f294362f6a667db -module Jekyll - module CacheBust - class CacheDigester - require 'digest/md5' - require 'pathname' - - attr_accessor :file_name, :directory - - def initialize(file_name:, directory: nil) - self.file_name = file_name - self.directory = directory - end - - def digest! - [file_name, '?', Digest::MD5.hexdigest(file_contents)].join - end - - private - - def directory_files_content - target_path = File.join(directory, '**', '*') - Dir[target_path].map{|f| File.read(f) unless File.directory?(f) }.join - end - - def file_content - local_file_name = file_name.slice((file_name.index('assets/')..-1)) - File.read(local_file_name) - end - - def file_contents - is_directory? ? file_content : directory_files_content - end - - def is_directory? - directory.nil? - end - end - - def bust_file_cache(file_name) - CacheDigester.new(file_name: file_name, directory: nil).digest! - end - - def bust_css_cache(file_name) - CacheDigester.new(file_name: file_name, directory: 'assets/_sass').digest! - end - end -end - -Liquid::Template.register_filter(Jekyll::CacheBust) \ No newline at end of file