The build-preview.go now uses discoverThemes() to find all theme directories under themes/ automatically. The manual step of adding themes to a slice is no longer needed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.3 KiB
Contributing to Gitea Mail Templates
Thanks for your interest in contributing! This project aims to provide a diverse, well-maintained collection of email templates for the Gitea ecosystem.
Ways to Contribute
Adding a New Style
- Create the style directory:
themes/<your-style-name>/ - Copy the directory structure from an existing style
- Implement all 11
.tmplfiles with your unique visual design - Regenerate preview data:
go run ./tools/build-preview.go— the build script auto-discovers all theme directories underthemes/ - Add your theme as an
<option>in<select id="sel-theme">inpreview/index.html - Submit a PR with screenshots of rendered emails
Style Guidelines
- Each style must include all 11 template types listed in the README
- Use only Gitea's built-in template functions — check the Gitea source for reference
- Translation keys must come from Gitea's official locale files (
mail.*namespace) - Never reference
.DisplayNamein templates where the data context lacks it (collaborator, transfer, release, workflow_run, assigned, default) - Design for 600px max-width email clients
- Test against major email clients (Gmail, Outlook, Apple Mail) when possible
Bug Reports
If a template doesn't render correctly:
- Check that all referenced Go template variables exist — compare against the Gitea source mail templates
- Verify translation keys match Gitea's locale files
- Confirm
.DisplayNameisn't used in templates that lack it - Regenerate the preview:
go run ./tools/build-preview.go - Open an issue with: the style name, which email type, and the error or unexpected output
Documentation Improvements
Documentation updates, preview screenshots, installation guides, and translations are always welcome.
Development Setup
No build tools or dependencies are needed — these are raw Go HTML templates.
Previewing Locally
- Open
preview/index.htmldirectly in a browser — no server needed - Use the theme switcher, template selector, and client mode toggles to review designs
- Toggle between Modern, Gmail, Outlook, and Raw source modes to verify degradation
Regenerating Previews
go run ./tools/build-preview.go
This renders all templates (themes auto-discovered from the themes/ directory) using Go's native html/template package and writes the output to preview/rendered.js.
Integration Testing
Deploy the templates to a Gitea instance and use the admin test email feature: Site Administration > Configuration > Mailer > Send Test Email
Commit Conventions
style(horizon|terminal|ember|bloom|heritage|neon|mono|terra|ink|aurora):— template changespreview:— preview tooling changestools:— Go build script changesdocs:— documentation and translationsfix:— bug fixesproject:— README, LICENSE, AGENTS.md, meta
Translations
License
By contributing, you agree that your contributions will be licensed under the MIT License.