dzango/twig-truncate-extension
Twig extension that truncates text while preserving HTML tags. Adds a truncate filter with options for length, ending, exact word cutting, and HTML handling—works with rendered markdown or raw content. Easy to register in Twig or Symfony2.
A custom twig extension to truncate text while preserving HTML tags.
Add the library to your app's composer.json:
"require": {
"dzango/twig-truncate-extension": "~1.0",
...
}
Add the extension to the Twig_Environment:
use Dzango\Twig\Extension\Truncate;
$twig = new Twig_Environment(...);
$twig->addExtension(new Truncate());
The bundle exposes a truncate twig filter, which can be applied to any string.
{{ "some ... very ... large ... text"|truncate }}
The truncate filter accepts 4 arguments, all of which have sensible defaults and can therefore be ignored most of the time:
truncate($length = 100, $ending = '...', $exact = false, $considerHtml = true)
100)...)false)true)Because the truncate filter preserves HTML markup, it is perfectly able to handle rendered markdown content, as well as "raw" content (as rendered by the raw filter). For example, assuming your app has enabled a markdown twig filter for parsing markdown content, the following is fully supported:
{{ "some ... very ... long ... markdown text"|markdown|raw|truncate }}
To use this extension in a symfony2 project, you have 2 options:
# app/config/config.yml
services:
dzango.twig.truncate_extension:
class: Dzango\Twig\Extension\Truncate
tags:
- { name: twig.extension }
The Dzango/TwigTruncateBundle will register the extension for you as a service.
How can I help you explore Laravel packages today?