Skip to content
This repository has been archived by the owner on Jul 18, 2020. It is now read-only.

hacdias/caddy-v1-minify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

minify

⚠️ This plugin is no longer maintained, nor is it compatible with Caddy 2+.

CircleCI branch community Go Report Card

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.

Syntax

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.

Minifiers options

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.

Examples

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
}