Grav - Twig 过滤器和函数
在本章中,让我们学习Twig 过滤器和函数。过滤器用于按您想要的方式格式化数据,并提供所需的输出。函数用于生成内容。
Twig 模板是包含表达式和变量(由值替换)的文本文件。Twig 使用三种类型的标签。
输出标签 − 以下语法用于在此处显示评估的表达式结果。
{{ 在此处放置您的输出 }}
操作标签 −以下语法用于在此处执行语句。
{% 可执行语句放在此处 %}
注释标签 − 以下语法用于在 Twig 模板文件中写入注释。
{# 在此处写入您的注释 #}
Twig 过滤器
Twig 过滤器使用 | 字符将过滤器应用于 Twig 变量,后跟过滤器名称。参数可以像 Twig 函数一样在括号中传递。
下表显示了 Grav 中使用的 Twig 过滤器 −
Sr.No. | 过滤器 &描述 | 示例 |
---|---|---|
1 | Absolute URL 它采用相对路径并将其转换为绝对 URL。 |
'<img src="/some/path/img.jpg"/>' |absolute_url 转换为 − <img src="http://learn.getGrav.org/some/path/img.jpg" /> |
2 | Camelize 它将字符串转换为 CamelCase 格式。 |
'contact_us'| camelize 转换为 − ContactUs |
3 | Contains 如果找到字符串。 |
'这是一些字符串' | contains('some') 输出为 − 1 |
4 | Defined 您可以检查某些变量是否已定义。如果变量未定义,则可以提供默认值。 |
set header_image_width = page.header.header_image_width|defined(900) 如果未定义,则将 header_image_width 设置为值 900。 |
5 | Ends-With 您可以使用 Ends-With 过滤器确定字符串是否以给定字符串结尾。 |
'这是 ends-with 过滤器的示例' | ends_with('filter') 显示为 − True |
6 | FieldName 通过将点转换为数组表示法来过滤字段名称。 |
'field.name'|fieldName 显示为 − field[name] |
7 | Humanize 用于将字符串转换为人类可读的格式。 |
'some_text_to_read'|humanize 显示为 − 一些要阅读的文本 |
8 | Ksort 使用 key 对数组映射进行排序。 |
{% set ritems = {'orange':1, 'apple':2, 'peach':3}|ksort %} {% for key, value in ritems %}{{ key }}:{{ value }}, {% endfor %} 显示为 − apple:2, orange:1, peach:3, |
9 | Left Trim 用于删除字符串开头的空格并从字符串左侧删除匹配的字符。 |
'/strip/leading/slash/'|ltrim('/') 显示为 − strip/leading/slash/ |
10 | Markdown 使用 Grav 的 markdown 解析器将包含 markdown 的字符串转换为 HTML。 |
'## some text带有 markdown'|markdown 显示为 −
|
11 | MD5 可以使用此过滤器创建字符串的 md5 哈希值。 |
'something'|md5 它显示为 − 437b930db84b8079c2dd804a71936b5f |
12 | Monthize 通过使用Monthize过滤器,我们可以将整数天数转换为月份数。 |
'61'|monthize 它显示为− 2 |
13 | Nice Time 通过使用 Nice Time 过滤器,我们可以获得一个易于阅读的时间格式的日期作为输出。 |
page.date|nicetime(false) 它显示为 − 3 hrs ago |
14 | Ordinalize 可以使用 Ordinalize 过滤器将序数(如 1st、2nd、3rd)赋予整数。 |
'78'| ordinalize 显示为 − 78th |
15 | Pluralize 使用 Pluralize 过滤器可以将字符串转换为复数英语形式。 |
'child'|pluralize 显示为 − children |
16 | Randomize 此过滤器有助于随机化提供的列表。如果参数包含任何值,则这些值将从随机化中跳过。 |
{% set ritems = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten']|randomize(3) %} {% for ritem in ritems %}{{ ritem }}, {% endfor %} 它显示为 − one, two, three, eight, six, five, nine, seven, ten, four, |
17 | Right Trim 它与左修剪非常相似,只是它会从字符串右侧删除空格和匹配的字符。 |
'/strip/leading/slash/'|rtrim('/') 它显示为 − /strip/leading/slash |
18 | Singularize 使用 Singular 可以将字符串转换为英语单数版本过滤器。 |
'vehicles'|singularize 显示为 − vehicle |
19 | Safe Email 安全电子邮件过滤器用于将电子邮件地址转换为 ASCII 字符,从而使电子邮件更难被发送为垃圾邮件。 |
"someoneemailaddress@domain.com"|safe_email 输出为 − someoneemailaddress@domain.com |
20 | SortByKey 用于使用键对数组图进行排序。 |
{% set people = [{'email':'john@gmail.com', 'id':3}, {'email':'melw@fdd.com', 'id':1}, {'email':'nancy@fb.com', 'id':7}]|sort_by_key('id') %} {% for person in people %}{{ person.email }}:{{ person.id }}, {% endfor %} 它显示 − melw@fdd.com:1, john@gmail.com:3, nancy@fb.com:7, |
21 | Starts-With 您可以使用 Starts-With 过滤器确定字符串是否以给定字符串开头。 |
'这是 starts-with 过滤器的示例' |starts_with('this') 输出为 − true |
22 | Translate 以获取更多详细信息。 |
MY_LANGUAGE_KEY_STRING 它显示− '一些英文文本' |
23 | Translate Admin 它将字符串翻译成在 user.yaml 文件中设置的当前语言。 |
|
24 | Titleize 使用 Titleize 将字符串转换为 Title Case 格式。 |
'欢迎page'|titleize 显示为 − 欢迎页面 |
25 | UnderScoreize 使用 UnderScoreize 过滤器格式化。 |
'ContactUs'|underscorize 转换为 − contact_us |
26 | Truncate a string 您可以使用 Truncate 截断字符串或缩短字符串,必须指定字符数。 |
'一个句子。两个句子'|truncate(5) 它截断为 − 一个句子... 如果您不想在给定字符数后将字符串截断到最近的句子末尾,则可以使用 true 作为参数。 '一个句子。两个句子'|truncate(5, true) 它截断为 − 一个句子您也可以删除 HTML 文本,但应在 truncate 过滤器之前使用 striptags 过滤器。 '<p>一个 <strong>句子<strong>. 两个句子</p>'|striptags|truncate(5) 它显示为 − 一个 s |
Twig 函数
通过传递参数直接调用 Twig 函数。下表列出了函数 −
Sr.No. | 功能 &描述 | 示例 |
---|---|---|
1 | Array 此函数将值转换为数组。 |
array(value) |
2 | Authorize 此函数使经过身份验证的用户被授权查看资源并接受权限字符串或权限字符串数组。 |
authorize(['admin.statistics', 'admin.super']) |
3 | Dump 它接受一个有效的 twig 变量并将其转储到 Grav 调试器面板中。但是,应启用调试器才能查看消息选项卡值。 |
dump(page.header) |
4 | Debug 这与 dump() 函数的工作方式相同。 |
|
5 | Gist 此函数根据 Github Gist ID 创建 Gist 嵌入代码。 |
|
6 | Random String Generation 此函数将创建一个具有指定字符数的随机字符串。这些字符串可用作唯一 ID 或键。 |
generate_random_string(10) |
7 | Repeat 此函数将在给定的时间内重复字符串。 |
repeat('Grav ', 10) 将重复 Grav 10 次。 |
8 | String 生成指定字符长度的随机字符串。 |
ta (23) |
9 | Translate Array 它是一个与 |ta 过滤器连接的函数。 |
|
10 | Url 此过滤器将创建一个 URL,它还将 PHP URL 流转换为有效的 HTML 资源。如果无法解析 URL,则可以传递默认值。 |
url('theme://images/logo.png') | default('http://www.placehold.it/150x100/f4f4f4') |
11 | Translate 使用翻译过滤器, 字符串被翻译为 |t 过滤器。 |
t('SITE_NAME') 被翻译为 − Site Name |