在整个文档中,您可能已经注意到,在我们的示例中引用YAML字段时,使用了 |e 和 |raw 等Twig过滤器。这里有一个简单的例子:
{% if particle.headline %}<h1 class="font-family-bloody">{{ particle.headline|raw }}</h1>{% endif %}
这句话来自我们关于添加和应用字体的指南。它检测一个粒子的标题字段是否有一个集合值,如果是,则以原始的HTML格式显示它。
这允许用户输入HTML,例如style="color:red" Title style。并且让它在前端呈现红色标题而不是被翻译成文字字符。
在Gantry中,默认情况下这些元素会被转义。这是一种安全预防措施,因为它只将这些字段的内联HTML限制在您有意启用的字段中。如果您想为一个字段打开呈现的HTML,您需要添加|raw 过滤器。
有用的资源
广泛的Twig文档覆盖了广泛的过滤器。我们只报道了在Twig官方支持的30多个国家。
您甚至可以找到关于每个过滤器的更详细的文档,包括如何以及何时使用它。我们建议从阅读关于escape和raw的阅读开始,因为这些在我们的文档中经常用到,在Hydrogen主题中也是如此。
自定义Twig过滤器
Gantry 5包括一组不同的Twig过滤器,它们是Gantry的习惯。它们使您能够从Gantry中获得更多,并利用其强大的特性。
过滤器 | 描述 | 参数 |
---|---|---|
字段名 | 在Gantry管理器内部使用。它转换表单的字段名。 | |
html | 查找流并将其转换为真正的url | domain timestamp_age |
url | 获取一个流并将其转换为一个真正的URL | |
trans | 翻译的字符串 | |
repeat | 按指定的计数重复你输入的内容 | count |
json_decode | 基本上与php中的json_decode()相同 | assoc depth options |
values | 返回数组中的所有值,并对数组进行数值计算 | |
base64 | 将字符串编码为base64格式 | |
imagesize | 获取图像尺寸并以HTML标记格式输出 | |
truncate_text | 将文本从HTML标记中删除,并将文本截断到提供的字符数 | limit |
truncate_html | 将文本截断到提供的字符数,保留HTML | limit |
例子
fieldname
Input (Twig):
<input type="text" name="{{ 'particles.date.format'|fieldName }}"/>
Output (HTML):
<input type="text" name="particles[date][format]"/>
html
Input (Twig):
{{ '<img src="gantry-theme://images/foo.jpg"/>'|html }}
Output:
<img src="/templates/g5_hydrogen/images/foo.jpg"/>
url
Input (Twig):
<img src="{{ 'gantry-theme://images/foo.jpg'|url }}"/>
Output (HTML):
<img src="/templates/g5_hydrogen/images/foo.jpg"/>
trans
Input (Twig):
<h1>{{ 'GANTRY5_PLATFORM_STYLES'|trans }}</h1>
Output (HTML):
<h1>Styles</h1>
repeat
Input (Twig):
{{ '.'|repeat(3) }}
Output (HTML):
...
values
Input (Twig):
{% set array = {one: 'foo', two: 'bar'} %}
{% set values = array|values %}
{{ array|json_encode }} => {{ values|json_encode }}
Output (HTML):
{"one":"foo",""two":"bar"} => ["foo","bar"]
imagesize
Input (Twig):
<img src="{{ 'gantry-theme://images/foo.jpg'|url }}" {{ 'gantry-theme://images/foo.jpg'|imagesize }}/>
Output (HTML):
<img src="/templates/g5_hydrogen/images/foo.jpg" width="100" height="50" />
自定义Twig功能
和Twig filter一样,Gantry 5也有一组定制的Twig函数,可以在模板和粒子中使用。下面是一个快速列表:
功能 | 描述 | 参数 |
---|---|---|
nested | 通过对嵌套数组/对象使用点表示法来检索值 | |
colorContrast | 给出了一种颜色,它返回一个适合的光或暗颜色以更好的对比 | |
get_cookie | 从当前请求得到一个cookie | |
preg_match | 搜索主题与模式中给出的正则表达式匹配 | pattern subject |
url | 将一个流转换成一个真实的URL | |
json_decode | 基本相同于json_decode() PHP. |
assoc depth options |
imagesize | 获取图像尺寸并以HTML标记格式输出 |