使用可能な Liquid フィルター

Liquid フィルターは文字列、数字、変数、およびオブジェクトの出力を変更するために使用されます。 これらは、| によって適用される値とは区切られています。

{{ 'hal 9000' | upcase }} <!-- Output: HAL 9000 -->

パラメーターを受け入れるフィルターもあります。 またフィルターを組み合わせて左から右の順序に適用することもできます。

{{ 2 | times: 2 | minus: 1 }} <!-- Output: 3 -->

{{ "Hello, " | append: user.firstname }} <!-- Output: Hello, Dave -->

下のセクションでは、さまざまなフィルターについて説明します。

配列のフィルター

配列のフィルターは、配列の操作をする際に使用します。

バッチ

配列を、指定したサイズの複数の配列に分割します。

コード

{% assign batches = entityview.records | batch: 2 %}

{% for batch in batches %}

<ul>

{% for item in batch %}

<li>{{ item.fullname }}</li>

{% endfor %}

</ul>

{% endfor %}

出力

<ul>

<li>John Smith</li>

<li>Dave Thomas</li>

</ul>

<ul>

<li>Jake Johnson</li>

<li>Jack Robinson</li>

</ul>

concat (連結)

2 つの配列を 1 つの新しい配列に連結します。

パラメーターとして 1 つの要素がある場合、concat は、指定の要素を最後に置く、元の配列から構成される新しい配列を返します。

コード

Group #1: {{ group1 | join: ', ' }}

Group #2: {{ group2 | join: ', ' }}

Group #1 + Group #2: {{ group1 | concat: group2 | join: ', ' }}

Group #1 + Leslie: {{ group1 | concat: 'Leslie' | join: ', ' }}

出力

Group #1: John, Pete, Hannah

Group #2: Joan, Bill

Group #1 + Group #2: John, Pete, Hannah, Joan, Bill

Group #1 + Leslie: John, Pete, Hannah, Leslie

except (除外)

配列内で、指定した属性について指定した値を持たない、すべてのオブジェクトを選択します。 (これは where の反対です。)

コード

{% assign redmond = entityview.records | except: 'address1_city', 'Redmond' %}

{% for item in redmond %}

{{ item.fullname }}

{% endfor %}

出力

Jack Robinson

第 1

配列の最初の要素を返します。

タグ内で使用する必要がある場合など、ドットを使用する特殊表記でも first を使用することができます。

コード

{% assign words = "This is a run of text" | split: " " %}

{{ words | first }}

{% if words.first == "This" %}

The first word is "This".

{% endif %}

出力

This

The first word is "This".

グループ化

指定した属性で、配列の項目をグループ化します。

コード

{% assign groups = entityview.records | group_by: 'address1_city' %}

{% for group in groups %}

{{ group.key }}:

{% for item in group.items %}

{{ item.fullname }}

{% endfor %}

{% endfor %}

出力

Redmond:

John Smith

Dave Thomas

Jake Johnson

New York:

Jack Robinson

join (結合)

パラメーターで渡される文字を使用して、配列の要素を結合します。 結果は、単一の文字列になります。

コード

{% assign words = "This is a run of text" | split: " " %}

{{ words | join: ", " }}

出力

This, is, a, run, of, text

最終

配列の最後の要素を返します。

タグ内で使用する必要がある場合など、ドットを使用する特殊表記でも last を使用することができます。

コード

{% assign words = "This is a run of text" | split: " " -%}

{{ words | last }}

{% if words.last == "text" -%}

The last word is "text".

{% endif -%}

出力

text

The last word is "text".

order_by

指定した属性で配列要素を並べ替えた配列要素を返します。

オプションで、2 番目のパラメーターとして desc を指定すると、昇順のかわりに降順で要素を並べ替えます。

コード

{{ entityview.records | order_by: 'fullname' | join: ', ' }}

{{ entityview.records | order_by: 'fullname', 'desc' | join: ', ' }}

