This package is still in Beta version! Use it with care!
Let composer do the hard work for us!
composer require arjanschouten/htmlminifier
A Laravel package based on this minifier can be installed by running:
composer require arjanschouten/laravelhtmlminifier
If you're not using a php framework you can use the minifier by using the code below:
//include the composer autoloader
require __DIR__ . '/vendor/autoload.php';
// create a minify context which will be used through the minification process
$context = new MinifyContext(new PlaceholderContainer());
// save the html contents in the context
$context->setContents('<html>My html...</html>');
$minify = new Minify();
// start the process and give the context with it as parameter
$context = $minify->run($context);
// $context now contains the minified version
$minifiedContents = $context->getContents();
This minifier have some minification options which are:
Minification strategy | Option Name | Enabled by default |
---|---|---|
Remove redundant whitespaces | whitespaces | yes |
Remove comments | comments | yes |
Collapse boolean attributes from checked="checked" to checked | boolean-attributes | yes |
Remove quotes around html attributes | remove-attributequotes | no |
Remove optional elements which can be implied by the browser | optional-elements | no |
Remove defaults such as from <script type=text/javascript> |
remove-defaults | no |
Remove empty attributes. HTML boolean attributes are skipped | remove-empty-attributes | no |
You can enable the various minification options for example with:
...
$options = [
'whitespace' => false,
'remove-defaults' => true,
];
$minify->run($context, $options);
This will disable whitespace
and enables remove-defaults
.
Contributions are welcome. Please read the CONTRIBUTING.md readme.
HtmlMinifier uses phpunit
for testing. You can run the tests with vendor/bin/phpunit
.
This package is licensed under the MIT License.
This package is created and maintained by Arjan Schouten.