lib/jekyll/zopfli.rb in jekyll-zopfli-1.1.0 vs lib/jekyll/zopfli.rb in jekyll-zopfli-2.0.0

- old
+ new

@@ -1,13 +1,34 @@ -require "jekyll/zopfli/version" -require "jekyll/zopfli/compressor" +# frozen_string_literal: true +require 'jekyll/zopfli/version' +require 'jekyll/zopfli/config' +require 'jekyll/zopfli/compressor' +require 'pathname' + module Jekyll module Zopfli end end +Jekyll::Hooks.register :site, :after_init do |site| + config = site.config['zopfli'] || {} + site.config['zopfli'] = Jekyll::Zopfli::DEFAULT_CONFIG.merge(config) || {} +end + Jekyll::Hooks.register :site, :post_write do |site| - if ENV["JEKYLL_ENV"] == "production" - Jekyll::Zopfli::Compressor.new(site).compress + Jekyll::Zopfli::Compressor.compress_site(site) if Jekyll.env == 'production' +end + +begin + require 'jekyll-assets' + + Jekyll::Assets::Hook.register :env, :after_write do |env| + if Jekyll.env == 'production' + path = Pathname.new("#{env.jekyll.config['destination']}#{env.prefix_url}") + Jekyll::Zopfli::Compressor.compress_directory(path, env.jekyll) + end end +rescue LoadError + # The Jekyll site doesn't use Jekyll::Assets, so no need to compress those + # files. end \ No newline at end of file