⚠️ This plugin is no longer maintained, nor is it compatible with Caddy 2+.
Caddy plugin that implements minification on-the-fly for CSS, HTML, JSON, SVG and XML. It uses tdewolff's library so, let's thank him! You can download this plugin with Caddy on its official download page.
minify paths... {
if a cond b
if_op [and|or]
disable [js|css|html|json|svg|xml]
minifier option value
}
- paths are space separated file paths to minify. If nothing is specified, the whole website will be minified.
- if specifies a condition. Multiple ifs are AND-ed together by default. a and b are any string and may use request placeholders. cond is the condition, with possible values explained in rewrite (which also has an
if
statement). - if_op specifies how the ifs are evaluated; the default is
and
. - disable is used to indicate which minifiers to disable; by default, they're all activated.
- minifier sets value for option on that minifier. When the option is true or false, its omission is trated as
true
. The possible options are described bellow.
Minifier(s) | Option | Value | Description |
---|---|---|---|
css, svg | decimals | number | Preserves default attribute values. |
xml, html | keep_whitespace | true|false | Preserves whitespace between inline tags but still collapse multiple whitespace characters into one. |
html | keep_end_tags | true|false | Preserves all end tags. |
html | keep_document_tags | true|false | Preserve html , head and body tags. |
html | keep_default_attr_vals | true|false | Preserves default value attributes. |
html | keep_conditional_comments | true|false | Preserves all IE conditional comments. |
For more information about what does each option and how each minifier work, read the documentation of tdewolff/minify.
Minify all of the supported files of the website:
minify
Only minify the contents of /assets
folder:
minify /assets
Only minify css files:
minify {
disable html svg json xml js
}
Minify the whole website except /api
:
minify {
if {path} not_match ^(\/api).*
}
Minify the files of /assets
folder except /assets/js
:
minify /assets {
if {path} not_match ^(\/assets\/js).*
}
Customize the minifier options:
minify {
html keep_document_tags
html keep_whitespace
}