1
Parts-Editor
s.zotov edited this page 2026-04-12 20:46:41 +00:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Редактор хедера / футера

Обзор

Позволяет редактировать тексты кнопок, ссылок и HTML-блоков в pug-файлах header и footer — без ручного редактирования pug.

Расположение

Настройки → вкладка "Хедер / Футер"

Как работает

1. Выбор файла

Dropdown показывает все gender paths из настроек:

  • Хедер (Ж) — ./parts/header/header-woman
  • Хедер (М) — ./parts/header/header-man
  • Футер (Ж) — ./parts/footer/footer-woman
  • Футер (М) — ./parts/footer/footer-man

2. Загрузка файла

loadPartsEditorFile(filePath):

  1. GET /api/parts-file-read?path={filePath}
  2. Получает raw pug-содержимое
  3. Парсит через parsePugFields(content)

3. Парсинг полей

parsePugFields(content) находит 4 типа полей:

Тип Что ищет Пример в Pug
button +buttonRounded(...) +buttonRounded("KITON", "https://...", 275, 45, ...)
link a(href="...") с текстом a(href="tel:88003334929") 8 800 333-49-29
link HTML ссылки <a href="..."> <a href="...">текст</a>
html-text HTML span/p с текстом <span style="...">СКАЧАЙТЕ ПРИЛОЖЕНИЕ</span>

Для каждого найденного поля создаётся объект:

{
  label: "KITON",           // автоматически из текста
  type: "button",           // button | link | html-text
  text: "KITON",            // текст для редактирования
  url: "https://...",       // URL (для button и link)
  lineIndex: 42,            // номер строки в файле
  _raw: "полная строка"     // оригинальная строка для замены
}

4. Редактирование

В UI показывается таблица:

  • Кнопки — текст + URL
  • Ссылки — текст + URL
  • Тексты — только текст (может содержать HTML)

5. Сохранение

savePartsEditorFile():

  1. applyFieldsToContent(rawContent, fields) — заменяет значения в строках pug-файла
  2. POST /api/parts-file-write — записывает файл

Важно

  • Файлы записываются в email-gen/ volume
  • На проде volume монтирован → изменения сохраняются
  • Но для рендера нужен перезапуск email-gen-api (если файлы кэшируются)
  • На деве файлы на хосте → сразу доступны