bluetel-solutions/twig-truncate-extension

Twig 扩展,用于安全地截断嵌套 HTML

v0.1.3 2016-01-18 22:41 UTC

This package is not auto-updated.

Last update: 2024-09-18 18:28:34 UTC


README

Build Status

此扩展尝试解决一个常见问题,即根据字符数和单词数截断 HTML 内容。

我们尝试过的其他库 试图通过正则表达式操作 HTML 内容,这可能会破坏内容,并且总是在最糟糕的时候发生,因此需要这个扩展。这个扩展利用了 DOMDocument 的功能,可以安全地截断最复杂的嵌套 HTML 文档。

按单词数截断

{% set html %}
    <h1>Test heading!</h1>
    <ul>
        <li>Hello world</li>
        <li>Foo bar</li>
        <li>Lorem Ipsum</li>
    </ul>
{% endset html %}
{{ html|truncate_words(5) }}

运行此代码返回

<h1>Test heading!</h1>
<ul>
    <li>Hello world</li>
    <li>Foo</li>
</ul>

按字符数截断

{% set html %}
    <h1>Test heading!</h1>
    <ul>
        <li>Hello world</li>
        <li>Foo bar</li>
        <li>Lorem Ipsum</li>
    </ul>
{% endset html %}
{{ html|truncate_letters(20) }}

而运行上面的代码则返回以下内容

<h1>Test heading!</h1>
<ul>
    <li>Hello wo</li>
</ul>