📜  Grav-Twig过滤器和函数

📅  最后修改于: 2020-10-25 05:23:16             🧑  作者: Mango


在本章中,让我们研究Twig过滤器和函数。过滤器也用于通过所需的输出以所需的方式格式化数据。函数用于生成内容。

Twig模板是文本文件,其中包含用值替换的表达式和变量。 Twig使用三种类型的标签。

  • 输出标签-以下语法用于在此处显示评估的表达式结果。

{{  Place Your Output Here  }}
  • 动作标签-以下语法用于在此处执行语句。

{%  executable statements are placed here  %}
  • 注释标签-以下语法用于在Twig模板文件中写入注释。

{#  write your comment here  #}

树枝过滤器

树枝过滤器使用|用于将过滤器应用于Twig变量的字符,后跟过滤器名称。像Twig函数一样,可以在括号中传递参数。

下表显示了Grav中使用的Twig过滤器-

Sr.No. Filter & Description Example
1

Absolute URL

It takes the relative path and converts it to an absolute URL.

'' |absolute_url

converts to −


2

Camelize

It converts a string to CamelCase format.

'contact_us'| camelize

converts to −

ContactUs
3

Contains

if it finds the string.

'This is some string' | contains('some')

the output is −

1
4

Defined

You can check if some variable is defined or not. If variable is not defined, you can provide a default value.

set header_image_width = 
page.header.header_image_width|defined(900)

It sets header_image_width with value 900 if it’s not defined.

5

Ends-With

You can determine whether a string ends with a given string by using Ends-With filter.

'this is an example for ends-with filter' | ends_with('filter')

it is displayed as −

True
6

FieldName

It filters the field name by changing dot into array notation.

'field.name'|fieldName

it is displayed as −

field[name]
7

Humanize

It is used to convert a string to human readable format.

'some_text_to_read'|humanize

it is displayed as −

Some text to read
8

Ksort

It sorts an array map using key.

{% set ritems = {'orange':1, 'apple':2, 'peach':3}|ksort %}
{% for key, value in ritems %}{{ key }}:{{ value }}, {% endfor %}

it is displayed as −

apple:2, orange:1, peach:3,
9

Left Trim

It is used to remove white spaces at the beginning of a string and removes the matching character given from the left side of the string.

'/strip/leading/slash/'|ltrim('/')

it is displayed as −

strip/leading/slash/
10

Markdown

It is used to convert the string containing markdown into HTML using the markdown parser of Grav.

'## some text with markdown'|markdown

it is displayed as −

some text with markdown

11

MD5

The md5 hash for the string can be created by using this filter.

'something'|md5

it is displayed as −

437b930db84b8079c2dd804a71936b5f
12

Monthize

By using Monthize filter, we can convert an integer number of days to number of months.

'61'|monthize

it is displayed as −

2
13

Nice Time

By using the Nice Time filter, we can get a date in nice human readable time format as output.

page.date|nicetime(false)

it is displayed as −

3 hrs ago
14

Ordinalize

Ordinals ( like 1st, 2nd, 3rd ) can be given to integers by using Ordinalize filter.

'78'| ordinalize

it is displayed as −

78th
15

Pluralize

A string can be converted to its plural English form by using Pluralize filter.

'child'|pluralize

it is displayed as −

children
16

Randomize

This filter helps randomize the provided list. If parameter contains any values then those values are skipped from randomizing.

{% set ritems = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten']|randomize(3) %}
{% for ritem in ritems %}{{ ritem }}, {% endfor %}

it is displayed as −

one, two, three, eight, six, five, nine, seven, ten, four,
17

Right Trim

It is quite similar to left trim except it removes whitespaces and matched character from right side of the string.

'/strip/leading/slash/'|rtrim('/')

it is displayed as −

/strip/leading/slash
18

Singularize

A string can be converted to English singular version by using Singular filter.

'vehicles'|singularize

it is displayed as −

vehicle
19

Safe Email

Safe Email filter is used to convert an email address into ASCII characters so that it makes harder for an email to be spammed.

"someoneemailaddress@domain.com"|safe_email

the output is −

someoneemailaddress@domain.com
20

SortByKey

It is used to sort the array map using keys.

{% 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 %}

it displays −

melw@fdd.com:1, john@gmail.com:3, nancy@fb.com:7,
21

Starts-With

You can determine whether a string starts with a given string by using Starts-With filter.

'this is an example for starts-with filter' |starts_with('this')

the output is −

true
22

Translate

for more detailed information.

MY_LANGUAGE_KEY_STRING

it displays −

'Some text in English'
23

Translate Admin

It translates a string into current language which is set in the user.yaml file.

24

Titleize

A string is converted into Title Case format by using Titleize.

'welcome page'|titleize

it is displayed as −

Welcome Page
25

UnderScoreize

format by using UnderScoreize filter.

'ContactUs'|underscorize

it is converted to −

contact_us
26

Truncate a string

You can use Truncate to truncate a string or shorten the string, you must specify number of characters.

'one sentence. two sentences'|truncate(5)

it truncates to −

one s...

You can use true as parameter if you don’t want to truncate the string to closest sentence-end after the given number of characters.

'one sentence. two sentences'|truncate(5, true)

it truncates to −

one sentence

You can also strip HTML text, but you should use striptags filter before truncate filter.

'

one sentence. two sentences

'|striptags|truncate(5)

it is displayed as −

one s

树枝功能

通过传递参数直接调用Twig函数。下表列出了功能-

Sr.No. Function & Description Example
1

Array

This function cast a value to array.

array(value)
2

Authorize

This function makes an authenticated user is authorized to see a resource and accepts permission string or array of permission strings.

authorize(['admin.statistics', 'admin.super'])
3

Dump

It accepts a valid twig variable and dumps it into the Grav debugger panel. However, the debugger should be enabled to see message tab values.

dump(page.header)
4

Debug

This works same as the dump() function.

5

Gist

This function creates the Gist embed code based on the Github Gist ID.

6

Random String Generation

This function will create a random string with the specified number of characters. These strings can be used as unique id or key.

generate_random_string(10)
7

Repeat

This function will repeat the string for given amount of time.

repeat('Grav ', 10) will repeat Grav 10 times.
8

String

Generates a random string of specified character length.

ta (23)
9

Translate Array

It is a function connected with |ta filter.

10

Url

This filter will create a URL and it will also convert PHP URL streams into valid HTML resources. If the URL cannot be resolved a default value can be passed.

url('theme://images/logo.png') | default('http://www.placehold.it/150x100/f4f4f4')
11

Translate

Using the Translate filter,
a string is translated as the |t filter.

t('SITE_NAME')

is translated to −

Site Name