Grav - Twig滤波器和函数

在本章中,我们将研究 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.
'<p>one <strong>sentence<strong>. two sentences</p>'|striptags|truncate(5)

它显示为 :

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

翻译

使用翻译过滤器,
a字符串被翻译为 | t 过滤器.

t('SITE_NAME')

被翻译为 :

Site Name