An MkDocs plugin to minify HTML, JS or CSS files prior to being written to disk.
HTML minification is done using htmlmin2.
JS minification is done using jsmin.
CSS minification is done using csscompressor.
Install the plugin using pip:
pip install mkdocs-minify-plugin
Activate the plugin in mkdocs.yml
:
plugins:
- search
- minify:
minify_html: true
minify_js: true
minify_css: true
htmlmin_opts:
remove_comments: true
cache_safe: true
js_files:
- my/javascript/dir/file1.js
- my/javascript/dir/file2.js
css_files:
- my/css/dir/file1.css
- my/css/dir/file2.css
Note: If you have no
plugins
entry in your config file yet, you'll likely also want to add thesearch
plugin. MkDocs enables it by default if there is noplugins
entry set, but now you have to enable it explicitly.
minify_html
:- Defaults to
False
. - Sets whether HTML files should be minified.
- Defaults to
minify_js
:- Defaults to
False
. - Sets whether JS files should be minified.
If set toTrue
, you must specify the JS to be minified files usingjs_files
(see below).
- Defaults to
minify_css
:- Defaults to
False
. - Sets whether CSS files should be minified.
If set toTrue
, you must specify the CSS to be minified files usingcss_files
(see below).
- Defaults to
htmlmin_opts
:- Defaults to
None
. - Sets runtime htmlmin API options using the config parameters of htmlmin
- Defaults to
cache_safe
:- Defaults to
False
. - Sets whether a hash should be added to the JS and CSS file names. This ensures that the browser always loads the latest version of the files instead of loading them from the cache.
If set toTrue
, you must specify the files usingjs_files
orcss_files
(see below).
- Defaults to
js_files
:- Defaults to
None
. - List of JS files to be minified.
The plugin will generate minified versions of these files and save them as.min.js
in the output directory.
- Defaults to
css_files
:- Defaults to
None
. - List of CSS files to be minified.
The plugin will generate minified versions of these files and save them as.min.css
in the output directory.
- Defaults to
Note: When using
minify_js
orminify_css
, you don't have to modify theextra_javascript
orextra_css
entries in yourmkdocs.yml
file. The plugins automatically takes care of that. Bothminify_js
andminify_css
support the use of globs (e.g.**/*.css
).