Многоразовые компоненты с использованием 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>

0 ответов

Другие вопросы по тегам