A Twig extension for voku/HtmlMin.
Currently supported Twig features are:
-
Tag
{% htmlcompress %} <foo>bar</foo> {% endhtmlcompress %}
-
Function
{{ htmlcompress(' <foo>bar</foo>') }}
-
Filter
{{ ' <foo>bar</foo>' | htmlcompress }}
- Install and use composer in your project.
- Require this package via composer:
composer require voku/html-compress-twigFirst register the extension with Twig:
use voku\helper\HtmlMin; use voku\twig\MinifyHtmlExtension; $twig = new \Twig\Environment($loader); $minifier = new HtmlMin(); $twig->addExtension(new MinifyHtmlExtension($minifier));Specifying HtmlMin is needed for the autowiring.
voku\helper\HtmlMin: tags: - { name: HtmlMin } voku\twig\MinifyHtmlExtension: arguments: $forceCompression: false tags: - { name: twig.extension }Then use it in your templates:
{% htmlcompress %} <foo>bar</foo> {% endhtmlcompress %} {{ htmlcompress(' <foo>bar</foo>') }} {{ ' <foo>bar</foo>' | htmlcompress }} Compression is disabled by Twig's debug setting. This is to make development easier, however you can always override it.
The constructor of this extension takes a boolean as second parameter $forceCompression. When true, this will force compression regardless of Twig's debug setting. It defaults to false when omitted.
$twig->addExtension(new MinifyHtmlExtension($minifier, true));See CHANGELOG for the full history of changes.
This project is licensed under the ISC license which is MIT/GPL compatible and FSF/OSI approved. See the LICENSE file for the full license text.

