Spec-Zone.ru › Jekyll 4

Фильтры Liquid

Поддерживаются все стандартные фильтры Liquid (фильтры) (см. ниже).

Для упрощения общих задач Jekyll даже добавляет несколько полезных собственных фильтров, все из которых вы найдете на этой странице. Вы также можете создать свои собственные фильтры с помощью плагинов.

Описание Фильтр и Вывод

Относительный URL

Добавляет значение baseurl к вводу. Полезно, если ваш сайт размещён по подпути, а не в корне домена.

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

/my-baseurl/assets/style.css

Абсолютный URL

Добавляет значение url и baseurl к вводу.

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

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

Дата в формате XML Schema

Преобразует дату в формат XML Schema (ISO 8601).

{{ site.time | date_to_xmlschema }}

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

Дата в формате RFC-822

Преобразует дату в формат RFC-822, используемый для RSS-лент.

{{ site.time | date_to_rfc822 }}

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

Дата в строковом формате

Преобразует дату в короткий формат.

{{ site.time | date_to_string }}

07 Nov 2008

Дата в строковом формате (порядковый, США)

Форматирует дату в порядковом формате США, короткий формат. 3.8.0

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

Nov 7th, 2008

Дата в длинном строковом формате

Форматирует дату в длинном формате.

{{ site.time | date_to_long_string }}

07 November 2008

Дата в длинном строковом формате (порядковый, Великобритания)

Форматирует дату в порядковом формате Великобритании, длинный формат. 3.8.0

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

7th November 2008

Where

Выбирает все объекты в массиве, где ключ имеет заданное значение.

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

Where Expression

Выбирает все объекты в массиве, где выражение истинно. 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

Экранирование строки для использования в URL. Заменяет любые специальные символы соответствующими %XX заменами. CGI-экранирование обычно заменяет пробел на знак плюс +.

{{ "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?

Количество слов

Подсчёт количества слов в тексте.
Начиная с версии v4.1.0, этот фильтр принимает необязательный аргумент для управления обработкой символов китайско-японско-корейского (CJK) в строке input.
Передача 'cjk' в качестве аргумента будет считать каждый обнаруженный CJK-символ как одно слово независимо от разделения пробелами.
Передача '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

Массив в предложение

Преобразование массива в предложение. Полезно для перечисления тегов. Необязательный аргумент для разделителя.

{{ page.tags | array_to_sentence_string }}

foo, bar, and baz

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

foo, bar, or baz

Markdownify

Преобразование форматированного Markdown текста в HTML.

{{ page.excerpt | markdownify }}

Smartify

Преобразование обычных кавычек в «умные» кавычки.

{{ page.title | smartify }}

Преобразование Sass/SCSS

Преобразование Sass- или SCSS-форматированного текста в CSS.

{{ some_sass | sassify }}

{{ some_scss | scssify }}

Slugify

Преобразование строки в 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

Данные в JSON

Преобразование хэша или массива в JSON.

{{ site.data.projects | jsonify }}

Нормализация пробелов

Замена всех пробелов одним пробелом.

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

Сортировка

Сортировка массива. Необязательные аргументы для хэшей: 1. имя свойства, 2. порядок NULL значений (сначала или в конце).

{{ page.tags | sort }}

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

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

Выборка

Выбрать случайное значение из массива. Необязательно, выбрать несколько значений.

{{ site.pages | sample }}

{{ site.pages | sample: 2 }}

В целое число

Преобразование строки или булева значения в целое число.

{{ some_var | to_integer }}

Фильтры массивов

Добавление, удаление, сдвиг и вставка элементов из массива. Эти операции **НЕ ДЕСТРУКТИВНЫ**, т.е. они не изменяют массив, а создают копию и изменяют её.

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

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

{{ page.tags | pop }}

["Seattle"]

{{ page.tags | shift }}

["Tacoma"]

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

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

Просмотр

Преобразование объекта в его строковое представление для отладки.

{{ some_var | inspect }}

Параметры фильтра slugify

Фильтр slugify принимает параметр, каждый из которых определяет, что фильтровать. По умолчанию default. Они перечислены ниже (с тем, что они фильтруют):

  • none: без символов
  • raw: пробелы
  • default: пробелы и не буквенно-цифровые символы
  • pretty: пробелы и не буквенно-цифровые символы, кроме ._~!$&'()+,;=@
  • ascii: пробелы, не буквенно-цифровые и не ASCII символы
  • latin: как default, за исключением того, что латинские символы сначала транслитерируются (например, àèïòü в aeiou)3.7.0 .

Обнаружение значений nil с помощью фильтра where4.0

Вы можете использовать фильтр where для обнаружения документов и страниц со свойствами, которые являются nil или "". Например,

// Using `nil` to select posts that either do not have `my_prop`
// defined or `my_prop` has been set to `nil` explicitly.
{% assign filtered_posts = site.posts | where: 'my_prop', nil %}
// Using Liquid's special literal `empty` or `blank` to select
// posts that have `my_prop` set to an empty value.
{% assign filtered_posts = site.posts | where: 'my_prop', empty %}

Бинарные операторы в фильтре where_exp4.0

Вы можете использовать бинарные операторы Liquid or и and в выражении, переданном фильтру 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.

  • abs

  • append

  • at_least

  • at_most

  • capitalize

  • ceil

  • compact

  • concat

  • date

  • default

  • divided_by

  • downcase

  • escape

  • escape_once

  • first

  • floor

  • join

  • last

  • lstrip

  • map

  • minus

  • modulo

  • newline_to_br

  • plus

  • prepend

  • remove

  • remove_first

  • replace

  • replace_first

  • reverse

  • round

  • rstrip

  • size

  • slice

  • sort

  • sort_natural

  • split

  • strip

  • strip_html

  • strip_newlines

  • times

  • truncate

  • truncatewords

  • uniq

  • upcase

  • url_decode

  • url_encode

© 2020 Jekyll Core Team and contributors
Licensed under the MIT license.
https://jekyllrb.com/docs/liquid/filters/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API