dzango / twig-truncate-extension
一个Twig扩展,可以在保留HTML标签的同时截断文本
1.1.0
2017-12-02 03:28 UTC
Requires
- php: >=5.3.3
- twig/twig: ~1.12|~2.0
Requires (Dev)
- phpunit/phpunit: ~4.8||~5.4
README
一个自定义的Twig扩展,可以在保留HTML标签的同时截断文本。
安装
将库添加到您的应用的 composer.json
"require": { "dzango/twig-truncate-extension": "~1.0", ... }
将扩展添加到 Twig_Environment
use Dzango\Twig\Extension\Truncate; $twig = new Twig_Environment(...); $twig->addExtension(new Truncate());
用法
该组件公开了一个 truncate
twig过滤器,可以应用于任何字符串。
{{ "some ... very ... large ... text"|truncate }}
参数
truncate
过滤器接受4个参数,所有这些参数都有合理的默认值,因此大多数情况下可以忽略
truncate($length = 100, $ending = '...', $exact = false, $considerHtml = true)
- length:要显示的最大字符数,不包括任何HTML标记(默认
100
) - ending:要附加到截断字符串的字符(默认
...
) - exact:如果设置为true,文本可能会在单词中间被截断。为了避免这种情况,将此参数设置为false(默认
false
) - considerHtml:如果设置为true,HTML标记将被忽略并保持不变(默认
true
)
Markdown和原始内容
由于 truncate
过滤器保留了HTML标记,因此它能够很好地处理渲染的Markdown内容,以及“原始”内容(由 raw
过滤器渲染)。例如,假设您的应用已启用 markdown
twig过滤器以解析Markdown内容,以下完全受支持
{{ "some ... very ... long ... markdown text"|markdown|raw|truncate }}
Symfony2
要在symfony2项目中使用此扩展,您有两个选项
1. 手动添加服务
# app/config/config.yml services: dzango.twig.truncate_extension: class: Dzango\Twig\Extension\Truncate tags: - { name: twig.extension }
2. 使用TwigTruncateBundle
Dzango/TwigTruncateBundle 将为您注册扩展作为服务。