Liquid 篩選器

支援所有標準的 Liquid 篩選器(請見下方)。

為了讓常見的任務更輕鬆,Jekyll 甚至加入了一些實用的自訂篩選器,您可以在此頁面找到所有這些篩選器。您也可以使用 外掛程式 建立自己的篩選器。

說明 篩選器輸出

相對網址

baseurl 設定值加到輸入前面,將網址路徑轉換為相對網址。建議用於寄放在網域子路徑的網站。

{{ "/assets/style.css" | relative_url }}

/my-baseurl/assets/style.css

絕對網址

urlbaseurl 值加到輸入前面,將網址路徑轉換為絕對網址。

{{ "/assets/style.css" | absolute_url }}

http://example.com/my-baseurl/assets/style.css

日期轉 XML Schema

將日期轉換為 XML Schema (ISO 8601) 格式。

{{ site.time | date_to_xmlschema }}

2008-11-07T13:07:54-08:00

日期轉 RFC-822 格式

將日期轉換為 RSS 饋源使用的 RFC-822 格式。

{{ site.time | date_to_rfc822 }}

Mon, 07 Nov 2008 13:07:54 -0800

日期轉字串

將日期轉換為短格式。

{{ site.time | date_to_string }}

07 Nov 2008

日期轉美國序數字串

將日期格式化為序數、美國、短格式。 3.8.0

{{ site.time | date_to_string: "ordinal", "US" }}

Nov 7th, 2008

日期轉長字串

將日期格式化為長格式。

{{ site.time | date_to_long_string }}

07 November 2008

日期轉英國序數長字串

將日期格式化為序數、英國、長格式。 3.8.0

{{ site.time | date_to_long_string: "ordinal" }}

7th November 2008

Where

選取陣列中所有鍵值與給定值相同的物件。

{{ site.members | where:"graduation_year","2014" }}

Where 表達式

選取陣列中所有符合表達式的物件。 3.2.0

{{ site.members | where_exp:"item", "item.graduation_year == 2014" }}

{{ site.members | where_exp:"item", "item.graduation_year < 2014" }}

{{ site.members | where_exp:"item", "item.projects contains 'foo'" }}

Find

傳回陣列中第一個物件,其查詢屬性具有指定值,或如果陣列中沒有任何項目符合指定條件,則傳回 nil4.1.0

{{ site.members | find: "graduation_year", "2014" }}

尋找表達式

傳回陣列中第一個物件,其指定表達式評估為 true,或如果陣列中沒有任何項目符合評估的表達式,則傳回 nil4.1.0

{{ site.members | find_exp:"item", "item.graduation_year == 2014" }}

{{ site.members | find_exp:"item", "item.graduation_year < 2014" }}

{{ site.members | find_exp:"item", "item.projects contains 'foo'" }}

依群組

依據指定屬性將陣列的項目分組。

{{ site.members | group_by:"graduation_year" }}

[{"name"=>"2013", "items"=>[...]}, {"name"=>"2014", "items"=>[...]}]

依群組表達式

使用 Liquid 表達式將陣列的項目分組。 3.4.0

{{ site.members | group_by_exp: "item", "item.graduation_year | truncate: 3, ''" }}

[{"name"=>"201", "items"=>[...]}, {"name"=>"200", "items"=>[...]}]

XML 轉譯

轉譯一些文字以用於 XML。

{{ page.content | xml_escape }}

CGI 轉譯

CGI 轉譯字串以用於 URL。將任何特殊字元替換為適當的 %XX 替換。CGI 轉譯通常會將空格替換為加號 + 符號。

{{ "foo, bar; baz?" | cgi_escape }}

foo%2C+bar%3B+baz%3F

URI 轉譯

百分比編碼 URI 中的任何特殊字元。URI 跳脫通常會將空白取代為 %20保留字元 不會 被跳脫。

{{ "http://foo.com/?q=foo, \bar?" | uri_escape }}

http://foo.com/?q=foo,%20%5Cbar?

字數

計算某段文字中的字數。
v4.1.0 開始,此篩選器會採用一個選用引數來控制 input 字串中中日韓 (CJK) 字元的處理方式。
傳遞 'cjk' 作為引數將會把偵測到的每個 CJK 字元計算為一個字,而不論是否以空白分隔。
傳遞 'auto' (自動偵測) 的運作方式類似於 'cjk',但如果篩選器用於可能包含或不包含 CJK 字元的變數字串,則效能會更好。

