Class: Jekyll::Terser::TerserGenerator
- Inherits:
-
Generator
- Object
- Generator
- Jekyll::Terser::TerserGenerator
- Defined in:
- lib/jekyll-terser.rb
Instance Method Summary collapse
- #generate(site) ⇒ Object
-
#initialize(config = {}) ⇒ TerserGenerator
constructor
A new instance of TerserGenerator.
Constructor Details
#initialize(config = {}) ⇒ TerserGenerator
Returns a new instance of TerserGenerator.
57 58 59 60 61 62 |
# File 'lib/jekyll-terser.rb', line 57 def initialize(config = {}) super @options = config.dig('jekyll-terser', 'terser_opts') || {} @terser = ::Terser.new(@options.transform_keys(&:to_sym)) end |
Instance Method Details
#generate(site) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/jekyll-terser.rb', line 64 def generate(site) return unless !site.config.dig('jekyll-terser', 'only_production') || Jekyll.env == 'production' site.static_files.clone.each do |f| next unless f.is_a?(Jekyll::StaticFile) && f.path.match?(/\.js$/) && !f.path.end_with?('.min.js') Jekyll.logger.info 'Terser:', "Minifying #{f.path}" site.static_files.delete(f) name = File.basename(f.path) destination = File.dirname(f.path).sub(site.source, '') js_file = JSFile.new(site, site.source, destination, name, @terser) site.static_files << js_file end end |