Многоразовые компоненты с использованием Tera/Zola
Я создаю тему на основе другой темы Zola, и пока все идет отлично. Единственная проблема, с которой я столкнулся, заключается в следующем: я использую Tailwind. Это работает хорошо, но поскольку классы Tailwind могут суммироваться, команда Tailwind рекомендует использовать компоненты. Я знаю, как это сделать в Vue с помощью Slots, но понятия не имею, как это сделать с Tera/Zola и возможно ли это вообще. Есть ли у кого-нибудь идеи, как элегантно решить эту проблему в Zola/Tera?
Сейчас я использую следующий хак. Это работает, но довольно некрасиво и требует по 2 файла на каждый "компонент".
~ Это позволяет мне использовать согласованные классы для ссылок:
_startlink.html
<div class="tailwind classes here">
_endlink.html
</div>
При использовании «компонента»
{% include "_startlink.html" %}
<a href="/blog">blog</a>
{% include "_endlink.html" %}
Моя интуиция подсказывает сделать что-то вроде следующего:
_link.html
<a class="Tailwind classes here" href=link> {%block link%} {% endblock link %} </a>
Использование компонента:
{% block link link="example.com" %} Link to example.com {% endblock link %}
Изменить: я нашел новый способ. Я предпочитаю его другому, но он мне все равно не нравится:
{% set tl_link = "tailwind classes here" %}
<a class="{{ tl_link }}"> text here </a>