Подтвердить что ты не робот

Назначьте литерал массива переменной в шаблоне Liquid

Единственный способ, которым я знаю, создать массив из моего жидкого шаблона:

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

Есть ли другой способ сделать это?

4b9b3361

Ответ 1

Frontmatter

Это хороший обходной путь, добавьте в начало вашего файла:

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

тогда используйте это как:

{{ page.my_array }}

Аналогично сайту site.data.my_array для _config или в _data/some_file.yml.

Обновление Jekyll 3 для макетов

Если frontmatter - это макет, вам нужно использовать:

{{ layout.style }}

вместо. См.: fooobar.com/questions/195125/...

Ответ 2

Есть ли другой способ сделать это?

Нет, ваш фильтр split - это способ сделать это.

Ответ 3

Вот еще один способ сделать это, сначала используя метод capture как дружественный способ присваивать значения, разделенные символом новой строки, переменной, а затем преобразовывать эту переменную в массив с параметром assign и несколькими фильтрами:

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

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

Фильтры делают следующее:

  1. strip удаляет начальные пробелы перед one и завершающие пробелы после three.
  2. newline_to_br заменяет переводы строк тегами <br/>.
  3. strip_newlines удаляет возможные посторонние символы новой строки.
  4. split преобразует строку в массив, используя <br/> в качестве разделителя.