用于缩短文本的树枝扩展? [英] Twig extensions for shortening text?
问题描述
我正在寻找的是在不破坏标签的情况下限制输出的东西.假设我有一些内容,例如来自 FCK/MCE:
What I'm looking for is something that limits the output without breaking tags. Let's say that I have some content for example coming from FCK / MCE:
<p>lorem ipsum lorem ipsum lorem ipsum lorem ipsum </p>
<p>lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem </p>
<p>lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem </p>
现在,例如,如果我执行类似 {{ output|raw[:10] ~ '...' }}
我会得到:
Now for example if I did something like {{ output|raw[:10] ~ '...' }}
I would get:
<p>lorem i...
但我想得到:
<p>lorem i...</p>
有什么想法可以做到这一点吗?
Any ideas how to accomplish this?
推荐答案
您应该尝试使用可用的 twig 扩展来截断 Twig & 中的文本.Symfony2.
You should try available extension of twig to truncate text in Twig & Symfony2.
您的文本是 html,因此首先使用striptags"过滤器获取纯文本,然后应用树枝的截断"过滤器.
Your text is in html so first get plain text using "striptags" filter then apply "truncate" filter of twig.
<p>{{ output|striptags|truncate(50, true) }}</p>
但首先你必须启用 Twig-Text-Extension 如下
but first you must enable Twig-Text-Extension as following
$twig->addExtension(new Twig_Extensions_Extension_Text());
或在 symfony2
or in symfony2
// app/config/config.yml
services:
twig.extension.text:
class: Twig_Extensions_Extension_Text
tags:
- { name: twig.extension }
以下是截断过滤器的可用选项
Following is available options for truncate filter
1 - 只截断
<p>{{ output|striptags|truncate(50) }}</p>
2 - 如果要保留整个单词,请设置第二个参数.
2 - Set second parameter if you want to preserve whole words.
<p>{{ output|striptags|truncate(50, true) }}</p>
3 - 如果您想使用自己的分隔符而不是...",请设置第三个参数
3 - Set third parameter if you want use your own separator instead of "..."
<p>{{ output|striptags|truncate(50, true, ".........") }}</p>
有关 twig 文本扩展的更多详细信息,请访问 http://twig.sensiolabs.org/doc/extensions/text.html
for more detail about twig text extension visit http://twig.sensiolabs.org/doc/extensions/text.html
这篇关于用于缩短文本的树枝扩展?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!