- Split monolithic build-preview.go into modular packages: tools.go (entry), cli/ (list/create/delete/preview commands), config/ (JSON loading), preview/ (rendering engine, funcs, locale) - Extract all template metadata into data/templates_config.json as single source of truth — no hardcoded template data in Go - Replace hand-rolled CLI parsing with github.com/urfave/cli/v2 - Add sensible defaults for --folder (../themes) and --config (./data/templates_config.json) — most commands now run bare - Add type-coercing gt/lt/ge/le template funcs for JSON float64 - Fix AppUrl to gitea.com matching official template convention - rendered.js now exports __REGISTRY__ and __PARAMS__ alongside __RENDERED__ — preview/index.html reads all from single source - Cross-validate all 11 template data contexts against official Gitea source (services/mailer/*.go + templates/mail/*.tmpl) - Update all docs (README, AGENTS, CONTRIBUTING, 5 languages) to reflect new CLI workflow with create scaffolding command Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.8 KiB
2.8 KiB
Участие в разработке — Gitea Mail Templates
Способы участия
Добавление нового стиля
- Создайте каркас через инструмент:
cd tools && go run . create <имя-стиля>— создаёт полную структуру директорий с файлами-заготовками.tmplдля всех 11 типов писем - Отредактируйте каждый
.tmplфайл вthemes/<имя-стиля>/с вашим уникальным дизайном - Перегенерируйте превью:
cd tools && go run . preview all(скрипт автоматически находит все темы вthemes/и динамически генерирует селектор тем) - Отправьте PR со скриншотами
Рекомендации по стилю
- Каждый стиль должен включать все 11 типов шаблонов
- Используйте только встроенные функции шаблонов Gitea
- Ключи перевода из официальных файлов локали Gitea (
mail.*) - Не используйте
.DisplayNameгде его нет в контексте (collaborator, transfer, release, workflow_run, assigned, default) - Дизайн для 600px email клиентов
- Тестируйте в Gmail, Outlook, Apple Mail
Баг-репорты
- Проверьте переменные Go в шаблонах
- Сверьте ключи перевода с локалью Gitea
- Убедитесь что
.DisplayNameне используется где не надо - Перегенерируйте превью:
cd tools && go run . preview all - Создайте issue с указанием стиля и типа письма
Настройка разработки
Локальный предпросмотр
- Сгенерируйте данные:
cd tools && go run . preview all - Откройте
preview/index.htmlв браузере - Переключайте Modern, Gmail, Outlook, Raw source для проверки
Интеграционное тестирование
Разверните на Gitea: Site Administration > Configuration > Mailer > Send Test Email
Соглашение о коммитах
style(<имя>):— изменения шаблонов стиляpreview:— инструменты предпросмотраtools:— Go-скрипт сборкиdocs:— документация и переводыfix:— исправленияproject:— README, LICENSE, мета-файлы
Лицензия
Участвуя, вы соглашаетесь с лицензией MIT.