voku / html-compress-twig
Twig extension for compressing HTML
Requires
- php: >=7.0.0
- twig/twig: ~2.7 || ^3
- voku/html-min: ~4.4
- voku/simple-cache: ~4.0
Requires (Dev)
- phpunit/phpunit: ~6.0 || ~7.0 || ~9.0
This package is auto-updated.
Last update: 2024-12-04 03:30:49 UTC
README
🗜️ HtmlMin for Twig: HTML Compressor and Minifier
Description
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 }}
Installation
- Install and use composer in your project.
- Require this package via composer:
composer require voku/html-compress-twig
Usage
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));
Register extension in symfony 4
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));
History
See CHANGELOG for the full history of changes.
License
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.