-
-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathexample_config.yml
More file actions
127 lines (106 loc) · 4.8 KB
/
example_config.yml
File metadata and controls
127 lines (106 loc) · 4.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# Jekyll Minifier - Enhanced CSS Compression Configuration Example
#
# This configuration showcases the new cssminify2 v2.1.0 enhanced features
# integrated with Jekyll Minifier v0.2.1+
# Basic minification controls (existing functionality - UNCHANGED)
jekyll-minifier:
# File type compression toggles
compress_css: true # Enable/disable CSS compression
compress_javascript: true # Enable/disable JavaScript compression
compress_json: true # Enable/disable JSON compression
# File exclusions (supports glob patterns)
exclude:
- '*.min.js' # Skip already minified JavaScript
- '*.min.css' # Skip already minified CSS
- 'vendor/**/*' # Skip vendor directory
- 'node_modules/**/*' # Skip node_modules
# HTML compression options (existing functionality)
remove_comments: true # Remove HTML comments
remove_intertag_spaces: false # Remove spaces between tags
remove_multi_spaces: true # Collapse multiple spaces
compress_css: true # Compress inline CSS in HTML
compress_javascript: true # Compress inline JS in HTML
# JavaScript/Terser configuration (existing functionality)
terser_args:
compress:
drop_console: true # Remove console.log statements
mangle: true # Shorten variable names
# Security: Pattern preservation (existing functionality)
preserve_patterns:
- '<%.*?%>' # Preserve ERB/JSP patterns
- '\{\{.*?\}\}' # Preserve template patterns
preserve_php: true # Preserve PHP tags
# ==========================================
# NEW: Enhanced CSS Compression Features
# ==========================================
# Enable enhanced CSS compression mode (cssminify2 v2.1.0+)
# DEFAULT: false (maintains backward compatibility)
css_enhanced_mode: true
# Enhanced CSS compression options (only used when css_enhanced_mode: true)
# Merge duplicate CSS selectors for better compression
# Example: .btn{color:red} .btn{margin:5px} → .btn{color:red;margin:5px}
# DEFAULT: false
css_merge_duplicate_selectors: true
# Optimize CSS shorthand properties
# Example: margin-top:10px;margin-right:10px;margin-bottom:10px;margin-left:10px → margin:10px
# DEFAULT: false
css_optimize_shorthand_properties: true
# Advanced color optimization beyond standard compression
# Example: rgba(255,255,255,1.0) → #fff, rgb(0,0,0) → #000
# DEFAULT: false
css_advanced_color_optimization: true
# Preserve IE-specific CSS hacks (recommended: true for compatibility)
# Example: *zoom:1, _position:relative (IE6/7 hacks)
# DEFAULT: true
css_preserve_ie_hacks: true
# Compress CSS custom properties (variables) where safe
# Example: --primary-color optimization and usage analysis
# DEFAULT: false
css_compress_variables: false
# ==========================================
# Configuration Presets
# ==========================================
# CONSERVATIVE PRESET (maximum compatibility)
# jekyll-minifier:
# compress_css: true
# compress_javascript: true
# compress_json: true
# css_enhanced_mode: false # Use standard compression only
# BALANCED PRESET (recommended for most sites)
# jekyll-minifier:
# compress_css: true
# compress_javascript: true
# compress_json: true
# css_enhanced_mode: true
# css_merge_duplicate_selectors: true
# css_advanced_color_optimization: true
# css_preserve_ie_hacks: true
# AGGRESSIVE PRESET (maximum compression)
# jekyll-minifier:
# compress_css: true
# compress_javascript: true
# compress_json: true
# css_enhanced_mode: true
# css_merge_duplicate_selectors: true
# css_optimize_shorthand_properties: true
# css_advanced_color_optimization: true
# css_preserve_ie_hacks: true
# css_compress_variables: true
# ==========================================
# Performance Notes
# ==========================================
# Enhanced CSS compression provides significant additional compression:
# - Standard compression: ~30-40% reduction
# - Enhanced compression: Additional 20-30% reduction beyond standard
# - Performance impact: ~13% slower processing (acceptable for production builds)
# - Memory usage: No significant increase
# Compatibility Notes:
# - Enhanced mode is opt-in (css_enhanced_mode: false by default)
# - Standard compression behavior unchanged when enhanced mode disabled
# - All existing configurations continue to work without modification
# - Enhanced features require cssminify2 v2.1.0+
# Migration Guide:
# 1. Existing users: No changes required (enhanced mode disabled by default)
# 2. New features: Add css_enhanced_mode: true and desired options
# 3. Testing: Enable enhanced mode in staging first to validate output
# 4. Performance: Monitor build times if using CI/CD with time constraints