- 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 字元,以便更難以對電子郵件進行垃圾郵件傳送。 |
"someoneemailaddress@domain.com"|safe_email 輸出為 - someoneemailaddress@domain.com |
| 20 | 按鍵排序 它用於使用鍵對陣列對映進行排序。 |
{% 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 過濾器確定字串是否以給定字串開頭。 |
'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 |