Full project: Svelte 5 frontend, Vite 7 backend API, Pug email templates (email-gen), Docker deployment. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Z51 Pug Builder — руководство по интерфейсу
Этот файл описывает интерфейс и логику использования конструктора писем. Здесь нет технических деталей реализации — только то, как устроена работа в UI, где что находится и зачем это нужно.
1. Общая идея
Конструктор собирает письмо из блоков, взятых из block.pug. Каждый блок — это кусок Pug-кода, размеченный комментарием //Название. В интерфейсе вы выбираете нужные блоки, редактируете только важные поля (текст, ссылки, изображения, ID и т.п.), а на выходе получаете собранный Pug-файл.
Главная выгода: быстро собирать письма без ручного копирования и без риска повредить структуру шаблона.
2. Навигация по интерфейсу
Верхняя панель (шапка) содержит:
- Иконка дискеты — открывает поле для названия пресета и сохранение пресета.
- Иконка папки — переход на страницу пресетов.
- Сборка — основная страница сборки письма.
- Настройки — управление проектом и шаблонами.
- Переключатель темы — светлая/тёмная.
- Назад / Сброс — только на странице сборки.
В левом сайдбаре:
- Название проекта (крупно, окрашено акцентом) или логотип.
- Выбор проекта.
- Добавить блок (выпадающий список).
- Быстрые кнопки блоков.
- Счётчик общего количества блоков.
3. Страница «Сборка»
Это основной экран для работы с письмом.
3.1. Добавление блоков
- Через выпадающий список «Добавить блок».
- Через быстрые кнопки (настраиваются в настройках проекта).
- Через кнопку «+» внизу каждого блока — добавляет новый блок после текущего.
Новые блоки открываются сразу (развернуты).
3.2. Карточка блока
Каждый блок — это карточка с:
- названием блока;
- кнопками вверх / вниз / удалить;
- полями редактирования;
- чекбоксом «Отступ после блока» + поле значения (если включено);
- кнопками «PUG» и «+» (добавление блока после).
В любой момент можно раскрыть/свернуть блок по клику на его заголовок.
3.3. Поля редактирования
Интерфейс не показывает весь код, а только полезные поля.
Типы полей:
- Текст — содержимое внутри строк Pug.
- Ссылки —
href. - Картинки —
src. - Кнопки — если в блоке есть
+buttonRounded(...), показываются отдельные поля для текста и ссылки. - Товары — если есть
+productsX, показывается поле «ID товаров».
Поля автоматически определяются из шаблона блока, но их можно включать/выключать и переименовывать в настройках.
3.4. Форматирование текста
Для текстовых полей есть панель действий:
- T — типограф.
- Ж — жирный текст.
- • — маркер.
- / — списки.
- A + URL — ссылка.
- Глаз — предпросмотр HTML.
3.5. Абзацы в блоке «Текст»
Блок «Текст» поддерживает несколько абзацев:
- Кнопка «Абзац» добавляет новый абзац.
- У каждого дополнительного абзаца есть кнопка удаления.
- Между абзацами автоматически вставляется
+spacerLine(20).
3.6. Списки (нумерованные и маркированные)
Для блоков списков:
- Редактируются только тексты пунктов.
- Картинки маркеров/цифр скрыты и не редактируются.
- Кнопка «Пункт» добавляет новый пункт.
- Кнопка × удаляет пункт.
При добавлении блока со списком создаётся только первый пункт, остальные добавляются вручную.
3.7. Отступы
- Глобальный отступ задаётся в настройках.
- У каждого блока можно включить/выключить отступ и задать своё значение.
- Для некоторых блоков отступ не добавляется автоматически (Разделитель, Отступ 20/40).
3.8. Итоговый Pug
Правый блок — это итоговый Pug-код:
- он обновляется при любом изменении;
- можно копировать или скачивать;
- при редактировании блок подсвечивается и прокручивается в Pug-окне.
4. Страница «Настройки»
Настройки делятся на вкладки:
4.1. Общие
Источник блоков
- Загрузка нового
block.pug. - Перезагрузка текущего источника.
Поля блока
- Выбор любого блока.
- Включение/выключение полей.
- Переименование подписи поля.
4.2. Глобальные блоки
- Список всех блоков проекта.
- Для каждого блока можно редактировать Pug-шаблон напрямую.
- Настроить отступ по умолчанию для конкретного блока.
4.3. Текущий проект
Настройки внешнего вида проекта:
- Название проекта (в левом верхнем углу).
- Цвет акцентов (через палитру или HEX).
- Логотип проекта (загрузка изображения).
Логотип хранится в настройках проекта.
4.4. Быстрые блоки
- Выбор блоков, которые появятся слева как быстрые кнопки.
- Можно добавлять/удалять элементы.
4.5. Новый проект
- Создание нового проекта.
- Каждый проект имеет собственный
block.pug, настройки, пресеты и сборки.
5. Пресеты
Пресет — это сохранённая сборка письма.
Как работают пресеты
- Сохраняются через иконку дискеты в шапке.
- Открываются через страницу «Пресеты».
- При сохранении, если имя уже существует — система спрашивает, обновить или создать новый.
- При открытии пресета его имя автоматически подставляется в поле сохранения.
На странице пресетов
- Отображаются название и дата/время сохранения.
- Есть поиск по названию.
- Есть сортировка: сначала новые / сначала старые.
6. Подсказки и наведение
Все кнопки и поля имеют всплывающие подсказки (title), чтобы быстро понимать назначение элемента.
7. Выгоды использования конструктора
- Быстрее сборки — письмо собирается за минуты.
- Нет ошибок в структуре Pug — редактируются только нужные фрагменты.
- Один интерфейс для всех проектов.
- Удобное сохранение и повторное использование через пресеты.
- Гибкая настройка под разные команды и бренды.
8. Типовые сценарии
8.1. Быстрая сборка письма с нуля
- Перейдите в «Сборка».
- Добавьте блоки через быстрые кнопки или выпадающий список.
- Заполните поля (текст, ссылки, ID товаров).
- Проверьте итоговый Pug справа.
- Скопируйте или скачайте итоговый файл.
8.2. Сборка письма по шаблону (пресету)
- Откройте страницу «Пресеты».
- Найдите нужный пресет через поиск.
- Нажмите «Открыть».
- Отредактируйте детали и сохраните обратно.
8.3. Обновление существующего пресета
- Откройте пресет.
- Внесите изменения.
- Нажмите иконку дискеты — имя пресета подставится автоматически.
- Подтвердите обновление в диалоге.
8.4. Настройка быстрых блоков
- Перейдите в «Настройки» → «Быстрые блоки».
- Выберите нужные блоки и нажмите «Добавить».
- Удалите ненужные кнопки через «×».
- Эти кнопки появятся слева в «Сборке».
8.5. Добавление абзацев в текстовом блоке
- Откройте блок «Текст».
- Нажмите «Абзац».
- Заполните новый пункт текста.
- При необходимости удалите абзац кнопкой «×».
8.6. Работа со списками
- Добавьте блок «Маркированный список» или «Нумерованный список».
- Заполните первый пункт.
- Добавьте новые пункты кнопкой «Пункт».
- Удалите лишние пункты кнопкой «×».
8.7. Создание нового проекта
- Откройте «Настройки» → «Новый проект».
- Введите имя проекта, нажмите «Добавить».
- Загрузите
block.pugдля нового проекта. - Настройте быстрые блоки, цвета и поля.
Если нужно — могу добавить в интерфейс отдельную страницу «Справка» с этим текстом.