class BridgetownMinifyHtml::Minifier

Constants

DEFAULT_OPTIONS

Public Class Methods

new(site) click to toggle source
# File lib/bridgetown-minify-html/minifier.rb, line 28
def initialize(site)
  @site = site
  @minified_count = 0
end

Public Instance Methods

call!() click to toggle source
# File lib/bridgetown-minify-html/minifier.rb, line 33
def call!
  (@site.pages + @site.documents).each do |page|
    minify_page(page)
  end

  Bridgetown.logger.info "Minify HTML:", "Complete, Processed #{@minified_count} file(s)"
end

Private Instance Methods

compressible?(page) click to toggle source
# File lib/bridgetown-minify-html/minifier.rb, line 50
def compressible?(page)
  page.respond_to?(:output_ext) && [".html", ".svg", ".xml"].include?(page.output_ext)
end
compressor() click to toggle source
# File lib/bridgetown-minify-html/minifier.rb, line 54
def compressor
  @compressor ||= HtmlCompressor::Compressor.new(options)
end
minify_page(page) click to toggle source
# File lib/bridgetown-minify-html/minifier.rb, line 43
def minify_page(page)
  return unless compressible?(page)

  page.output = compressor.compress(page.output)
  @minified_count += 1
end
options() click to toggle source
# File lib/bridgetown-minify-html/minifier.rb, line 58
def options
  @options ||= DEFAULT_OPTIONS.merge(options_overrides)
end
options_overrides() click to toggle source
# File lib/bridgetown-minify-html/minifier.rb, line 62
def options_overrides
  @options_overrides ||= (@site.config["minify_html"] || {})
    .each_with_object({}) { |(k, v), new_config| new_config[k.to_sym] = v; }
    .compact
end