CSS HTML JS Minifier

2.5.5 · maintenance · verified Thu Apr 16

CSS-HTML-JS-Minify is a standalone, asynchronous, cross-platform, and Unicode-ready Python 2 and 3 library for minifying web assets (CSS, HTML, JavaScript). It can process single files or entire folders, offering features like GZIP compression, SHA1 hashing for filenames, and optional alphabetical sorting of CSS properties. The current version is 2.5.5, last updated in 2018, indicating a maintenance-oriented release cadence.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates both string-based minification and file processing for HTML, CSS, and JavaScript. For file processing, it shows how to either overwrite the original file or create a new minified file with a specified output path.

from css_html_js_minify import (html_minify, js_minify, css_minify,
                                  process_single_html_file, process_single_js_file)

# Minify strings
minified_html = html_minify(' <p>yolo<a href="/" >o </a > <!-- hello --></p>')
print(f"Minified HTML string: {minified_html}")

minified_js = js_minify('var i = 1; i += 2 ;\n alert( "hello " ); //hi')
print(f"Minified JS string: {minified_js}")

minified_css = css_minify('body {width: 50px;}\np {margin-top: 1em;/* hi */ }', comments=False)
print(f"Minified CSS string: {minified_css}")

# Example for file processing (creates dummy files first)
with open('test.htm', 'w') as f:
    f.write('<html><body><!-- comment --><h1>Hello</h1></body></html>')
with open('test.js', 'w') as f:
    f.write('function greet() { console.log("Hello"); // Comment }')

process_single_html_file('test.htm', overwrite=True) # Overwrites test.htm with minified content
process_single_js_file('test.js', overwrite=False, output_path='test.min.js') # Creates test.min.js

print("Minification of test.htm and test.js completed. Check generated files.")

view raw JSON →