Skip to content

A mkdocs plugin to minify the HTML of a page before it is written to disk.

License

Notifications You must be signed in to change notification settings

byrnereese/mkdocs-minify-plugin

Repository files navigation

mkdocs-minify-plugin

PyPI - Python Version

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.

Setup

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 the search plugin. MkDocs enables it by default if there is no plugins entry set, but now you have to enable it explicitly.

Options

  • minify_html:
    • Defaults to False.
    • Sets whether HTML files should be minified.
  • minify_js:
    • Defaults to False.
    • Sets whether JS files should be minified.
      If set to True, you must specify the JS to be minified files using js_files (see below).
  • minify_css:
    • Defaults to False.
    • Sets whether CSS files should be minified.
      If set to True, you must specify the CSS to be minified files using css_files (see below).
  • htmlmin_opts:
  • 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 to True, you must specify the files using js_files or css_files (see below).
  • 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.
  • 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.

Note: When using minify_js or minify_css, you don't have to modify the extra_javascript or extra_css entries in your mkdocs.yml file. The plugins automatically takes care of that. Both minify_js and minify_css support the use of globs (e.g. **/*.css).