- Grav 插件
- Grav - 插件基础
- Grav - 插件教程
- Grav - 事件钩子
- Grav 管理面板
- Grav - 管理员介绍
- Grav - 管理员仪表盘
- Grav - 配置系统
- Grav - 站点配置
- Grav - 管理面板页面
- Grav - 页面编辑器选项
- Grav - 页面编辑器高级
- Grav 高级
- Grav - 蓝图
- Grav - 性能和缓存
- Grav - 调试和日志记录
- Grav - CLI
- Grav - GPM
- Grav - 开发
- Grav - 生命周期
- Grav - YAML 语法
- Grav - 表单
- Grav 托管
- Grav - Web 托管
- Grav 故障排除
- Grav - 服务器错误
- Grav - 权限
- Grav 有用资源
- Grav - 面试问题
- Grav - 快速指南
- Grav - 有用资源
- Grav - 讨论
Grav - Twig 过滤器和函数
在本章中,让我们学习一下**Twig 过滤器和函数**。过滤器用于以所需的输出格式化数据。函数用于生成内容。
Twig 模板是包含表达式和变量的文件,这些表达式和变量将被值替换。Twig 使用三种类型的标签。
**输出标签** - 以下语法用于在此处显示已计算表达式的结果。
{{ Place Your Output Here }}
**动作标签** - 以下语法用于在此处执行语句。
{% executable statements are placed here %}
**注释标签** - 以下语法用于在 Twig 模板文件中编写注释。
{# write your comment here #}
Twig 过滤器
Twig 过滤器使用**|**字符将过滤器应用于 Twig 变量,后跟过滤器名称。类似于 Twig 函数,可以在括号中传递参数。
下表显示了 Grav 中使用的 Twig 过滤器 -
序号 | 过滤器和描述 | 示例 |
---|---|---|
1 | 绝对 URL 它获取相对路径并将其转换为绝对 URL。 |
'<img src="/some/path/img.jpg"/>' |absolute_url 转换为 - <img src="http://learn.getGrav.org/some/path/img.jpg" /> |
2 | 驼峰式命名法 它将字符串转换为驼峰式命名法格式。 |
'contact_us'| camelize 转换为 - ContactUs |
3 | 包含 如果找到字符串。 |
'This is some string' | contains('some') 输出为 - 1 |
4 | 已定义 您可以检查某些变量是否已定义。如果变量未定义,您可以提供默认值。 |
set header_image_width = page.header.header_image_width|defined(900) 如果未定义,它将**header_image_width**的值设置为 900。 |
5 | 以…结尾 您可以使用 Ends-With 过滤器确定字符串是否以给定字符串结尾。 |
'this is an example for ends-with filter' | ends_with('filter') 显示为 - True |
6 | 字段名称 它通过将点更改为数组表示法来过滤字段名称。 |
'field.name'|fieldName 显示为 - field[name] |
7 | 人性化 它用于将字符串转换为人类可读格式。 |
'some_text_to_read'|humanize 显示为 - Some text to read |
8 | Ksort 它使用键对数组映射进行排序。 |
{% set ritems = {'orange':1, 'apple':2, 'peach':3}|ksort %} {% for key, value in ritems %}{{ key }}:{{ value }}, {% endfor %} 显示为 - apple:2, orange:1, peach:3, |
9 | 左修剪 它用于删除字符串开头的空格,并从字符串左侧删除给定的匹配字符。 |
'/strip/leading/slash/'|ltrim('/') 显示为 - strip/leading/slash/ |
10 | Markdown 它用于使用 Grav 的 markdown 解析器将包含 markdown 的字符串转换为 HTML。 |
'## some text with markdown'|markdown 显示为 -
|
11 | MD5 可以使用此过滤器创建字符串的 md5 哈希。 |
'something'|md5 显示为 - 437b930db84b8079c2dd804a71936b5f |
12 | 月化 使用 Monthize 过滤器,我们可以将整数天数转换为月数。 |
'61'|monthize 显示为 - 2 |
13 | 漂亮的时间 使用 Nice Time 过滤器,我们可以获得人类可读的时间格式的日期作为输出。 |
page.date|nicetime(false) 显示为 - 3 hrs ago |
14 | 序数化 可以使用 Ordinalize 过滤器为整数提供序数(如第 1 位、第 2 位、第 3 位)。 |
'78'| ordinalize 显示为 - 78th |
15 | 复数化 可以使用 Pluralize 过滤器将字符串转换为其英语复数形式。 |
'child'|pluralize 显示为 - children |
16 | 随机化 此过滤器有助于随机化提供的列表。如果参数包含任何值,则这些值将跳过随机化。 |
{% 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 | 右修剪 它与左修剪非常相似,只是它删除字符串右侧的空格和匹配字符。 |
'/strip/leading/slash/'|rtrim('/') 显示为 - /strip/leading/slash |
18 | 单数化 可以使用 Singular 过滤器将字符串转换为英语单数版本。 |
'vehicles'|singularize 显示为 - vehicle |
19 | 安全电子邮件 Safe Email 过滤器用于将电子邮件地址转换为 ASCII 字符,以便更难以对电子邮件进行垃圾邮件发送。 |
"[email protected]"|safe_email 输出为 - [email protected] |
20 | 按键排序 它用于使用键对数组映射进行排序。 |
{% set people = [{'email':'[email protected]', 'id':3}, {'email':'[email protected]', 'id':1}, {'email':'[email protected]', 'id':7}]|sort_by_key('id') %} {% for person in people %}{{ person.email }}:{{ person.id }}, {% endfor %} 它显示 - [email protected]:1, [email protected]:3, [email protected]:7, |
21 | 以…开头 您可以使用 Starts-With 过滤器确定字符串是否以给定字符串开头。 |
'this is an example for starts-with filter' |starts_with('this') 输出为 - true |
22 | 翻译 了解更多详细信息。 |
MY_LANGUAGE_KEY_STRING 它显示 - 'Some text in English' |
23 | 翻译管理员 它将字符串翻译成当前语言,该语言在**user.yaml**文件中设置。 |
|
24 | 标题化 使用 Titleize 将字符串转换为标题大小写格式。 |
'welcome page'|titleize 显示为 - Welcome Page |
25 | 下划线化 使用 UnderScoreize 过滤器进行格式化。 |
'ContactUs'|underscorize 它转换为 - contact_us |
26 | 截断字符串 您可以使用 Truncate 来截断字符串或缩短字符串,您必须指定字符数。 |
'one sentence. two sentences'|truncate(5) 它截断为 - one s... 如果您不想在给定字符数后将字符串截断到最接近的句子结尾,则可以使用**true**作为参数。 'one sentence. two sentences'|truncate(5, true) 它截断为 - one sentence您还可以剥离 HTML 文本,但您应该在**truncate**过滤器之前使用**striptags**过滤器。 '<p>one <strong>sentence<strong>. two sentences</p>'|striptags|truncate(5) 显示为 - one s |
Twig 函数
Twig 函数通过传递参数直接调用。下表列出了这些函数 -
序号 | 函数和描述 | 示例 |
---|---|---|
1 | 数组 此函数将值强制转换为数组。 |
array(value) |
2 | 授权 此函数使经过身份验证的用户有权查看资源,并接受权限字符串或权限字符串数组。 |
authorize(['admin.statistics', 'admin.super']) |
3 | 转储 它接受一个有效的 twig 变量并将其转储到 Grav 调试器面板中。但是,应启用调试器才能查看消息选项卡值。 |
dump(page.header) |
4 | 调试 此函数与 dump() 函数相同。 |
|
5 | 摘要 此函数根据 Github Gist ID 创建 Gist 嵌入代码。 |
|
6 | 随机字符串生成 此函数将创建具有指定字符数的随机字符串。这些字符串可以用作唯一 ID 或密钥。 |
generate_random_string(10) |
7 | 重复 此函数将重复给定次数的字符串。 |
repeat('Grav ', 10) will repeat Grav 10 times. |
8 | 字符串 生成指定字符长度的随机字符串。 |
ta (23) |
9 | 翻译数组 它是一个与**|ta**过滤器相关的函数。 |
|
10 | 网址 此过滤器将创建 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 |