Liquidフィルタ

全ての標準Liquidフィルタはサポートされています(以下をご覧ください)。

共通のタスクを簡単にするため、Jekyllはいくらかのフィルタを追加していて、それはこのページに全て掲載しています。また、プラグインであなた自身のフィルタを作ることもできます。

説明 フィルタ出力

Relative URL

入力値の前にbaseurlを追加する。サイトがrootドメインの場合よりサブパスでホストされている場合に便利です。

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

/my-baseurl/assets/style.css

Absolute URL

入力値の前にurlbaseurlを追加する。

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

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

Date to XML Schema

DateをXML Schema (ISO 8601)フォーマットに変換する。

{{ site.time | date_to_xmlschema }}

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

Date to RFC-822 Format

DateをRSSフィードで使うthe RFC-822フォーマットに変換する。

{{ site.time | date_to_rfc822 }}

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

Date to String

dateをshortフォーマットに変換する。

{{ site.time | date_to_string }}

07 Nov 2008

Date to String in ordinal US style

Format a date to ordinal, US, short format. 3.8.0

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

Nov 7th, 2008

Date to Long String

dateをlongフォーマットにする。

{{ site.time | date_to_long_string }}

07 November 2008

Date to Long String in ordinal UK style

Format a date to ordinal, UK, long format. 3.8.0

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

7th November 2008

Where

キーで指定した値を持つ配列内のオブジェクトを全て選択する。

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

Where Expression

式がtrueになる配列内の全てのオブジェクトを選択する。 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 Expression

指定された条件を満たすを持つ配列内の最初のオブジェクトを返します。配列内のアイテムが指定された条件を満たさない場合は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'" }}

Group By

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

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

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

Group By Expression

Liquidの式を使用して、配列内のアイテムをグループ化する。 3.4.0

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

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

XML Escape

XMLで使用するためにテキストをエスケープする。

{{ page.content | xml_escape }}

CGI Escape

CGI escapeはURLで使用する文字列をエスケープする。特殊文字を適切な%XXに置き換える。CGI escapeは通常、スペースをプラス+にする。

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

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

URI Escape

URI内の特殊文字をパーセントエンコードする。URIエスケープは通常スペースを%20に置き換る。予約文字はエスケープされない。

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

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

Number of Words

テキストの単語数を数えます。
v4.1.0以降、このフィルターはオプションの引数を取り、input文字列内のChinese-Japanese-Korean (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

Array to Sentence

配列をセンテンスに変換する。タグのリスト化に便利。オプションで接続文字を指定できる。

{{ page.tags | array_to_sentence_string }}

foo, bar, and baz

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

foo, bar, or baz

Markdownify

Markdown-formatted stringをHTMLに変換する。

{{ page.excerpt | markdownify }}

Smartify

"quotes"を“smart quotes.”に変換する。

{{ page.title | smartify }}

Converting Sass/SCSS

Sass-やSCSS-formatted stringをCSSに変換する。

{{ some_sass | sassify }}

{{ some_scss | scssify }}

Slugify

stringを小文字の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

Data To JSON

HashやArrayをJSONに変換。

{{ site.data.projects | jsonify }}

Normalize Whitespace

すべての空白を単一の空白に置き換える。

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

Sort

配列をソート。ハッシュのオプション引数 1. プロパティ名 2. nils order (firstlast).

{{ page.tags | sort }}

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

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

Sample

配列からランダムに取得。オプションで複数を取得可能。

{{ site.pages | sample }}

{{ site.pages | sample: 2 }}

To Integer

stringやbooleanをintegerに変換。

{{ some_var | to_integer }}

Array Filters

配列のPush, pop, shift, and unshift属性。これらは破壊的ではありません。つまり、配列を変更するのではなく、コピーを作成してそれを変更します。

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

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

{{ page.tags | pop }}

["Seattle"]

{{ page.tags | shift }}

["Tacoma"]

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

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

Inspect

デバッグのためにオブジェクトをそのStringに変換する。

{{ some_var | inspect }}

slugifyフィルタのオプション

slugifyフィルタはオプションを受け入れ、それぞれがフィルタが何をするのかを指定します。デフォルトはdefaultです。以下に(何をフィルタするのかと共に)示します。

  • none: 文字無し
  • raw: スペース
  • default: スペースと、英数字以外の文字
  • pretty: スペースと、._~!$&'()+,;=@を除く英数字以外の文字
  • ascii: スペース、英数字以外の文字、ASCII以外の文字
  • latin: defaultに似ている。ラテン文字以外は最初に音訳される(例えば、àèïòüaeiouに)3.7.0

whereフィルタでのnil値の検出4.0

プロパティがnil""のドキュメントやページの検出にwhereフィルタを使用できます。例えば、

// `my_prop`が設定されていないか、明示的に`nil`が設定されているポストを選択するために`nil`を使う。
{% assign filtered_posts = site.posts | where: 'my_prop', nil %}
// `my_prop`に空文字が設定されているポストを選択するために、Liquidの特別なリテラル`empty`や`blank`を使う。
{% assign filtered_posts = site.posts | where: 'my_prop', empty %}

where_expフィルタのBinary operators4.0

Liquid binary operatorsのorand演算子を使用して、where_expフィルタに複数の条件を渡すことができます。

例えば、英語のホラー映画に関するドキュメントのリストを得るのに、次のスニペットを使用できます。

{{ 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ドキュメンテーション内の使用例へのリンクと共に掲載しています。