Не знаете, что такое одиннадцать? Прежде чем читать дальше, ознакомьтесь с этой замечательной серией статей от Татьяны Мак, чтобы узнать больше о eleventy и генераторах статических сайтов в целом.

Шорткоды используются для вызова определенной функции, которая возвращает некоторые html или любые другие данные на основе переданной информации. В основном они используются для повторного использования html-шаблонов, требующих некоторой предварительной обработки.

Во время написания блогов я столкнулся с необходимостью встраивать кодовые ручки в свои статьи для быстрой демонстрации кода.

Первоначально я копировал и вставлял код для встраивания, предоставленный сайтом codepen. Это совсем не осуществимо.

Дело было не в том, что я вообще не знал о шорткодах, потому что использовал их в DEV, но я не был уверен, что что-то подобное существовало и в одиннадцатом. Итак, я пристегнулся и отправился изучать шорткоды в одиннадцать!

Руководство

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

Внутри файла .eleventy.js напишите следующий код в функции module.exports:

Шорткод: {% codepen 'url' %}

Поместите вышеуказанный shortcode туда, где вы хотите, чтобы ваш codepen был встроен.

Передайте codepen url функции шорткода. Разделите url, используя / в качестве разделителя.

Вы получите массив, из которого вы можете отфильтровать слаг после URL-адреса profile. Преобразуйте отфильтрованный массив в строку, используя join(""). Вы получаете profile url пользователя codepen.

Точно так же вы можете извлечь username, а также codepen id.

Скопируйте код embed из codepen и отредактируйте его, чтобы сделать его динамичным. Функция возвращает код embed, встроенный в ваш шаблон html.

Подписание.

Первоначально опубликовано на https://syntackle.live 7 июня 2022 г.