出力

Dave Thomas, Jack Robinson, Jake Johnson, John Smith

John Smith, Jake Johnson, Jack Robinson, Dave Thomas

random (ランダム)

配列から、ランダムに選択された単一の項目を返します。

コード

{{ group1 | join: ', ' }}

{{ group1 | random }}

出力

John, Pete, Hannah

Pete

select (選択)

配列の各項目について指定した属性の値を選択し、これらの値を配列として返します。

コード

{{ entityview.records | select: 'address1_city' | join: ', ' }}

出力

Redmond, New York

shuffle (シャッフル)

配列に使用すると、同じ項目を含んだ、ランダムな順で並び替えられた新しい配列を返します。

コード

{{ group1 | join: ', ' }}

{{ group1 | shuffle | join: ', ' }}

出力

John, Pete, Hannah

Hannah, John, Pete

size (サイズ)

配列内の項目の数を返します。

タグ内で使用する必要がある場合など、ドットを使用する特殊表記でも size を使用することができます。

コード

{% assign words = "This is a run of text" | split: " " -%}

{{ words | size }}

{% if words.size == 6 -%}

The text contains 6 words.

{% endif -%}

出力

6

The text contains 6 words.

skip (スキップ)

配列内で指定した数の項目をスキップし、残りの配列を返します。

コード

{% assign words = "This is a run of text" | split: " " %}

{{ words | skip: 3 | join: ', ' }}

出力

run, of, text

take (取り出し)

配列から指定した数の項目を取り出し、取り出した項目を返します。

コード

{% assign words = "This is a run of text" | split: " " %}

{{ words | take: 3 | join: ', ' }}

出力


This, is, a

then_by

すでに order_by で並び替えられている配列に、後続の並び替え基準を追加します。

オプションで、2 番目のパラメーターとして desc を指定すると、昇順のかわりに降順で要素を並べ替えます。

コード

