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-twig
First 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.