Symfony 2中Twig模板的两个小技巧

今天抓紧时间又更新了一下任氏有无轩的首页的改造。在我已经获得了我的博客的若干最新帖子的前提下,我需要在首页上显示其中的几个。 我要解决两个问题:

  1. 对帖子的内容进行过滤。
  2. 对过于长的帖子内容进行截断。

由于Twig引擎在渲染HTML的内容时,缺省会将其作为<pre>文本输出,因此所有HTML/CSS效果都会丢失。这是可以接受的,但是问题在于,在这一过程中所有的HTML标记(如<p><img>等)也会按照转义输出,这样一来我们的输出中文字就会非常凌乱,不利于阅读。

我要达到的是下面的效果:

Ashampoo_Snap_2014.04.13_12h33m30s_002_MozillaFirefox.png

也就是说,只输出文本,对于其中可能出现的HTML标记被剥离并不是太大的问题。 这可以通过如下的输出控制实现:

rp.description|striptags

接下来,要对这样输出的文字进行截断。Twig提供了一个truncate过滤器,但是要使用它需要进行一些设置。 修改app/config.yml并增加如下代码:

services:
    twig.extension.text:
        class: Twig_Extensions_Extension_Text
        tags:
            - { name: twig.extension}

然后对刚才输出的文字继续套用truncate

rp.description|striptags|truncate(120)

就可以得到图片中的效果了。

本文收录于[go4pro.org]

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *