Назад в блог

TGX DSL на практике: 5 приёмов для быстрой вёрстки#

В прошлой статье мы разобрали, что такое TGX DSL и зачем он нужен. Теперь покажем, как применять его в реальной работе. Эти пять приёмов закрывают большинство типовых задач при вёрстке сайта.

1. Вывод списка записей через tgx:repeat#

Самый частый приём — вывести карточки из коллекции. Директива tgx:repeat повторяет один элемент для каждой записи.

<article tgx:repeat="/blog/?filter[status]=active -> item">
  <h2><< item.title >></h2>
  <a href="/blog/<< item.slug >>/">Читать</a>
</article>

Один блок заменяет ручную публикацию десятков карточек. Изменили запись — карточка обновилась сама.

2. Условия отображения через tgx:if#

Не всегда нужно показывать блок всем. Директива tgx:if оставляет элемент только когда условие истинно.

<section tgx:if="user.id">
  Добро пожаловать, << user.name >>!
</section>

Так можно скрывать блоки для гостей, показывать цены только авторизованным или выводить разные варианты контента.

3. Переиспользование блоков через tgx:component#

Повторяющиеся блоки — карточки, шапки, формы — выносятся в компоненты и подключаются одной строкой.

<tgx tgx:component="/components/card" payload="<< local >>"></tgx>

Изменили компонент один раз — он обновился на всех страницах, где подключён.

4. Подстановка значений в текст и атрибуты#

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

<h1><< page.title >></h1>
<a href="/product/<< product.slug >>/">Подробнее</a>

Значения можно форматировать: например, цену вывести в валюте через :currency2.

Цена: << product.Price:currency2 >>

5. Условные атрибуты#

Иногда нужно добавить атрибут только при определённом условии. Для этого используется суффикс $.

<option selected$="item.id == request.get.id"><< item.title >></option>

Такой приём удобен для выпадающих списков, чекбоксов и переключателей.

Итог#

Эти пять приёмов — база, с которой начинается практическая работа с TGX DSL. Они ускоряют вёрстку, убирают дубли и позволяют обновлять контент без правки кода. Освоив их, вы сможете собирать динамические страницы так же быстро, как статичные.

Управление