Liquid拡張タグ一覧
Clipkitで追加された使用できるLiqudのタグとフィルタです。
タグ
paginate
配列またはRelationオブジェクトのイテレートで、ページネートを追加します。
{% paginate site.articles per 10 %} {% for article in paginate.collection %} <li>{{ article.title }}</li> {% endfor %} {% endpaginate %}
paginate
cache
ブロック内の出力をキャッシュすることで高速に表示します。
引数にはキャッシュキーとしてオブジェクトや文字列を指定します。カンマ区切りで複数指定できます。max_ttl オプションで最大の有効時間(分)を指定できます。
例)キャッシュキーに固定の文字列を指定することで、常にキャッシュされた結果を出力します。この例では600秒(10分)でキャッシュはリセットされ、最新の結果が出力されます。
{% cache "cache-key", max_ttl: 600 %} 〜 {% endcache %}
cache
例)人気のタグ一覧をキャッシュして出力します。キャッシュキーとしてsiteオブジェクトを指定しているので、記事が追加、更新されるのなどサイト情報が更新されるとキャッシュは自動的にリセットされ最新情報が出力されます。
{% cache site, "site-popular-tags" %} {% assign tags = site.popular_tags | limit: 20 %} {% for t in tags %} <a href="{{ t.path }}" class="btn btn-default btn-sm"> <span class="fa fa-tag fa-lg text-muted"></span> {{ t.name }} ({{ t.num_articles | format_number }})</a> {% endfor %} {% endcache %}
cache
collection
コレクションを読み込みます。コレクションのデータにて動的にHTMLが出力されます。 デザイン調整をする場合は、cssにて対応が必要になります。
{% collection "collection_name" %}
collection
file
ファイルのURLを出力します。
<img src="{% file "/logo.png" %}" alt="Logo">
file
form
フォームを読み込みます。
{% form "vote1" %}
form
widget
ウィジェットを読み込みます。2つ目以降の引数でローカル変数を引き渡すことができます。
{% widget "google_analytics" %} {% widget "article_ad1", permalink: article.url %}
widget
render
パーシャルテンプレートを読み込みます。2つ目以降の引数でローカル変数を引き渡すことができます。
{% assign ranking_articles = site.weekly_popular_articles | limit: 5 %} {% render "ranking", articles: ranking_articles %}
render
フィルタ
format_number
数字3桁ごとにカンマを挿入します。
{{ 12345 | format_number }}
format_number
render_markdown
MarkdownをHTMLに変換します。
{{ user.bio | render_markdown }}
render_markdown
choose_random
配列からランダムに1件または複数件取得します。
例)新着記事10件からランダムに1件を取得:
{% assign article = site.articles | limit: 10 | choose_random %}
choose_random
例)新着記事10件からランダムに3件を配列で取得:
{% assign articles = site.articles | limit: 10 | choose_random: 3 %}
choose_random
shuffle
配列の要素をランダムに並べ替えます。
{% assign articles = site.articles | limit: 10 | shuffle %}
shuffle
match
正規表現とのパターンマッチを行います。マッチしたときは、マッチした部分の位置を整数で返します。マッチしなかったら、nilを返します。
{% assign secured = item.url | match: '^https:' %}
match
replace_regexp
文字列の中で正規表現のパターンにマッチした部分をすべて指定の文字列に置換します。
{% assign domain = item.url | replace_regexp: '^https?://(.*?)/', '\1' %}
replace_regexp
auto_link
文字列中のURLをHTMLのリンクに変換します。
{{ user.bio | auto_link }}
auto_link
unescape
文字列中のHTML実体参照を元の文字列に置換します。
where
Relationオブジェクトを指定の条件で検索して絞り込みます。
例)記事種別=1の記事を取得:
{% assign articles = site.articles | where: "article_kinds.code = '1'" %}
where
変数を与える場合はプレースホルダを使用してください。
{% assign articles = site.articles | where: "article_kinds.code = ?", kind_code %}
where
or
Relationオブジェクトの検索条件を結合します。
例)カテゴリ「hoge」または「fuga」の記事を取得:
{% assign hoge_articles = site.articles | where: "categories.name = 'hoge'" %} {% assign fuga_articles = site.articles | where: "categories.name = 'fuga'" %} {% assign articles = hoge_articles | or: fuga_articles %}
or
find_by
Relationオブジェクトから指定のフィールド値に該当する1件のオブジェクトを取得します。
例)key=xxxxxの記事を取得:
{% assign article = site.articles | find_by: 'key', 'xxxxx' %}
find_by
limit
Relationオブジェクトの先頭から指定数を取得します。
{% assign articles = site.articles | limit: 10 %}
limit
offset
Relationオブジェクトの先頭から指定数より後ろを取得します。
{% assign articles = site.articles | offset: 10 %}
offset
order
Relationオブジェクトの並び順を変更します。
例)公開記事を更新日時の降順で取得:
{% assign articles = site.articles | order: 'last_published_at DESC' %}
order
next_to
指定オブジェクトのRelationオブジェクト内における次のオブジェクトを取得します。(現在は記事オブジェクトのみ対応しています)
例)記事詳細ページでカテゴリ内公開日時降順での1つ古い記事へのリンク:
{% assign next_article = article.category.articles | next_to: article %} <a href="{{ next_article.path }}">前の記事</a>
next_to
prev_to
指定オブジェクトのRelationオブジェクト内における前のオブジェクトを取得します。(現在は記事オブジェクトのみ対応しています)
例)記事詳細ページでカテゴリ内公開日時降順で1つ新しい記事へのリンク:
{% assign previous_article = article.category.articles | prev_to: article %} <a href="{{ previous_article.path }}">次の記事</a>
prev_to
to_array
Relationオブジェクトを明示的に配列に変換します。
200件以上ある場合、200件に切り詰められます。
attribute
記事の拡張項目に登録されている情報を返します。
例)拡張項目「会場」の内容を表示:
{{ article | attribute: "会場" }}
attribute
search_by_attribute
記事のRelationから拡張項目の情報を検索して絞り込みます。
例)拡張項目の完全一致で検索:
{% assign articles = site.articles | search_by_attribute: "会場", "東京都" %}
search_by_attribute
第三引数で検索式を指定できます。
{% assign articles = site.articles | search_by_attribute: "開催日", "2019-01-01", ">= ?" %}
search_by_attribute
order_by_attribute
記事の拡張項目の情報で並び順を変更します。
例)拡張項目の降順で取得:
{% assign articles = site.articles | order_by_attribute: "開催日", "DESC" %}
order_by_attribute
search
記事のRelationからキーワード検索します。
{% assign articles = site.articles | search: request.params["q"] %}
search
例)指定カテゴリの記事一覧:
{% assign articles = site.articles | search: 'category:"カテゴリ名または、カテゴリキー"' %}
search
例)指定カテゴリかつ、指定タグの記事一覧:
{% assign articles = site.articles | search: 'category:"カテゴリ名または、カテゴリキー" tag:"タグ名"' %}
search
※キーワードを空白で区切るとAND検索となります。
例)複数カテゴリを除外した記事一覧:
{% assign articles = site.articles | search: '-category:"カテゴリ名または、カテゴリキー" -category:"カテゴリ名または、カテゴリキー"' %}
search
※以外の検索は、-をつける必要があります。
例)指定カテゴリーかつ、指定拡張項目の記事一覧:
{% assign articles = site.articles | search: 'category:"カテゴリ名または、カテゴリキー" 拡張項目名:検索ワード %}
search
例)指定拡張項目(テキスト)かつ、指定拡張項目(日付)の記事一覧:
{% assign articles = site.articles | search: '拡張項目名(テキスト):検索ワード 拡張項目名(日付):"2021/03/15" %}
search
検索クエリの詳細についてはこちらをご確認ください。
headings_per_page
表示する目次の情報を取得します。
例)目次表示
{% assign headings = article.items | headings_per_page %} {% if headings.size > 0 %} <div class="toc"> <h3>目次</h3> <ul> {% for heading in headings %} <li class="lv{{ heading['level'] }}"> <a href="{{ heading['path'] }}">{{ heading['title'] }}</a> </li> {% endfor %} </ul> </div> {% endif %}
headings_per_page
例)1ページあたりの件数を明示的に指定している場合(1ページ 15件):
{% assign headings = article.items | headings_per_page: 15 %} {% if headings.size > 0 %} <div class="toc"> <h3>目次</h3> <ul> {% for heading in headings %} <li class="lv{{ heading['level'] }}"> <a href="{{ heading['path'] }}">{{ heading['title'] }}</a> </li> {% endfor %} </ul> </div> {% endif %} {% paginate article.items per 15 %} {% for item in paginate.collection %} ... {% endfor %} {% endpaginate %}
headings_per_page
resize
アスペクト比を維持したまま幅を100pxにする
{{ article.image_original_url | resize: "width:100" }}
resize
アスペクト比を維持したまま高さを100pxにする
{{ article.image_original_url | resize: "height:100" }}
Explain
アスペクト比を維持したまま長辺を100pxにする
{{ article.image_original_url | resize: "size:100" }}
Explain
100x100pxにして長辺を切り取る
{{ article.image_original_url | resize: "width:100, height:100" }}
Explain
▼注意点
画像により変換に失敗した場合はオリジナル画像を返します。
目的のサイズに変換されなくても表示が崩れないように実装してください。
各種オリジナル画像を取得できるようにしました。(article.image_original_url など)
largeでは解像度が足りない場合に、resizeフィルタと組み合わせて利用してください。