{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname' | join: ', ' }}

{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname', 'desc' | join: ', ' }}

出力

Dave Thomas, Jack Robinson, Jake Johnson, John Smith

John Smith, Jake Johnson, Jack Robinson, Dave Thomas

ここで、

配列内で、指定した属性について指定した値を持つ、すべてのオブジェクトを選択します。

コード

{% assign redmond = entityview.records | where: 'address1_city', 'Redmond' %}

{% for item in redmond %}

{{ item.fullname }}

{% endfor %}

出力

John Smith

Dave Thomas

Jake Johnson

日付フィルター

日付フィルターは、日付の計算や、DateTime 値のさまざまな形式への変換に使用します。

日付

.NET の書式設定文字列を使用して DateTime 値を書式設定します。

標準の日付および時刻の書式設定文字列

カスタムの日付および時刻の書式設定文字列

コード

{{ now | date: 'g' }}

{{ now | date: 'MMMM dd, yyyy' }}

出力

5/7/2018 7:20 AM

May 07, 2018

date_add_days

DateTime 値に、整数または小数の日数を加算します。 パラメーターは正および負を使用できます。

コード

{{ now }}

{{ now | date_add_days: 1 }}

{{ now | date_add_days: -2.5 }}

出力

5/7/2018 7:20:46 AM

5/8/2018 7:20:46 AM

5/4/2018 7:20:46 PM

date_add_hours

DateTime 値に、整数または小数の時間を加算します。 パラメーターは正および負を使用できます。

コード

{{ now }}

{{ now | date_add_hours: 1 }}

{{ now | date_add_hours: -2.5 }}

出力

5/7/2018 7:20:46 AM

5/7/2018 8:20:46 AM

5/7/2018 4:50:46 AM

date_add_minutes

DateTime 値に、整数または小数の分を加算します。 パラメーターは正および負を使用できます。

コード

{{ now }}

{{ now | date_add_minutes: 10 }}

{{ now | date_add_minutes: -2.5 }}

出力

5/7/2018 7:20:46 AM

5/7/2018 7:30:46 AM

5/7/2018 7:18:16 AM

date_add_months

DateTime 値に、整数の月を加算します。 パラメーターは正および負を使用できます。

コード

{{ now }}

{{ now | date_add_months: 1 }}

{{ now | date_add_months: -2 }}

出力

5/7/2018 7:20:46 AM

6/7/2018 7:20:46 AM

3/7/2018 7:20:46 AM

date_add_seconds

DateTime 値に、整数または小数の秒を加算します。 パラメーターは正および負を使用できます。

コード

{{ now }}

{{ now | date_add_seconds: 10 }}

{{ now | date_add_seconds: -1.25 }}

出力

5/7/2018 7:20:46 AM

5/7/2018 7:20:56 AM

5/7/2018 7:20:45 AM

date_add_years

DateTime 値に、整数の年を加算します。 パラメーターは正および負を使用できます。

コード

{{ now }}

{{ now | date_add_years: 1 }}

{{ now | date_add_years: -2 }}

出力

5/7/2018 7:20:46 AM

5/7/2019 7:20:46 AM

5/7/2016 7:20:46 AM

date_to_iso8601

DateTime 値を ISO 8601 標準に従って書式設定します。 Atom フィード や HTML5 の <時間> 要素を作成する場合に役立ちます。

コード

{{ now | date_to_iso8601 }}

出力

2018-05-07T07:20:46Z

date_to_rfc822

DateTime 値を RFC 822 標準に従って書式設定します。 RSS フィード を作成する場合に役立ちます。

コード

{{ now | date_to_rfc822 }}

出力

Mon, 07 May 2018 07:20:46 Z

エンティティ リスト フィルター

特定の entitylist 属性値を使用するため、およびエンティティ リスト ビューを作成するために、エンティティ リスト フィルターを使用します。

current_sort

指定された並べ替えを定義する式は、指定された属性を並べ替える現在方向を返します。

コード

{{ 'name ASC, createdon DESC' | current_sort: 'createdon' }}

出力

DESC

metafilters

entitylist filter_definition JSON 値を解析してフィルター オプション グループ オブジェクトにします。

metafilters には現在の属性フィルター クエリと現在の entitylist がオプションで提供され、返されたフィルター オブジェクトを選択または選択解除のいずれかにフラグ設定できるようになります。

コード

{% assign filters = entitylist | metafilters: params.mf, entityview %}
{% if filters.size > 0 %}
  <ul id="entitylist-filters">
    {% for filter in filters %}
      <li class="entitylist-filter-option-group">
        {% if filter.selection_mode == 'Single' %}
          {% assign type = 'radio' %}
        {% else %}
          {% assign type = 'checkbox' %}
        {% endif %}
        <h4 class="entitylist-filter-option-group-label"
          data-filter-id="{{ filter.id | h }}">
          {{ filter.label | h }}
        </h4>
        <ul>
          {% for option in filter.options %}
            <li class="entitylist-filter-option">
              {% if option.type == 'text' %}
                <div class="input-group entitylist-filter-option-text">
                  <span class="input-group-addon">
                    <span class="fa fa-filter" aria-hidden="true"></span>
                  </span>
                  <input class="form-control"
                    type="text"
                    name="{{ filter.id | h }}"
                    value="{{ option.text | h }}" />
                </div>
              {% else %}
                <div class="{{ type | h }}">
                  <label>
                    <input
                      type="{{ type | h }}"
                      name="{{ filter.id | h }}"
                      value="{{ option.id | h }}"
                      {% if option.checked %}
                        checked="checked"
                        data-checked="true"{% endif %}
                      />
                    {{ option.label | h }}
                  </label>
                </div>
              {% endif %}
            </li>
          {% endfor %}
        </ul>
      </li>
    {% endfor %}
  </ul>
  <button class="btn btn-default" data-serialized-query="mf" data-target="#entitylist-filters">Apply Filters</button>
{% endif %}

reverse_sort

指定された並べ替えの向きとは逆の向きを返します。

コード

<!-- Sort direction is not case-sensitive -->

{{ 'ASC' | reverse_sort }}

{{ 'desc' | reverse_sort }}

出力

DESC

ASC

Math フィルター

Math フィルターは、数値 による、数学的操作の実行を可能にします。

すべてのフィルターと同じように、Math フィルターはつなげることが可能で、左から右の順に適用されます。

コード

{{ 10 | times: 2 | minus: 5 | divided_by: 3 }}

出力

5

ceil

最近似値の整数に最も近い上の値に四捨五入します。

コード

{{ 4.6 | ceil }}

{{ 4.3 | ceil }}

出力

5

5

divided_by

異なる数で数を分けます。

コード

{{ 10 | divided_by: 2 }}

{{ 10 | divided_by: 3 }}

{{ 10.0 | divided_by: 3 }}

出力

5

3

3.333333

floor

最近似値の整数に最も近い下の値に四捨五入します。

コード

{{ 4.6 | floor }}

{{ 4.3 | floor }}

出力

4

4

minus

別の数から数を減算します。

コード

<!-- entityview.page = 11 -->

{{ entityview.page | minus: 1 }}

{{ 10 | minus: 1.1 }}

{{ 10.1 | minus: 1 }}

出力

10

9

9.1

modulo

別の数で数を分割し、残りの数を返します。

コード

{{ 12 | modulo: 5 }}

出力

2

plus

他の数に数を追加します。

コード

<!-- entityview.page = 11 -->

{{ entityview.page | plus: 1 }}

{{ 10 | plus: 1.1 }}

{{ 10.1 | plus: 1 }}

出力

12

11

11.1

round

最近似値の整数、または指定された小数点で値を四捨五入します。

コード

{{ 4.6 | round }}

{{ 4.3 | round }}

{{ 4.5612 | round: 2 }}

出力

5

4

4.56

times

異なる数で数を乗数します。

コード

{{ 10 | times: 2 }}

{{ 10 | times: 2.2 }}

{{ 10.1 | times: 2 }}

出力

20

20

20.2

文字列フィルター

文字列フィルタは、文字列 を処理します。

追加

別の文字列の末尾に文字列を追加します。

コード

{{ 'filename' | append: '.js' }}

出力

filename.js

capitalize

文字列の最初の単語の先頭を大文字にします。

コード

{{ 'capitalize me' | capitalize }}

出力

Capitalize Me

downcase

文字列を小文字に変換します。

コード

{{ 'MIxed Case TExt' | downcase }}

出力

mixed case text

escape

HTML のエスケープ文字列。

コード

{{ '<p>test</p>' | escape }}

出力

&lt;p&gt;test&lt;/p&gt;

newline_to_br

文字列の中の改行位置に、改行の HTML タグ <br /> を挿入します。

コード

{% capture text %}

A

B

C

{% endcapture %}

{{ text | newline_to_br }}

出力

A<br />

B<br />

C<br />

prepend

別の文字列の先頭に文字列を追加します。

コード

{{ 'Jane Johnson' | prepend: 'Dr. ' }}

出力

Dr. Jane Johnson

remove

文字列から特定のサブストリングをすべて削除します。

コード

{{ 'Hello, Dave. How are you, Dave?' | remove: 'Dave' }}

出力

Hello, . How are you, ?

remove_first

文字列から最初の特定のサブストリングを削除します。

コード

{{ 'Hello, Dave. How are you, Dave?' | remove_first: 'Dave' }}

出力

Hello, . How are you, Dave?

replace

文字列から特定のサブストリングをすべて別の文字列に置換します。

コード

{{ 'Hello, Dave. How are you, Dave?' | replace: 'Dave', 'John' }}

出力

Hello, John. How are you, John?

replace_first

文字列から最初の特定のサブストリングを別の文字列に置換します。

コード

{{ 'Hello, Dave. How are you, Dave?' | replace_first: 'Dave', 'John' }}

出力

Hello, John. How are you, Dave?

split

split フィルタは、サブストリングをパラメーターとして受け取ります。 そのサブストリングは、文字列を配列に分割する際の区切り文字として使用されます。

コード

{% assign words = "This is a demo of the split filter" | split: ' ' %}

First word: {{ words.first }}

First word: {{ words[0] }}

Second word: {{ words[1] }}

Last word: {{ words.last }}

All words: {{ words | join: ', ' }}

出力

First word: This

First word: This

Second word: is

Last word: filter

All words: This, is, a, demo, of, the, split, filter

strip_html

文字列のすべての HTML タグを除去します。

コード

<p>Hello</p>

出力

Hello

strip_newlines

文字列からすべての改行を除去します。

コード

{% capture text %}

A

B

C

{% endcapture %}

{{ text | strip_newlines }}

出力

ABC

text_to_html

プレーン テキストを単純な HTML として整形します。 すべてのテキストが HTML にエンコードされます。改行で区切られたテキストのブロックは、パラグラフ タグ <p> で囲われます。単一の改行は <br> に置換されます。URL はハイパーリンクに変換されます。

コード

{{ note.notetext | text_to_html }}

出力

<p>This is the first paragraph of notetext. It contains a URL: <a href="http://example.com/" rel="nofollow">http://example.com</a></p>

<p>This is a second paragraph.</p>

truncate

文字列を指定された文字数で切り出します。 省略記号 (...) が文字列に付けられ、これも文字数に含まれます。

コード

{{ 'This is a long run of text.' | truncate: 10 }}

出力

This is...

truncate_words

文字列を指定された単語数で切り出します。 切り出した文字列には省略記号 (...) が付けられます。

コード

{{ 'This is a long run of text.' | truncate_words: 3 }}

出力

This is a...

upcase

文字列を大文字に変換します。

コード

{{ 'MIxed Case TExt' | upcase }}

出力

MIXED CASE TEXT

url_escape

文字列を URL エスケープして、URL として含められるようにします。

コード

{{ 'This & that//' | url_escape }}

出力

This+%26+that%2F%2F

xml_escape

文字列を XML エスケープして、XML 出力の中で使用できるようにします。

コード

{{ '<p>test</p>' | xml_escape }}

出力

&lt;p&gt;test&lt;/p&gt;

フィルターの入力

型のフィルターにより、ある型の値を他の型の値に変換することができます。

boolean

文字列値をブール値に変換しようとします。 この値がすでにブール値である場合は、変更されずに返されます。 値がブール値に変換できない場合は、null が返されます。

また、このフィルターは「on」、「有効化」、または「はい」を true として、「off」、「無効」、および「いいえ」を false として受け取ります。

コード

{{ true | boolean }}

{{ 'false' | boolean }}

{{ 'enabled' | boolean }}

{{ settings['something/enabled'] | boolean | default: false }}

出力

true

false

true

false

decimal

文字列値を 10 進数に変換しようとします。 この値がすでに 10 進数である場合は、変更されずに返されます。 値が 10 進数に変換できない場合は、null が返されます。

コード

{{ 10.1 | decimal }}

{{ '3.14' | decimal }}

{{ 'text' | decimal | default: 3.14 }}

出力

10.1

3.14

3.14

integer

文字列値を整数に変換しようとします。 この値がすでに整数である場合は、変更されずに返されます。 値が整数に変換できない場合は、null が返されます。

コード

{{ 10 | integer }}

{{ '10' | integer }}

{{ '10.1' | integer }}

{{ 'text' | integer | default: 2 }}

出力

10

10


2

string

値を文字列に変換しようとします。 この値がすでに文字列である場合は、変更されずに返されます。 値が null である場合、null 値が返されます。

URL フィルター

URL フィルターにより、URL の一部の構築または抽出ができます。

add_query

URL にクエリ文字列パラメーターを追加します。 URL にパラメーターが既に存在する場合は、パラメーター値が更新されます。

このフィルターが完全な絶対 URL に適用される場合、更新された絶対 URL が結果です。 パスに適用される場合、更新されたパスが結果です。

コード

{{ 'http://example.com/path?page=1' | add_query: 'foo', 'bar' }}

{{ '/path?page=1' | add_query: 'page', 2 }}

出力

http://example.com/path?page=1&foo=bar

/path?page=2

base

指定された URL のベース URL を取得します。

コード

{{ 'http://example.com/path?foo=bar&page=2' | base }}

出力

http://example.com

host

URL のホスト パーツを取得します。

コード

{{ 'http://example.com/path?foo=bar&page=2' | host }}

出力

example.com

path

URL のパス パーツを取得します。

コード

{{ 'http://example.com/path?foo=bar&page=2' | path }}

{{ '/path?foo=bar&page=2' | path }}

出力

/path

/path

path_and_query

URL のパスとクエリ パーツを取得します。

コード

{{ 'http://example.com/path?foo=bar&page=2' | path_and_query }}

{{ '/path?foo=bar&page=2' | path_and_query }}

出力

/path?foo=bar&page=2

/path?foo=bar&page=2

port

URL のポート番号を取得します。

コード

{{ 'http://example.com/path?foo=bar&page=2' | port }}

{{ 'https://example.com/path?foo=bar&page=2' | port }}

{{ 'https://example.com:9000/path?foo=bar&page=2' | port }}

出力

80

443

9000

remove_query

URL からクエリ文字列パラメーターを削除します。 URL にパラメーターが存在しない場合、URL は変更されずに返されます。

このフィルターが完全な絶対 URL に適用される場合、更新された絶対 URL が結果です。 パスに適用される場合、更新されたパスが結果です。

コード

{{ 'http://example.com/path?page=1' | remove_query: 'page' }}

{{ '/path?page=1' | remove_query: 'page' }}

出力

http://example.com/path

/path

scheme

URL のスキーム パーツを取得します。

コード

{{ 'http://example.com/path?foo=bar&page=2' | scheme }}

{{ 'https://example.com/path?foo=bar&page=2' | scheme }}

出力

http

https

追加フィルター

これらのフィルターは便利な一般的機能を提供します。

default

割り当てられた値 (例 null) なしで、すべての変数の既定値を返します

コード

{{ snippets["Header"] | default: 'My Website' }}

出力

<!-- If a snippet with the name "Header" returns null -->

My Website

file_size

バイト数を表わしている数値に適用され、適切なスケール単位で書式設定されたファイルの数を返します。

オプションでは、結果における小数点以下の桁数を管理するために、詳細な precision パラメーターを渡すことができます。 既定の precision は 1 です。

コード

{{ 10000000 | file_size }}

{{ 2050 | file_size: 0 }}

{{ entity.notes.first.filesize | file_size: 2 }}

出力

9.5 MB

2 KB

207.14 KB

has_role

ユーザー に適用され、ユーザーが指定されたロールに属している場合 true を返します。 そうではない場合、false が返されます。

コード

{% assign is_admin = user | has_role: 'Administrators' %}

{% if is_admin %}

User is an administrator.

{% endif %}

liquid

流動コードとして文字列を表示します。 このコードは現在の流動実行コンテキスト (変数など) にアクセスできます。

注意

このフィルターは注意して使用する必要があり、一般的に、ポータル コンテンツの作成者または流動コードを記述する信頼できるその他のユーザーの排他的管理下にある値のみが適用されます。

コード

{{ page.adx_copy | liquid }}

関連項目

動的コンテンツの追加およびカスタム テンプレートの作成
Web テンプレートを使用したソース コンテンツの保存
Liquid の演算子の認識 Liquid の種類
Liquid オブジェクト
Liquid タグ
Liquid フィルター