Skip to content

Commit cab431a

Browse files
Merge pull request #28 from sonnym/exclusion_fix
Exclusion fix
2 parents 51bfe7f + 70cdfd6 commit cab431a

File tree

1 file changed

+30
-40
lines changed

1 file changed

+30
-40
lines changed

lib/jekyll-minifier.rb

+30-40
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,6 @@
44

55
module Jekyll
66
module Compressor
7-
def exclude?(dest, dest_path)
8-
res = false
9-
file_name = dest_path.slice(dest.length+1..dest_path.length)
10-
exclude = @site.config['jekyll-minifier'] && @site.config['jekyll-minifier']['exclude']
11-
if exclude
12-
if exclude.is_a? String
13-
exclude = [exclude]
14-
end
15-
exclude.each do |e|
16-
if e == file_name || File.fnmatch(e, file_name)
17-
res = true
18-
break
19-
end
20-
end
21-
end
22-
res
23-
end
24-
257
def output_file(dest, content)
268
FileUtils.mkdir_p(File.dirname(dest))
279
File.open(dest, 'w') do |f|
@@ -37,28 +19,25 @@ def output_html(path, content)
3719
opts = @site.config['jekyll-minifier']
3820

3921
if ( !opts.nil? )
40-
# Convert keys to symboles
41-
opts.keys.each { |key| opts[(key.to_sym rescue key) || key] = opts.delete(key) }
42-
43-
args[:remove_spaces_inside_tags] = opts[:remove_spaces_inside_tags] if opts.has_key?(:remove_spaces_inside_tags)
44-
args[:remove_multi_spaces] = opts[:remove_multi_spaces] if opts.has_key?(:remove_multi_spaces)
45-
args[:remove_comments] = opts[:remove_comments] if opts.has_key?(:remove_comments)
46-
args[:remove_intertag_spaces] = opts[:remove_intertag_spaces] if opts.has_key?(:remove_intertag_spaces)
47-
args[:remove_quotes] = opts[:remove_quotes] if opts.has_key?(:remove_quotes)
48-
args[:compress_css] = opts[:compress_css] if opts.has_key?(:compress_css)
49-
args[:compress_javascript] = opts[:compress_javascript] if opts.has_key?(:compress_javascript)
50-
args[:simple_doctype] = opts[:simple_doctype] if opts.has_key?(:simple_doctype)
51-
args[:remove_script_attributes] = opts[:remove_script_attributes] if opts.has_key?(:remove_script_attributes)
52-
args[:remove_style_attributes] = opts[:remove_style_attributes] if opts.has_key?(:remove_style_attributes)
53-
args[:remove_link_attributes] = opts[:remove_link_attributes] if opts.has_key?(:remove_link_attributes)
54-
args[:remove_form_attributes] = opts[:remove_form_attributes] if opts.has_key?(:remove_form_attributes)
55-
args[:remove_input_attributes] = opts[:remove_input_attributes] if opts.has_key?(:remove_input_attributes)
56-
args[:remove_javascript_protocol] = opts[:remove_javascript_protocol] if opts.has_key?(:remove_javascript_protocol)
57-
args[:remove_http_protocol] = opts[:remove_http_protocol] if opts.has_key?(:remove_http_protocol)
58-
args[:remove_https_protocol] = opts[:remove_https_protocol] if opts.has_key?(:remove_https_protocol)
59-
args[:preserve_line_breaks] = opts[:preserve_line_breaks] if opts.has_key?(:preserve_line_breaks)
60-
args[:simple_boolean_attributes] = opts[:simple_boolean_attributes] if opts.has_key?(:simple_boolean_attributes)
61-
args[:compress_js_templates] = opts[:compress_js_templates] if opts.has_key?(:compress_js_templates)
22+
args[:remove_spaces_inside_tags] = opts['remove_spaces_inside_tags'] if opts.has_key?('remove_spaces_inside_tags')
23+
args[:remove_multi_spaces] = opts['remove_multi_spaces'] if opts.has_key?('remove_multi_spaces')
24+
args[:remove_comments] = opts['remove_comments'] if opts.has_key?('remove_comments')
25+
args[:remove_intertag_spaces] = opts['remove_intertag_spaces'] if opts.has_key?('remove_intertag_spaces')
26+
args[:remove_quotes] = opts['remove_quotes'] if opts.has_key?('remove_quotes')
27+
args[:compress_css] = opts['compress_css'] if opts.has_key?('compress_css')
28+
args[:compress_javascript] = opts['compress_javascript'] if opts.has_key?('compress_javascript')
29+
args[:simple_doctype] = opts['simple_doctype'] if opts.has_key?('simple_doctype')
30+
args[:remove_script_attributes] = opts['remove_script_attributes'] if opts.has_key?('remove_script_attributes')
31+
args[:remove_style_attributes] = opts['remove_style_attributes'] if opts.has_key?('remove_style_attributes')
32+
args[:remove_link_attributes] = opts['remove_link_attributes'] if opts.has_key?('remove_link_attributes')
33+
args[:remove_form_attributes] = opts['remove_form_attributes'] if opts.has_key?('remove_form_attributes')
34+
args[:remove_input_attributes] = opts['remove_input_attributes'] if opts.has_key?('remove_input_attributes')
35+
args[:remove_javascript_protocol] = opts['remove_javascript_protocol'] if opts.has_key?('remove_javascript_protocol')
36+
args[:remove_http_protocol] = opts['remove_http_protocol'] if opts.has_key?('remove_http_protocol')
37+
args[:remove_https_protocol] = opts['remove_https_protocol'] if opts.has_key?('remove_https_protocol')
38+
args[:preserve_line_breaks] = opts['preserve_line_breaks'] if opts.has_key?('preserve_line_breaks')
39+
args[:simple_boolean_attributes] = opts['simple_boolean_attributes'] if opts.has_key?('simple_boolean_attributes')
40+
args[:compress_js_templates] = opts['compress_js_templates'] if opts.has_key?('compress_js_templates')
6241
args[:preserve_patterns] += [/<\?php.*?\?>/im] if opts[:preserve_php] == true
6342

6443
# Potential to add patterns from YAML
@@ -78,6 +57,17 @@ def output_css(path, content)
7857
compressor = CSSminify2.new
7958
output_file(path, compressor.compress(content))
8059
end
60+
61+
private
62+
63+
def exclude?(dest, dest_path)
64+
file_name = dest_path.slice(dest.length+1..dest_path.length)
65+
exclude.any? { |e| e == file_name || File.fnmatch(e, file_name) }
66+
end
67+
68+
def exclude
69+
@exclude ||= Array(@site.config.dig('jekyll-minifier', 'exclude'))
70+
end
8171
end
8272

8373
class Document

0 commit comments

Comments
 (0)