Liquidフィルタ

標準的なLiquid フィルタはすべてサポートされています(下記参照)。

一般的なタスクを容易にするために、Jekyllは独自の便利なフィルタをいくつか追加しており、それらはすべてこのページにあります。また、プラグインを使用して独自のフィルタを作成することもできます。

説明 フィルタ出力

相対URL

入力に`baseurl`設定値を付加して、URLパスを相対URLに変換します。これは、ドメインのサブパスにホストされているサイトに推奨されます。

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

/my-baseurl/assets/style.css

絶対URL

入力に`url`と`baseurl`の値を付加して、URLパスを絶対URLに変換します。

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

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

日付をXMLスキーマ形式に変換

日付をXMLスキーマ(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

クエリされた属性が指定された値を持つ配列内の**最初のオブジェクト**を返し、配列内のどのアイテムも指定された条件を満たさない場合は`nil`を返します。4.1.0

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

Find式

指定された式が真になる配列内の**最初のオブジェクト**を返し、配列内のどのアイテムも評価された式を満たさない場合は`nil`を返します。4.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'" }}

GroupBy

指定されたプロパティで配列のアイテムをグループ化します。

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

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

GroupBy式

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エスケープ

URLで使用するために文字列をCGIエスケープします。特殊文字を適切な`%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文字はすべて1単語としてカウントされます。
`'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 }}

スラッグ化

文字列を小文字のURL「スラッグ」に変換します。オプションについては下記を参照してください。

{{ "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の順序(*先頭*または*末尾*)があります。

{{ 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と同様ですが、ラテン文字は最初に転写されます(例:àèïòüaeiouに)3.7.0

whereフィルタによるnil値の検出4.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フィルタにおける2項演算子4.0

where_expフィルタに渡される式でLiquidの2項演算子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フィルタのリストを以下に示します。