{{ "Hello world!" | number_of_words }}

2

{{ "你好hello世界world" | number_of_words }}

1

{{ "你好hello世界world" | number_of_words: "cjk" }}

6

{{ "你好hello世界world" | number_of_words: "auto" }}

6

陣列轉換為句子

將陣列轉換為句子。對於列出標籤很有用。連接詞的選用引數。

{{ page.tags | array_to_sentence_string }}

foo、bar 和 baz

{{ page.tags | array_to_sentence_string: "or" }}

foo、bar 或 baz

Markdown 化

將 Markdown 格式的字串轉換為 HTML。

{{ page.excerpt | markdownify }}

智慧化

將「引號」轉換為 “智慧型引號”。

{{ page.title | smartify }}

轉換 Sass/SCSS

將 Sass 或 SCSS 格式的字串轉換為 CSS。

{{ some_sass | sassify }}

{{ some_scss | scssify }}

Slug 化

將字串轉換為小寫 URL「slug」。請參閱下方選項。

{{ "The _config.yml file" | slugify }}

the-config-yml-file

{{ "The _config.yml file" | slugify: "pretty" }}

the-_config.yml-file

{{ "The _cönfig.yml file" | slugify: "ascii" }}

the-c-nfig-yml-file

{{ "The cönfig.yml file" | slugify: "latin" }}

the-config-yml-file

資料轉 JSON

將雜湊或陣列轉換為 JSON。

{{ site.data.projects | jsonify }}

標準化空白

將任何空白字元取代為單一空白。

{{ "a \n b" | normalize_whitespace }}

排序

對陣列進行排序。雜湊的選用參數 1. 屬性名稱 2. nil 順序(firstlast)。

{{ page.tags | sort }}

{{ site.posts | sort: "author" }}

{{ site.pages | sort: "title", "last" }}

範例

從陣列中挑選一個隨機值。選擇多個值亦可(選用)。

{{ site.pages | sample }}

{{ site.pages | sample: 2 }}

轉為整數

將字串或布林值轉換為整數。

{{ some_var | to_integer }}

陣列篩選器

將元素推入、彈出、左移和右移陣列。這些是非破壞性的,亦即它們不會改變陣列,而是複製一份並改變該副本。

{{ page.tags | push: "Spokane" }}

["Seattle", "Tacoma", "Spokane"]

{{ page.tags | pop }}

["Seattle"]

{{ page.tags | shift }}

["Tacoma"]

{{ page.tags | unshift: "Olympia" }}

["Olympia", "Seattle", "Tacoma"]

檢查

將物件轉換為其字串表示,以進行除錯。

{{ some_var | inspect }}

slugify 篩選器的選項

slugify 篩選器接受一個選項,每個選項指定要篩選的內容。預設值為 default。如下所示(以及它們篩選的內容)

  • none:沒有字元
  • raw:空白
  • default:空白和非字母數字字元
  • pretty:空白和非字母數字字元,但 ._~!$&'()+,;=@ 除外
  • ascii:空白、非字母數字和非 ASCII 字元
  • latin:類似於 default,但拉丁字元會先進行轉寫(例如 àèïòü 轉換為 aeiou3.7.0

使用 where 篩選器偵測 nil4.0

您可以使用 where 篩選器來偵測屬性為 nil"" 的文件和頁面。例如,

// Using `nil` to select posts that either do not have `my_prop`
// defined or `my_prop` has been set to `nil` explicitly.
{% assign filtered_posts = site.posts | where: 'my_prop', nil %}
// Using Liquid's special literal `empty` or `blank` to select
// posts that have `my_prop` set to an empty value.
{% assign filtered_posts = site.posts | where: 'my_prop', empty %}

where_exp 篩選器中的二元運算子4.0

您可以在傳遞給 where_exp 篩選器的表達式中使用 Liquid 二元運算子 orand,以在運算中使用多個條件。

例如,若要取得英文恐怖電影文件清單,可以使用下列程式片段

{{ site.movies | where_exp: "item", "item.genre == 'horror' and item.language == 'English'" }}

或者要取得以漫畫為基礎的電影清單,可以使用下列

{{ site.movies | where_exp: "item", "item.sub_genre == 'MCU' or item.sub_genre == 'DCEU'" }}

標準 Liquid 濾鏡

為了您的方便,以下是所有 Liquid 濾鏡 的清單,並附有連結至官方 Liquid 文件中的範例。