Усовершенствуйте свой шаблон с помощью пользовательских фильтров Nunjucks от Eleventy

Привет, коллеги-разработчики! Сегодня мы окунемся в чудесный мир Eleventy и исследуем возможности специальных фильтров Nunjucks. Если вы хотите вывести свою игру с шаблонами на новый уровень, вы попали по адресу. Итак, засучим рукава и начнем!

Но сначала давайте проясним несколько вещей. Eleventy — это генератор статических сайтов, который позволяет создавать молниеносные веб-сайты с легкостью и гибкостью. Nunjucks, с другой стороны, — это мощный механизм шаблонов, который позволяет создавать динамический контент в ваших проектах Eleventy. Пользовательские фильтры Nunjucks – это секретный соус, который может улучшить качество работы с шаблонами, позволяя создавать собственные многоразовые фильтры.

Теперь давайте рассмотрим несколько замечательных методов создания собственных фильтров Nunjucks в Eleventy:

Метод 1: простой фильтр

eleventyConfig.addFilter("capitalize", function(value) {
  return value.toUpperCase();
});

В этом примере мы создаем фильтр «заглавные буквы», который преобразует входную строку в верхний регистр. Вы можете использовать его, как {{ "hello" | capitalize }}, чтобы получить «HELLO».

Метод 2: фильтр с аргументами

eleventyConfig.addFilter("truncate", function(value, length) {
  if (value.length > length) {
    return value.slice(0, length) + "...";
  }
  return value;
});

Здесь мы определяем фильтр под названием «truncate», который принимает второй аргумент «длину» для усечения входной строки, если она превышает указанную длину.

Метод 3: объединение фильтров

eleventyConfig.addFilter("slugify", function(value) {
  return value.toLowerCase().replace(/\s+/g, "-");
});

В этом примере показано, как можно объединить несколько фильтров. Фильтр «slugify» преобразует входную строку в нижний регистр и заменяет все пробелы дефисами.

Метод 4. Асинхронные фильтры

eleventyConfig.addFilter("fetchData", async function(url) {
  const response = await fetch(url);
  return await response.json();
});

С Eleventy вы даже можете создавать асинхронные фильтры. В этом случае фильтр fetchData извлекает данные из указанного URL-адреса и возвращает их в виде объекта JSON.

Это всего лишь несколько способов начать работу с пользовательскими фильтрами Nunjucks в Eleventy. Возможности безграничны, и вы можете создавать фильтры в соответствии с вашими потребностями и требованиями проекта.

Подводя итог, можно сказать, что пользовательские фильтры Nunjucks в Eleventy предоставляют мощный способ манипулирования и преобразования данных в ваших шаблонах. Они позволяют расширить функциональность Nunjucks и сделать код шаблона более кратким, многоразовым и выразительным.

Так что давайте экспериментируйте с этими методами и раскройте весь потенциал пользовательских фильтров Nunjucks от Eleventy. Приятного кодирования!