在本章中,我们将研究 Twig过滤器和函数.过滤器也用于根据需要使用所需输出格式化数据.函数用于生成内容.
Twig模板是包含由值替换的表达式和变量的文本文件. Twig使用三种类型的标签.
输出标签 : 以下语法用于在此处显示已计算的表达式结果.
{{ Place Your Output Here }}
动作标签 : 以下语法用于执行语句.
{% executable statements are placed here %}
评论标签 : 以下语法用于在Twig模板文件中写入注释.
{# write your comment here #}
树枝过滤器
Twig过滤器使用 | 字符来将过滤器应用于Twig变量,后跟过滤器名称.参数可以像括号函数一样在括号中传递.
下表显示了在Grav
: 中使用的Twig过滤器;
Sr.No. | Filter&说明 | 示例 |
---|---|---|
1 | 绝对网址 它采用相对路径并将其转换为绝对URL. | '< img src ="/some/path/img.jpg"/>'| absolute_url 转换为 : < img src ="https://img01.yuandaxia.cn/Content/img/tutorials/grav/img.jpg"/> |
2 | Camelize 它将字符串转换为CamelCase格式. | 'contact_us'| camelize 转换为 : {# write your comment here #} |
3 | 包含 如果找到string. | '这是一些字符串' |包含('some') 输出为 : 1 |
4 | 定义 您可以检查是否定义了某个变量或不.如果未定义变量,则可以提供默认值. | set header_image_width = page.header.header_image_width | defined(900) 设置 header_image_width 如果没有定义,则值为900. |
5 | Ends-With 您可以确定是否为字符串通过使用Ends-With过滤器以给定字符串结尾. | 'this is an example for ends-with filter' | ends_with('filter') 显示为 : True |
6 | FieldName 它通过更改过滤字段名称点到数组表示法. | 'field.name'|fieldName 显示为 : field[name] |
7 | Humanize 它用于转换a字符串到人类可读格式. | 'seat_text_to_read '| humanize 它显示为 : 'some_text_to_read'|humanize |
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的降价解析器标记为HTML. | '## some text with markdown'|markdown 它显示为 : some text with markdown |
11 | MD5 字符串的md5哈希值可以是通过使用此过滤器创建. | 'something'|md5 显示为 : 437b930db84b8079c2dd804a71936b5f |
12 | Monthize 通过使用Monthize过滤器,我们可以转换整数天数到月数. | '61'|monthize 显示为 : 2 |
13 | 美好时光 使用Nice Time过滤器,我们可以用漂亮的人类可读时间格式作为输出. | page.date | nicetime(false) 显示为 : 3 hrs ago |
14 | Ordinalize 普通(如1 st ,2 nd ,3 rd )可以使用Ordinalize过滤器给出整数. | '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)%} {ritem in ritems%} {{ritem}},{%endfor%} it显示为 : one, two, three, eight, six, five, nine, seven, ten, four, |
17 | Right Trim 它与左边裁剪非常相似除了它从字符串右侧删除空格和匹配的字符. | '/strip/leading/slash/'| rtrim('/') 显示为 : /strip/leading/slash |
18 | Singularize 一个字符串可以转换为英文单数使用奇异滤波器的版本. | 'vehicles'|singularize 显示为 : vehicle |
19 | 安全电子邮件 安全电子邮件过滤器用于转换一个电子邮件地址转换成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')%} {%in 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过滤器以给定字符串开头. | '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 格式,使用UnderScoreize过滤器. | 'ContactUs'| undercorize 它转换为 : contact_us |
26 | 截断字符串 您可以使用Truncate截断字符串或缩短字符串,您必须指定字符数. | 'one sentence. two sentences'|truncate(5) 它截断到 : one s ... 你可以用 true 作为参数,如果你不想在给定的字符数后将字符串截断到最接近的句末. 'one sentence. two sentences'|truncate(5, true) 它截断为 : one sentence 您也可以删除HTML文本,但在之前应该使用 striptags 过滤器truncate filter. ' 它显示为 : one s |
Twig函数
Twig函数通过传递参数直接调用.下表列出了函数 :
Sr.No. | 功能&说明 | 示例 |
---|---|---|
1 | 数组 这函数将值转换为数组. | array (value) |
2 | 授权 此函数使经过身份验证的用户有权查看资源并接受权限字符串或权限字符串数组. | authorize(['admin.statistics','admin.super']) |
3 | 转储 它接受一个有效的twig变量并将其转储到Grav调试器面板中.但是,应启用调试器以查看消息选项卡值. | dump(page.header) |
4 | 调试 这与dump()函数的作用相同. | |
5 | Gist 此函数根据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 此过滤器将创建一个URL,它还将PHP URL流转换为有效的HTML资源.如果无法解析URL,则可以传递默认值. | url('theme://images/logo.png') | default('https://img01.yuandaxia.cn/Content/img/tutorials/grav/f4f4f4').png |
11 | 翻译 使用翻译过滤器, | t('SITE_NAME') 被翻译为 : Site Name |