web-dev-qa-db-ja.com

Liquid Templateで変数に配列リテラルを割り当てる

リキッドテンプレートから配列を作成する唯一の方法は次のとおりです。

{% assign my_array = "one|two|three" | split: "|" %}

それを行う他の方法はありますか?

34
Stefano Ortisi

Frontmatter

これは良い回避策です。ファイルの先頭に追加してください:

---
my_array:
  - one
  - two
  - three
---

次にそれを次のように使用します:

{{ page.my_array }}

サイト全体site.data.my_array_configまたは_data/some_file.ymlの下に類似しています。

レイアウト用にJekyll 3を更新します

フロントマターがレイアウトのものである場合は、以下を使用する必要があります。

{{ layout.style }}

代わりに。参照: https://stackoverflow.com/a/37418818/895245

それを行う他の方法はありますか?

いいえ、あなたのsplitフィルターはそれを行う方法です。

8
Bart Kiers

次に、最初に capture を使用して改行で区切られた値を変数に割り当て、次にその変数を assign といくつかのフィルター:

{% capture my_array %}
one
two
three
{% endcapture %}

{% assign my_array = my_array | strip | newline_to_br | strip_newlines | split: "<br />" %}

フィルターは次のことを行います。

  1. striponeの前の空白とthreeの後の空白を削除します。
  2. newline_to_br 改行を<br />タグに置き換えます。
  3. strip_newlines 不要な改行を削除します。
  4. split は、<br />を区切り文字として使用して、文字列を配列に変換します。
1