Changed to use cache bust plugin (#3436)
Signed-off-by: George Araújo <george.gcac@gmail.com>
This commit is contained in:
parent
70d07e61f3
commit
7249c6ef61
1
Gemfile
1
Gemfile
@ -6,6 +6,7 @@ gem 'jekyll'
|
|||||||
group :jekyll_plugins do
|
group :jekyll_plugins do
|
||||||
gem 'jekyll-3rd-party-libraries'
|
gem 'jekyll-3rd-party-libraries'
|
||||||
gem 'jekyll-archives-v2'
|
gem 'jekyll-archives-v2'
|
||||||
|
gem 'jekyll-cache-bust'
|
||||||
gem 'jekyll-email-protect'
|
gem 'jekyll-email-protect'
|
||||||
gem 'jekyll-feed'
|
gem 'jekyll-feed'
|
||||||
gem 'jekyll-get-json'
|
gem 'jekyll-get-json'
|
||||||
|
|||||||
@ -144,6 +144,8 @@ GEM
|
|||||||
jekyll-archives-v2 (0.0.6)
|
jekyll-archives-v2 (0.0.6)
|
||||||
activesupport
|
activesupport
|
||||||
jekyll (>= 3.6, < 5.0)
|
jekyll (>= 3.6, < 5.0)
|
||||||
|
jekyll-cache-bust (0.0.1)
|
||||||
|
jekyll (>= 3.6, < 5.0)
|
||||||
jekyll-email-protect (1.1.0)
|
jekyll-email-protect (1.1.0)
|
||||||
jekyll-feed (0.17.0)
|
jekyll-feed (0.17.0)
|
||||||
jekyll (>= 3.7, < 5.0)
|
jekyll (>= 3.7, < 5.0)
|
||||||
@ -299,6 +301,7 @@ DEPENDENCIES
|
|||||||
jekyll
|
jekyll
|
||||||
jekyll-3rd-party-libraries
|
jekyll-3rd-party-libraries
|
||||||
jekyll-archives-v2
|
jekyll-archives-v2
|
||||||
|
jekyll-cache-bust
|
||||||
jekyll-email-protect
|
jekyll-email-protect
|
||||||
jekyll-feed
|
jekyll-feed
|
||||||
jekyll-get-json
|
jekyll-get-json
|
||||||
|
|||||||
@ -212,6 +212,7 @@ keep_files:
|
|||||||
plugins:
|
plugins:
|
||||||
- jekyll-3rd-party-libraries
|
- jekyll-3rd-party-libraries
|
||||||
- jekyll-archives-v2
|
- jekyll-archives-v2
|
||||||
|
- jekyll-cache-bust
|
||||||
- jekyll-email-protect
|
- jekyll-email-protect
|
||||||
- jekyll-feed
|
- jekyll-feed
|
||||||
- jekyll-get-json
|
- jekyll-get-json
|
||||||
|
|||||||
@ -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)
|
|
||||||
Loading…
Reference in New Issue
Block a user