chore(init): scaffold Gitea mail templates — 110 templates, 10 visual styles, drop-in deployment

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
KenanZhuandClaude Opus 4.8 committed 2026-06-03 18:10:22 +08:00
commit a2742887e8
140 files changed
+8747

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
# Dependencies
node_modules/
vendor/
# OS files
.DS_Store
Thumbs.db
Desktop.ini
# Editor files
.vscode/
.idea/
*.swp
*.swo
*~
# Build artifacts
*.zip
*.tar.gz
# Generated preview data (run: go run ./tools/build-preview.go)
preview/rendered.js
+64
View File
@@ -0,0 +1,64 @@
# AGENTS.md — Gitea Mail Templates
## Project Overview
A curated collection of email template themes (10 visual styles) for self-hosted Gitea instances. Each theme contains 11 Go `html/template` files covering all Gitea notification email types.
## Repository Layout
```
themes/ # Template themes (5 styles, 11 .tmpl each = 55 source files)
horizon/ # Enterprise / Corporate
terminal/ # Developers / Tech
ember/ # Community / Open Source
bloom/ # Creative / Startup (glassmorphism)
heritage/ # Education / Research
tools/ # Go build tooling
build-preview.go # Pre-renders all templates into preview/rendered.js
go.mod # Go module (stdlib only, zero dependencies)
preview/ # Browser-based live preview
index.html # SPA with style/template/client/viewport switching
rendered.js # Pre-rendered HTML (generated, committed for clone-and-preview)
docs/ # Multi-language documentation
```
## Working With Templates
### Template Files
- All `.tmpl` files use Go `html/template` syntax
- Must use only Gitea's built-in template functions: `AppUrl`, `DotEscape`, `QueryEscape`, `ShortSha`, `HTMLFormat`, `PathEscapeSegments`, `FileSize`
- Must use only official Gitea translation keys (`mail.*` namespace)
- Never reference `.DisplayName` in templates where the data context lacks it (collaborator, transfer, release, workflow_run, assigned, default)
- Each style must have all 11 template types
### Adding a New Theme
1. Create `themes/<name>/` with the full `mail/` directory structure
2. Write all 11 `.tmpl` files with unique visual design
3. Run `go run ./tools/build-preview.go` to regenerate preview data
4. Add the theme to the `<select id="sel-theme">` in `preview/index.html`
5. Update README.md style gallery table
### Preview System
- `preview/index.html` loads `preview/rendered.js` (pre-rendered by Go) and displays in iframes
- Supports theme switching, template type switching, client simulation (Modern/Gmail/Outlook/Raw), and viewport toggle (Desktop 1386x780 / Mobile 390x780)
- Entries in `REGISTRY` and `PARAMS` objects must match the Go build script's template definitions
### Build Script
- `tools/build-preview.go` uses Go's native `html/template` package
- Defines mock data for each template type matching Gitea's actual data contexts
- Post-processes favicon URLs for preview display
- Zero external dependencies (stdlib only)
## Commit Conventions
- `style(name):` — template changes for a specific theme
- `preview:` — preview tooling changes
- `tools:` — Go build script changes
- `docs:` — documentation and translations
- `fix:` — bug fixes
- `project:` — README, LICENSE, AGENTS.md, meta
## Constraints
- No JavaScript framework dependencies — preview is vanilla JS
- No external Go dependencies — build uses stdlib only
- Templates must remain compatible with Gitea's `html/template` execution environment
- Preview works with `file://` protocol (no server needed)
+93
View File
@@ -0,0 +1,93 @@
# 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
1. Create the style directory: `themes/<your-style-name>/`
2. Copy the directory structure from an existing style
3. Implement all 11 `.tmpl` files with your unique visual design
4. Add your theme to the `themes` slice in `tools/build-preview.go`
5. Regenerate preview data: `go run ./tools/build-preview.go`
6. Add your theme as an `<option>` in `<select id="sel-theme">` in `preview/index.html`
7. 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](https://github.com/go-gitea/gitea) for reference
- Translation keys must come from Gitea's official locale files (`mail.*` namespace)
- **Never reference `.DisplayName`** in 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:
1. Check that all referenced Go template variables exist — compare against the Gitea source mail templates
2. Verify translation keys match Gitea's locale files
3. Confirm `.DisplayName` isn't used in templates that lack it
4. Regenerate the preview: `go run ./tools/build-preview.go`
5. 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
1. Open `preview/index.html` directly in a browser — no server needed
2. Use the theme switcher, template selector, and client mode toggles to review designs
3. Toggle between Modern, Gmail, Outlook, and Raw source modes to verify degradation
### Regenerating Previews
```bash
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 changes
- `preview:` — preview tooling changes
- `tools:` — Go build script changes
- `docs:` — documentation and translations
- `fix:` — bug fixes
- `project:` — README, LICENSE, AGENTS.md, meta
---
## Translations
- [English](CONTRIBUTING.md)
- [Simplified Chinese](docs/CONTRIBUTING.zh-CN.md)
- [Traditional Chinese](docs/CONTRIBUTING.zh-TW.md)
- [Russian](docs/CONTRIBUTING.ru.md)
- [Japanese](docs/CONTRIBUTING.ja.md)
- [Korean](docs/CONTRIBUTING.ko.md)
---
## License
By contributing, you agree that your contributions will be licensed under the MIT License.
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2026 Gitea Mail Templates Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+191
View File
@@ -0,0 +1,191 @@
# Gitea Mail Templates
A curated collection of professionally designed, audience-driven email templates for self-hosted [Gitea](https://about.gitea.com) instances.
> **110 template files — 10 visual styles, 11 email types each**
---
## Philosophy
Most self-hosted Gitea instances use the default plain email templates. This project provides **ready-to-deploy, visually polished alternatives** — each designed for a specific community or audience, so you can pick the one that feels right for your users.
Every template is a drop-in replacement. All Go template variables, translation keys, and Gitea data contexts are fully compatible. **No patches, no plugins, no forks required.**
---
## Style Gallery
| Preview | Style | Audience | Character |
|---|---|---|---|
| ![Horizon](docs/images/horizon.png) | **Horizon** | Enterprise / Corporate | Blue accent, slate typography, centered cards |
| ![Terminal](docs/images/terminal.png) | **Terminal** | Developers / Tech | Dark mode, monospace, green CLI accents |
| ![Ember](docs/images/ember.png) | **Ember** | Community / Open Source | Warm amber, rounded, humanist, inclusive |
| ![Bloom](docs/images/bloom.png) | **Bloom** | Creative / Startup | Frosted glass, soft blue light, iridescent accents |
| ![Heritage](docs/images/heritage.png) | **Heritage** | Education / Research | Navy and gold, serif, classic, authoritative |
| ![Neon](docs/images/neon.png) | **Neon** | Gaming / Web3 / Creative Tech | Cyberpunk neon glow, hot pink & cyan, synthwave energy |
| ![Mono](docs/images/mono.png) | **Mono** | Design Studios / Editorial | Swiss brutalist, black & white, red accent, zero radius |
| ![Terra](docs/images/terra.png) | **Terra** | Sustainability / Wellness | Warm earth tones, organic textures, humanist serif |
| ![Ink](docs/images/ink.png) | **Ink** | Publishing / News / Literature | Editorial print, navy & gold, newspaper layout, drop caps |
| ![Aurora](docs/images/aurora.png) | **Aurora** | Premium SaaS / Mindfulness | Ethereal light gradients, deep purple & teal, atmospheric glow |
> Images are 600px screenshots from the [live preview](preview/index.html). See [docs/images/README.md](docs/images/README.md) for capture instructions.
[**Live preview gallery**](preview/index.html) — open in a browser for an interactive style switcher with desktop/mobile viewports and email client simulation (Modern, Gmail, Outlook, Raw source).
---
## Installation
### Quick Start
Choose a style, then copy the `mail/` directory into your Gitea custom templates path:
```bash
# Locate your Gitea custom directory
# (set by GITEA_CUSTOM; defaults shown below)
# Copy templates (example: Horizon style)
cp -r themes/horizon/mail/* /var/lib/gitea/custom/templates/mail/
# Restart Gitea
systemctl restart gitea
```
### Custom Directory Location
| Platform | Default Path |
|---|---|
| Linux (binary) | `/var/lib/gitea/custom` |
| Linux (Docker) | `/data/gitea` |
| Windows | `C:\gitea\custom` |
### Switching Styles
Overwrite the files with a different style. All templates share the exact same variable structure — no configuration changes needed.
```bash
cp -r themes/terminal/mail/* /var/lib/gitea/custom/templates/mail/
systemctl restart gitea
```
### Confirming It Works
Send a test email from the Gitea admin panel:
**Site Administration > Configuration > Mailer > Send Test Email**
---
## Preview
A live preview tool is included to browse all styles and email types without deploying to a Gitea instance.
### Quick Start
First, generate the preview data (requires Go):
```bash
go run ./tools/build-preview.go
```
Then open `preview/index.html` directly in a browser. No server required.
> `preview/rendered.js` is generated and git-ignored. Re-run the command after modifying templates.
### Features
- Theme switcher — toggle between all 5 visual styles
- Template switcher — browse all 11 email types
- Client simulation — Modern, Gmail (no `<style>`), Outlook Desktop, Raw source
- Viewport toggle — Desktop (1386x780) / Mobile (390x780)
- Parameter panel — view template variables and mock data per email type
- Keyboard shortcuts — `←→` templates, `d` desktop, `m` mobile
---
## Directory Structure
```
gitea-mail-templates/
├── themes/ # 5 visual styles, 11 .tmpl files each
│ ├── horizon/ # Enterprise / Corporate
│ ├── terminal/ # Developers / Tech
│ ├── ember/ # Community / Open Source
│ ├── bloom/ # Creative / Startup
│ └── heritage/ # Education / Research
├── preview/ # Live preview SPA
│ ├── index.html # Style/template/client/viewport switcher
│ └── rendered.js # Pre-rendered templates (generated by tools/)
├── tools/ # Build tooling
│ ├── build-preview.go # Go build script — renders all templates
│ └── go.mod
├── docs/ # Multi-language documentation
├── AGENTS.md # AI agent guidance
├── CONTRIBUTING.md
├── LICENSE
├── README.md
└── .gitignore
```
### Template Types
| File | Email Trigger |
|---|---|
| `mail/user/auth/activate.tmpl` | Account activation |
| `mail/user/auth/activate_email.tmpl` | Email address verification |
| `mail/user/auth/register_notify.tmpl` | New registration notification |
| `mail/user/auth/reset_passwd.tmpl` | Password reset |
| `mail/org/team_invite.tmpl` | Team invitation |
| `mail/repo/collaborator.tmpl` | Repository collaborator added |
| `mail/repo/transfer.tmpl` | Repository ownership transfer |
| `mail/repo/release.tmpl` | New release published |
| `mail/repo/actions/workflow_run.tmpl` | Actions workflow run |
| `mail/repo/issue/assigned.tmpl` | Issue / Pull Request assigned |
| `mail/repo/issue/default.tmpl` | Issue / Pull Request updates |
---
## Compatibility
- **Gitea 1.21+** (all versions with Go 1.21 template support)
- 100% variable-compatible with official Gitea templates
- Uses only built-in Gitea template functions
- Uses only official Gitea translation keys
- No custom template functions or locale patches required
---
## Design Principles
1. **Responsive** — Max-width 600px cards; works in all email clients
2. **Accessible** — 4.5:1 contrast ratios; semantic HTML
3. **Graceful degradation** — Fallback link visible when buttons fail to render
4. **Logo support** — References `{{AppUrl}}assets/img/favicon.png` by default
5. **i18n-ready** — All user-facing strings use Gitea's `{{.locale.Tr}}` system
---
## Documentation
- [English](README.md)
- [Simplified Chinese](docs/README.zh-CN.md)
- [Traditional Chinese](docs/README.zh-TW.md)
- [Russian](docs/README.ru.md)
- [Japanese](docs/README.ja.md)
- [Korean](docs/README.ko.md)
---
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. Multi-language versions available in [docs/](docs/).
## License
MIT — see [LICENSE](LICENSE). Free to use, modify, and distribute in any Gitea deployment.
---
<p align="center">
<sub>Not affiliated with the Gitea project. Gitea is a community-managed lightweight code hosting solution written in Go.</sub>
</p>
+59
View File
@@ -0,0 +1,59 @@
# コントリビューション — Gitea メールテンプレート
## 参加方法
### 新しいスタイルの追加
1. スタイルディレクトリを作成: `themes/<style-name>/`
2. 既存スタイルからディレクトリ構造をコピー
3. 11個の `.tmpl` ファイルを独自デザインで実装
4. `tools/build-preview.go` の `themes` スライスに追加
5. プレビューを再生成: `go run ./tools/build-preview.go`
6. `preview/index.html` の `<select id="sel-theme">` に追加
7. スクリーンショット付きで PR を提出
### スタイルガイドライン
- 各スタイルに **全11種類のテンプレート** を含める
- Gitea 組み込み関数のみ使用
- 翻訳キーは Gitea 公式ロケール (`mail.*`) から
- **`.DisplayName` を使用しない** (collaborator, transfer, release, workflow_run, assigned, default)
- 600px 幅のメールクライアント向けにデザイン
- Gmail, Outlook, Apple Mail でテスト
### バグレポート
1. Go 変数が正しいか確認
2. 翻訳キーが Gitea ロケールと一致するか確認
3. `.DisplayName` が誤用されていないか確認
4. プレビューを再生成: `go run ./tools/build-preview.go`
5. スタイル名とメールタイプを明記して issue を作成
---
## 開発セットアップ
### ローカルプレビュー
1. データを生成: `go run ./tools/build-preview.go`
2. `preview/index.html` をブラウザで開く
3. Modern, Gmail, Outlook, Raw source を切り替えて確認
### 結合テスト
Gitea にデプロイ: **Site Administration > Configuration > Mailer > Send Test Email**
---
## コミット規約
- `style(<name>):` — スタイルのテンプレート変更
- `preview:` — プレビューツールの変更
- `tools:` — Go ビルドスクリプトの変更
- `docs:` — ドキュメントと翻訳
- `fix:` — バグ修正
- `project:` — README, LICENSE, メタファイル
## ライセンス
貢献により、MIT ライセンスに同意したものとみなします。
+59
View File
@@ -0,0 +1,59 @@
# 기여 가이드 — Gitea 메일 템플릿
## 기여 방법
### 새 스타일 추가하기
1. 스타일 디렉토리 생성: `themes/<style-name>/`
2. 기존 스타일에서 디렉토리 구조 복사
3. 11개 `.tmpl` 파일을 고유한 디자인으로 구현
4. `tools/build-preview.go`의 `themes` 슬라이스에 추가
5. 프리뷰 재생성: `go run ./tools/build-preview.go`
6. `preview/index.html`의 `<select id="sel-theme">`에 추가
7. 스크린샷과 함께 PR 제출
### 스타일 가이드라인
- 각 스타일에 **11개 템플릿 유형 모두** 포함
- Gitea 내장 함수만 사용
- 번역 키는 Gitea 공식 로케일 (`mail.*`) 사용
- **`.DisplayName` 사용 금지** (collaborator, transfer, release, workflow_run, assigned, default)
- 600px 너비의 이메일 클라이언트에 맞게 디자인
- Gmail, Outlook, Apple Mail에서 테스트
### 버그 리포트
1. Go 변수가 올바른지 확인
2. 번역 키가 Gitea 로케일과 일치하는지 확인
3. `.DisplayName`이 오용되지 않았는지 확인
4. 프리뷰 재생성: `go run ./tools/build-preview.go`
5. 스타일 이름과 메일 유형을 명시하여 이슈 생성
---
## 개발 설정
### 로컬 프리뷰
1. 데이터 생성: `go run ./tools/build-preview.go`
2. `preview/index.html`을 브라우저에서 열기
3. Modern, Gmail, Outlook, Raw source 모드 전환 확인
### 통합 테스트
Gitea에 배포: **Site Administration > Configuration > Mailer > Send Test Email**
---
## 커밋 규칙
- `style(<name>):` — 스타일 템플릿 변경
- `preview:` — 프리뷰 도구 변경
- `tools:` — Go 빌드 스크립트 변경
- `docs:` — 문서 및 번역
- `fix:` — 버그 수정
- `project:` — README, LICENSE, 메타 파일
## 라이선스
기여함으로써 MIT 라이선스에 동의하게 됩니다.
+59
View File
@@ -0,0 +1,59 @@
# Участие в разработке — Gitea Mail Templates
## Способы участия
### Добавление нового стиля
1. Создайте директорию стиля: `themes/<имя-стиля>/`
2. Скопируйте структуру из существующего стиля
3. Реализуйте все 11 `.tmpl` файлов с уникальным дизайном
4. Добавьте тему в слайс `themes` в `tools/build-preview.go`
5. Перегенерируйте превью: `go run ./tools/build-preview.go`
6. Добавьте тему в `<select id="sel-theme">` в `preview/index.html`
7. Отправьте PR со скриншотами
### Рекомендации по стилю
- Каждый стиль должен включать **все 11 типов шаблонов**
- Используйте только встроенные функции шаблонов Gitea
- Ключи перевода из официальных файлов локали Gitea (`mail.*`)
- **Не используйте `.DisplayName`** где его нет в контексте (collaborator, transfer, release, workflow_run, assigned, default)
- Дизайн для 600px email клиентов
- Тестируйте в Gmail, Outlook, Apple Mail
### Баг-репорты
1. Проверьте переменные Go в шаблонах
2. Сверьте ключи перевода с локалью Gitea
3. Убедитесь что `.DisplayName` не используется где не надо
4. Перегенерируйте превью: `go run ./tools/build-preview.go`
5. Создайте issue с указанием стиля и типа письма
---
## Настройка разработки
### Локальный предпросмотр
1. Сгенерируйте данные: `go run ./tools/build-preview.go`
2. Откройте `preview/index.html` в браузере
3. Переключайте Modern, Gmail, Outlook, Raw source для проверки
### Интеграционное тестирование
Разверните на Gitea: **Site Administration > Configuration > Mailer > Send Test Email**
---
## Соглашение о коммитах
- `style(<имя>):` — изменения шаблонов стиля
- `preview:` — инструменты предпросмотра
- `tools:` — Go-скрипт сборки
- `docs:` — документация и переводы
- `fix:` — исправления
- `project:` — README, LICENSE, мета-файлы
## Лицензия
Участвуя, вы соглашаетесь с лицензией MIT.
+66
View File
@@ -0,0 +1,66 @@
# 贡献指南 — Gitea 邮件模板
## 参与方式
### 添加新风格
1. 创建风格目录:`themes/<风格名称>/`
2. 从现有风格复制目录结构
3. 用独特的视觉设计实现全部 11 个 `.tmpl` 文件
4. 在 `tools/build-preview.go` 的 `themes` 切片中添加新主题
5. 重新生成预览:`go run ./tools/build-preview.go`
6. 在 `preview/index.html` 的 `<select id="sel-theme">` 中添加选项
7. 提交包含截图渲染效果的 PR
### 风格指南
- 每个风格必须包含全部 **11 种模板类型**
- 只使用 Gitea 内置模板函数
- 翻译键必须来自 Gitea 官方语言文件(`mail.*` 命名空间)
- **不要在以下模板中使用 `.DisplayName`**:collaborator、transfer、release、workflow_run、assigned、default
- 面向 600px 宽度的邮件客户端设计
- 尽可能在 Gmail、Outlook、Apple Mail 中测试
### 报告 Bug
1. 检查引用的 Go 模板变量是否存在
2. 验证翻译键是否与 Gitea 语言文件匹配
3. 确认 `.DisplayName` 未在不支持的模板中使用
4. 重新生成预览:`go run ./tools/build-preview.go`
5. 提交 issue,注明风格名称、邮件类型及错误描述
### 改进文档
文档改进、预览截图、安装指南和翻译始终欢迎。
---
## 开发环境
无需构建工具或依赖。
### 本地预览
1. 先生成预览数据:`go run ./tools/build-preview.go`
2. 在浏览器中打开 `preview/index.html`
3. 在 Modern、Gmail、Outlook、Raw source 模式间切换验证效果
### 集成测试
将模板部署到 Gitea 实例,使用管理后台的测试邮件功能:
**Site Administration > Configuration > Mailer > Send Test Email**
---
## 提交规范
- `style(<名称>):` — 特定风格的模板变更
- `preview:` — 预览工具变更
- `tools:` — Go 构建脚本变更
- `docs:` — 文档和翻译
- `fix:` — Bug 修复
- `project:` — README、LICENSE、元文件
## 许可协议
参与贡献即表示您同意将您的贡献以 MIT 许可证授权。
+66
View File
@@ -0,0 +1,66 @@
# 貢獻指南 — Gitea 郵件模板
## 參與方式
### 新增風格
1. 建立風格目錄:`themes/<風格名稱>/`
2. 從現有風格複製目錄結構
3. 以獨特的視覺設計實作全部 11 個 `.tmpl` 檔案
4. 在 `tools/build-preview.go` 的 `themes` 切片中新增主題
5. 重新產生預覽:`go run ./tools/build-preview.go`
6. 在 `preview/index.html` 的 `<select id="sel-theme">` 中新增選項
7. 提交包含螢幕截圖的 PR
### 風格指南
- 每個風格必須包含全部 **11 種模板類型**
- 僅使用 Gitea 內建模板函式
- 翻譯鍵必須來自 Gitea 官方語系檔案(`mail.*` 命名空間)
- **請勿在以下模板中使用 `.DisplayName`**:collaborator、transfer、release、workflow_run、assigned、default
- 針對 600px 寬度的郵件用戶端設計
- 盡可能在 Gmail、Outlook、Apple Mail 中測試
### 回報 Bug
1. 檢查引用的 Go 模板變數是否存在
2. 驗證翻譯鍵是否與 Gitea 語系檔案相符
3. 確認 `.DisplayName` 未在不支援的模板中使用
4. 重新產生預覽:`go run ./tools/build-preview.go`
5. 提交 issue,註明風格名稱、郵件類型及錯誤描述
### 改善文件
文件改進、預覽螢幕截圖、安裝指南和翻譯始終歡迎。
---
## 開發環境
無需建置工具或依賴。
### 本機預覽
1. 先生成預覽資料:`go run ./tools/build-preview.go`
2. 在瀏覽器中開啟 `preview/index.html`
3. 在 Modern、Gmail、Outlook、Raw source 模式間切換驗證效果
### 整合測試
將模板部署至 Gitea 實例,使用管理後台的測試郵件功能:
**Site Administration > Configuration > Mailer > Send Test Email**
---
## 提交規範
- `style(<名稱>):` — 特定風格的模板變更
- `preview:` — 預覽工具變更
- `tools:` — Go 建置腳本變更
- `docs:` — 文件與翻譯
- `fix:` — Bug 修復
- `project:` — README、LICENSE、中繼資料檔案
## 授權條款
參與貢獻即表示您同意將您的貢獻以 MIT 授權條款授權。
+50
View File
@@ -0,0 +1,50 @@
# Gitea メールテンプレート
[Gitea](https://about.gitea.com) のためのメールテンプレートコレクション。
> **110 ファイル — 10 スタイル、各11種類**
---
## スタイルギャラリー
| プレビュー | スタイル | 対象 | 特徴 |
|---|---|---|---|
| ![Horizon](images/horizon.png) | **Horizon** | エンタープライズ | Blue accent, slate, centred cards |
| ![Terminal](images/terminal.png) | **Terminal** | 開発者 | Dark mode, monospace, green CLI |
| ![Ember](images/ember.png) | **Ember** | コミュニティ | Warm amber, rounded, inclusive |
| ![Bloom](images/bloom.png) | **Bloom** | クリエイティブ | Frosted glass, soft blue light |
| ![Heritage](images/heritage.png) | **Heritage** | 教育/研究 | Navy and gold, serif, classic |
| ![Neon](images/neon.png) | **Neon** | ゲーム/Web3 | Cyberpunk neon, pink and cyan |
| ![Mono](images/mono.png) | **Mono** | デザイン/編集 | Swiss brutalist, black-white-red |
| ![Terra](images/terra.png) | **Terra** | サステナビリティ | Warm earth tones, organic textures |
| ![Ink](images/ink.png) | **Ink** | 出版/ニュース | Editorial print, navy and gold |
| ![Aurora](images/aurora.png) | **Aurora** | プレミアムSaaS | Ethereal gradients, purple and teal |
> 画像は[ライブプレビュー](../preview/index.html)からの600px幅のスクリーンショットです。キャプチャ手順は [images/README.md](images/README.md) を参照してください。
[**ライブプレビュー**](../preview/index.html)
---
## インストール
```bash
cp -r themes/horizon/mail/* /var/lib/gitea/custom/templates/mail/
systemctl restart gitea
```
## プレビュー
```bash
go run ./tools/build-preview.go
```
その後 `preview/index.html` を開く。
## 互換性
- **Gitea 1.21+**, 100%互換, 組み込み関数のみ
## ライセンス
MIT — [LICENSE](../LICENSE).
+50
View File
@@ -0,0 +1,50 @@
# Gitea 메일 템플릿
[Gitea](https://about.gitea.com) 인스턴스를 위한 메일 템플릿 컬렉션.
> **110 파일 — 10 스타일, 각 11종류**
---
## 스타일 갤러리
| 미리보기 | 스타일 | 대상 | 특징 |
|---|---|---|---|
| ![Horizon](images/horizon.png) | **Horizon** | 엔터프라이즈 | Blue accent, slate, centred cards |
| ![Terminal](images/terminal.png) | **Terminal** | 개발자 | Dark mode, monospace, green CLI |
| ![Ember](images/ember.png) | **Ember** | 커뮤니티 | Warm amber, rounded, inclusive |
| ![Bloom](images/bloom.png) | **Bloom** | 크리에이티브 | Frosted glass, soft blue light |
| ![Heritage](images/heritage.png) | **Heritage** | 교육/연구 | Navy and gold, serif, classic |
| ![Neon](images/neon.png) | **Neon** | 게임/Web3 | Cyberpunk neon, pink and cyan |
| ![Mono](images/mono.png) | **Mono** | 디자인/편집 | Swiss brutalist, black-white-red |
| ![Terra](images/terra.png) | **Terra** | 지속가능성 | Warm earth tones, organic textures |
| ![Ink](images/ink.png) | **Ink** | 출판/뉴스 | Editorial print, navy and gold |
| ![Aurora](images/aurora.png) | **Aurora** | 프리미엄SaaS | Ethereal gradients, purple and teal |
> 이미지는 [라이브 프리뷰](../preview/index.html)에서 캡처한 600px 너비 스크린샷입니다. 캡처 방법은 [images/README.md](images/README.md)를 참조하세요.
[**라이브 프리뷰**](../preview/index.html)
---
## 설치
```bash
cp -r themes/horizon/mail/* /var/lib/gitea/custom/templates/mail/
systemctl restart gitea
```
## 프리뷰
```bash
go run ./tools/build-preview.go
```
그런 다음 `preview/index.html` 열기.
## 호환성
- **Gitea 1.21+**, 100% 호환, 내장 함수만 사용
## 라이선스
MIT — [LICENSE](../LICENSE).
+50
View File
@@ -0,0 +1,50 @@
# Gitea Mail Templates — Шаблоны писем Gitea
Коллекция шаблонов писем для [Gitea](https://about.gitea.com).
> **110 файлов — 10 стилей, по 11 типов писем**
---
## Галерея стилей
| Превью | Стиль | Аудитория | Характер |
|---|---|---|---|
| ![Horizon](images/horizon.png) | **Horizon** | Корпоративный | Синий акцент, slate, centred cards |
| ![Terminal](images/terminal.png) | **Terminal** | Разработчики | Тёмная тема, monospace, зелёный CLI |
| ![Ember](images/ember.png) | **Ember** | Open Source | Тёплый янтарь, rounded, инклюзивный |
| ![Bloom](images/bloom.png) | **Bloom** | Креатив / Стартапы | Матовое стекло, мягкий синий свет |
| ![Heritage](images/heritage.png) | **Heritage** | Образование | Navy и золото, serif, классика |
| ![Neon](images/neon.png) | **Neon** | Игры / Web3 / Креатив | Киберпанк-неон, розовый и циан |
| ![Mono](images/mono.png) | **Mono** | Дизайн / Редакция | Швейцарский брутализм, чёрный-белый-красный |
| ![Terra](images/terra.png) | **Terra** | Устойчивость / Здоровье | Тёплые земляные тона, органические текстуры |
| ![Ink](images/ink.png) | **Ink** | Издательство / Новости | Редакционная печать, navy и золото |
| ![Aurora](images/aurora.png) | **Aurora** | Премиум SaaS | Эфирные градиенты, пурпур и бирюза |
> Изображения шириной 600px из [предпросмотра](../preview/index.html). Инструкции по созданию скриншотов: [images/README.md](images/README.md).
[**Галерея предпросмотра**](../preview/index.html)
---
## Установка
```bash
cp -r themes/horizon/mail/* /var/lib/gitea/custom/templates/mail/
systemctl restart gitea
```
## Предпросмотр
```bash
go run ./tools/build-preview.go
```
Затем откройте `preview/index.html`.
## Совместимость
- **Gitea 1.21+**, 100% совместимость, только встроенные функции
## Лицензия
MIT — [LICENSE](../LICENSE).
+66
View File
@@ -0,0 +1,66 @@
# Gitea 邮件模板
为自托管 [Gitea](https://about.gitea.com) 实例精心设计、面向不同受众的邮件模板集合。
> **110 个模板文件 — 10 种视觉风格,每种 11 种邮件类型**
---
## 设计理念
大多数自托管 Gitea 实例使用默认的纯文本邮件模板。本项目提供了**开箱即用、视觉精美的替代方案**——每种方案都针对特定社区或受众设计,您可以选择最适合您用户的风格。
每个模板都是直接替换。所有 Go 模板变量、翻译键和 Gitea 数据上下文完全兼容。**无需补丁、无需插件、无需 fork。**
---
## 风格画廊
| 预览 | 风格 | 受众 | 特点 |
|---|---|---|---|
| ![Horizon](images/horizon.png) | **Horizon** | 企业/公司 | 蓝色强调色、石板灰排版、居中卡片 |
| ![Terminal](images/terminal.png) | **Terminal** | 开发者/技术 | 暗色模式、等宽字体、绿色命令行风格 |
| ![Ember](images/ember.png) | **Ember** | 社区/开源 | 暖琥珀色、圆角、人文主义、包容 |
| ![Bloom](images/bloom.png) | **Bloom** | 创意/初创 | 磨砂玻璃、柔和蓝色光线、虹彩点缀 |
| ![Heritage](images/heritage.png) | **Heritage** | 教育/研究 | 海军蓝与金色、衬线字体、经典、权威 |
| ![Neon](images/neon.png) | **Neon** | 游戏/Web3/创意科技 | 赛博朋克霓虹、粉红与青色、合成波能量 |
| ![Mono](images/mono.png) | **Mono** | 设计工作室/编辑 | 瑞士粗野主义、黑白红强调、零圆角 |
| ![Terra](images/terra.png) | **Terra** | 可持续/健康 | 温暖大地色调、有机质感、人文衬线 |
| ![Ink](images/ink.png) | **Ink** | 出版/新闻/文学 | 编辑印刷、深蓝与金色、报纸排版 |
| ![Aurora](images/aurora.png) | **Aurora** | 高端SaaS/正念 | 空灵光效渐变、深紫与青绿、大气光晕 |
> 图片为 600px 宽截图,来自[在线预览](../preview/index.html)。截图方法参见 [images/README.md](images/README.md)。
[**在线预览画廊**](../preview/index.html)
---
## 安装
选择一种风格,将 `mail/` 目录复制到 Gitea 自定义模板路径:
```bash
cp -r themes/horizon/mail/* /var/lib/gitea/custom/templates/mail/
systemctl restart gitea
```
切换风格只需覆盖文件,无需更改配置。
---
## 预览
```bash
go run ./tools/build-preview.go
```
然后打开 `preview/index.html`。
---
## 兼容性
- **Gitea 1.21+**,100% 变量兼容,仅使用内置函数和官方翻译键
## 许可证
MIT — 详见 [LICENSE](../LICENSE)。
+66
View File
@@ -0,0 +1,66 @@
# Gitea 郵件模板
為自託管 [Gitea](https://about.gitea.com) 實例精心設計、面向不同受眾的郵件模板集合。
> **110 個模板檔案 — 10 種視覺風格,每種 11 種郵件類型**
---
## 設計理念
大多數自託管 Gitea 實例使用預設的純文字郵件模板。本專案提供了**開箱即用、視覺精美的替代方案**——每種方案都針對特定社群或受眾設計,您可以選擇最適合您使用者的風格。
每個模板都是直接替換。所有 Go 模板變數、翻譯鍵和 Gitea 資料上下文完全相容。**無需修補程式、無需外掛、無需 fork。**
---
## 風格展示
| 預覽 | 風格 | 受眾 | 特點 |
|---|---|---|---|
| ![Horizon](images/horizon.png) | **Horizon** | 企業/公司 | 藍色強調色、石板灰排版、居中卡片 |
| ![Terminal](images/terminal.png) | **Terminal** | 開發者/技術 | 暗色模式、等寬字型、綠色命令列風格 |
| ![Ember](images/ember.png) | **Ember** | 社群/開源 | 暖琥珀色、圓角、人文主義、包容 |
| ![Bloom](images/bloom.png) | **Bloom** | 創意/新創 | 磨砂玻璃、柔和藍色光線、虹彩點綴 |
| ![Heritage](images/heritage.png) | **Heritage** | 教育/研究 | 海軍藍與金色、襯線字型、經典、權威 |
| ![Neon](images/neon.png) | **Neon** | 遊戲/Web3/創意科技 | 賽博龐克霓虹、粉紅與青色、合成波能量 |
| ![Mono](images/mono.png) | **Mono** | 設計工作室/編輯 | 瑞士粗野主義、黑白紅強調、零圓角 |
| ![Terra](images/terra.png) | **Terra** | 永續/健康 | 溫暖大地色調、有機質感、人文襯線 |
| ![Ink](images/ink.png) | **Ink** | 出版/新聞/文學 | 編輯印刷、深藍與金色、報紙排版 |
| ![Aurora](images/aurora.png) | **Aurora** | 高端SaaS/正念 | 空靈光效漸變、深紫與青綠、大氣光暈 |
> 圖片為 600px 寬截圖,來自[線上預覽](../preview/index.html)。截圖方法參見 [images/README.md](images/README.md)。
[**線上預覽展示**](../preview/index.html)
---
## 安裝
選擇一種風格,將 `mail/` 目錄複製到 Gitea 自訂模板路徑:
```bash
cp -r themes/horizon/mail/* /var/lib/gitea/custom/templates/mail/
systemctl restart gitea
```
切換風格只需覆蓋檔案,無需更改設定。
---
## 預覽
```bash
go run ./tools/build-preview.go
```
然後開啟 `preview/index.html`。
---
## 相容性
- **Gitea 1.21+**,100% 變數相容,僅使用內建函式和官方翻譯鍵
## 授權
MIT — 詳見 [LICENSE](../LICENSE)。
View File
Whitespace-only changes.
+18
View File
@@ -0,0 +1,18 @@
# Style Preview Images
Place 600px-wide PNG screenshots here, captured from the [live preview](../preview/index.html).
## Naming Convention
```
horizon.png terminal.png ember.png bloom.png heritage.png
neon.png mono.png terra.png ink.png aurora.png
```
## How to Capture
1. Run `go run ./tools/build-preview.go` from the project root
2. Open `preview/index.html` in a browser
3. For each style, select the "Activate Account" template and "Modern" client mode
4. Take a screenshot of the rendered email (600px width recommended)
5. Save as `<style-name>.png` in this directory
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

+312
View File
@@ -0,0 +1,312 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Gitea Mail Templates - Live Preview</title>
<style>
:root{
--bg:#0b1120;--surface:#151d2e;--border:#1e2d45;--text:#d1d9e6;--muted:#6b7d99;
--accent:#4da6ff;--green:#34d399;--red:#f87171;--warn:#fbbf24;
--nav-h:48px;--panel-w:270px;--rad:6px
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);height:100vh;display:flex;flex-direction:column}
// ── Top bar ──
#topbar{height:var(--nav-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px;gap:14px;flex-shrink:0;z-index:10}
#topbar .brand{font-weight:700;font-size:14px;color:#fff;white-space:nowrap;letter-spacing:-0.2px}
#topbar .brand span{color:var(--accent);font-weight:400;font-size:11px;margin-left:4px;text-transform:uppercase;letter-spacing:1px}
#topbar .sep{width:1px;height:20px;background:var(--border)}
#topbar label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin-right:-8px}
#topbar select{background:var(--bg);color:var(--text);border:1px solid var(--border);padding:6px 10px;border-radius:var(--rad);font-size:12px;cursor:pointer;outline:none;min-width:90px}
#topbar select:focus{border-color:var(--accent)}
#topbar .btn-group{display:flex}
#topbar .btn-group button{background:var(--bg);color:var(--muted);border:1px solid var(--border);padding:6px 14px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}
#topbar .btn-group button:first-child{border-radius:var(--rad) 0 0 var(--rad)}
#topbar .btn-group button:last-child{border-radius:0 var(--rad) var(--rad) 0}
#topbar .btn-group button+button{border-left:none}
#topbar .btn-group button.on{background:var(--accent);color:#000;border-color:var(--accent);font-weight:600}
#topbar .hint{font-size:10px;color:var(--muted);opacity:.5}
// ── Main layout ──
#main{flex:1;display:flex;min-height:0}
#preview-area{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:24px;overflow:auto;background:linear-gradient(135deg,#0b1120,#131c30,#0d1525)}
// ── Viewport ──
#viewport{border-radius:var(--rad);box-shadow:0 8px 32px rgba(0,0,0,.45);transition:all .3s;flex-shrink:0;overflow:hidden;background:#fff}
#viewport.desktop{width:1386px;height:780px}
#viewport.mobile{width:390px;height:780px;border-radius:28px;border:3px solid #1e293b;box-shadow:0 8px 32px rgba(0,0,0,.5),inset 0 0 0 1px #0f172a;display:flex;flex-direction:column}
#viewport.mobile::before{content:'';display:block;height:24px;background:#1e293b;flex-shrink:0}
#preview-frame{width:100%;height:100%;border:none;display:block;background:#fff}
#viewport.desktop #preview-frame{border-radius:var(--rad)}
// ── Side panel ──
#panel{width:var(--panel-w);background:var(--surface);border-left:1px solid var(--border);overflow-y:auto;flex-shrink:0;display:flex;flex-direction:column}
#panel section{padding:14px 16px;border-bottom:1px solid var(--border)}
#panel section:last-child{border-bottom:none}
#panel h3{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:10px}
#panel .card{background:var(--bg);border-radius:var(--rad);padding:10px 12px;margin-bottom:8px}
#panel .card .label{font-size:10px;color:var(--muted);margin-bottom:2px}
#panel .card .value{font-size:12px;color:var(--text)}
#panel table{width:100%;border-collapse:collapse}
#panel table td{padding:4px 6px;font-size:11px;border-bottom:1px solid rgba(255,255,255,.03);vertical-align:top}
#panel table td:first-child{font-family:monospace;color:var(--accent);font-size:10px;width:0;white-space:nowrap}
#panel table td:last-child{color:var(--muted);text-align:right;font-size:10px;word-break:break-all}
#panel .badge{display:inline-block;font-size:9px;padding:1px 6px;border-radius:3px;font-weight:600;letter-spacing:.2px;white-space:nowrap}
.badge-req{background:rgba(52,211,153,.12);color:var(--green)}
.badge-opt{background:rgba(107,125,153,.1);color:var(--muted)}
// ── Client indicators ──
#panel .indicators{display:flex;flex-wrap:wrap;gap:4px 12px}
#panel .indicators span{font-size:11px;color:var(--muted);display:inline-flex;align-items:center;gap:5px}
.dot{width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0}
.d-on{background:var(--green)}.d-off{background:var(--red)}.d-warn{background:var(--warn)}
// ── Loading ──
.loading-wrap{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted);font-size:13px;flex-direction:column;gap:8px}
.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
#panel::-webkit-scrollbar{width:4px}
#panel::-webkit-scrollbar-track{background:transparent}
#panel::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
@media(max-width:850px){#panel{display:none}#topbar .hint{display:none}}
</style>
</head>
<body>
<nav id="topbar">
<span class="brand">Gitea Mail Templates <span>Preview</span></span>
<span class="sep"></span>
<label>Theme</label>
<select id="sel-theme" onchange="switchTheme(this.value)">
<option value="horizon">Horizon</option><option value="terminal">Terminal</option>
<option value="ember">Ember</option><option value="bloom">Bloom</option>
<option value="heritage">Heritage</option>
<option value="neon">Neon</option>
<option value="mono">Mono</option>
<option value="terra">Terra</option>
<option value="ink">Ink</option>
<option value="aurora">Aurora</option>
</select>
<span class="sep"></span>
<label>Template</label>
<select id="sel-template" onchange="switchTemplate(this.value)"></select>
<span class="sep"></span>
<label>Client</label>
<select id="sel-client" onchange="switchClient(this.value)">
<option value="modern">Modern</option><option value="gmail">Gmail</option>
<option value="outlook">Outlook</option><option value="raw">Raw Source</option>
</select>
<span class="sep"></span>
<div class="btn-group">
<button id="btn-desk" class="on" onclick="setViewport('desktop')">Desktop</button>
<button id="btn-mob" onclick="setViewport('mobile')">Mobile</button>
</div>
<span class="hint">keys: d/m &nbsp; &larr;&rarr;</span>
</nav>
<div id="main">
<div id="preview-area">
<div id="viewport" class="desktop">
<div class="loading-wrap" id="loading">
<div class="spinner"></div>
<span>Loading pre-rendered templates...</span>
</div>
<iframe id="preview-frame" sandbox="allow-same-origin" style="display:none"></iframe>
</div>
</div>
<aside id="panel">
<section>
<h3>Current Template</h3>
<div class="card">
<div class="label">Type</div>
<div class="value" id="panel-name">-</div>
</div>
<div class="card">
<div class="label">Description</div>
<div class="value" id="panel-desc" style="font-size:11px;line-height:1.5">-</div>
</div>
</section>
<section style="flex:1;overflow-y:auto">
<h3>Parameters</h3>
<table id="panel-params"><tr><td colspan="2" style="color:var(--muted)">-</td></tr></table>
</section>
<section>
<h3>Client Simulation</h3>
<div class="indicators" id="panel-indicators"></div>
</section>
<section>
<h3>Source</h3>
<div class="card" style="font-family:monospace;font-size:10px;color:var(--muted);word-break:break-all" id="panel-path">-</div>
</section>
</aside>
</div>
<script src="rendered.js"></script>
<script>
//
// Template registry — mirrors the Go build script definitions
//
const REGISTRY = {
activate: {name:'Activate Account', path:'mail/user/auth/activate.tmpl', desc:'Account activation — sent when a new user registers.'},
activate_email: {name:'Activate Email', path:'mail/user/auth/activate_email.tmpl', desc:'Email address verification — sent when adding or changing an email address.'},
register_notify: {name:'Register Notify', path:'mail/user/auth/register_notify.tmpl', desc:'Registration notification — confirms successful account registration.'},
reset_passwd: {name:'Reset Password', path:'mail/user/auth/reset_passwd.tmpl', desc:'Password reset — sent when user requests a password reset link.'},
team_invite: {name:'Team Invite', path:'mail/org/team_invite.tmpl', desc:'Team invitation — sent when a user is invited to join an organization team.'},
collaborator: {name:'Collaborator Added', path:'mail/repo/collaborator.tmpl', desc:'Collaborator added — sent when a user is added as a repository collaborator.'},
transfer: {name:'Repository Transfer', path:'mail/repo/transfer.tmpl', desc:'Repository transfer — sent when repository ownership is transferred.'},
release: {name:'New Release', path:'mail/repo/release.tmpl', desc:'New release — sent when a new release is published.'},
workflow_run: {name:'Workflow Run', path:'mail/repo/actions/workflow_run.tmpl', desc:'Workflow run — sent when a CI/CD workflow completes.'},
assigned: {name:'Issue Assigned', path:'mail/repo/issue/assigned.tmpl', desc:'Issue/PR assigned — sent when an issue or pull request is assigned.'},
default: {name:'Issue Update', path:'mail/repo/issue/default.tmpl', desc:'Issue/PR update — comments, mentions, reviews, merges, and other activity.'}
};
//
// Parameter definitions (informational only — rendering is done by Go)
//
const PARAMS = {
activate: {'DisplayName':'Alex Johnson','Code':'activation-code-abc123','ActiveCodeLives':'24 hours','AppName':'Gitea','AppUrl':'https://about.gitea.com'},
activate_email: {'DisplayName':'Alex Johnson','Code':'verify-code-xyz789','Email':'alex@example.com','ActiveCodeLives':'24 hours','AppName':'Gitea','AppUrl':'https://about.gitea.com'},
register_notify: {'DisplayName':'Alex Johnson','Username':'alexj','AppName':'Gitea','AppUrl':'https://about.gitea.com'},
reset_passwd: {'DisplayName':'Alex Johnson','Code':'reset-token-abc123','ResetPwdCodeLives':'3 hours','AppName':'Gitea','AppUrl':'https://about.gitea.com'},
team_invite: {'AppName':'Gitea','AppUrl':'https://about.gitea.com','Inviter.DisplayName':'Sarah Chen','Team.Name':'Core Developers','Organization.DisplayName':'Acme Corp','InviteURL':'...invite?token=abc','Invite.Email':'alex@example.com'},
collaborator: {'AppName':'Gitea','AppUrl':'https://about.gitea.com','Subject':'Collaborator Added','Link':'.../repo/project','RepoName':'acme/project'},
transfer: {'AppName':'Gitea','AppUrl':'https://about.gitea.com','Subject':'Repository Transfer','Link':'.../transferred-project','Repo':'acme/transferred-project'},
release: {'AppName':'Gitea','AppUrl':'https://about.gitea.com','Subject':'New Release v2.0.0','Link':'.../repo/project/releases/tag/v2.0.0','Release.Publisher.Name':'Sarah Chen','Release.TagName':'v2.0.0','Release.Title':'Version 2.0','Release.HTMLURL':'.../releases/tag/v2.0.0','Release.Repo.HTMLURL':'.../repo/project','Release.Repo.FullName':'acme/project','Release.RenderedNote':'<p>Major new features...</p>','DisableDownloadSourceArchives':'false','Release.Attachments':'[]'},
workflow_run: {'AppName':'Gitea','AppUrl':'https://about.gitea.com','Subject':'Workflow Run: CI','RunStatusText':'All jobs passed','Repo.FullName':'acme/project','Run.WorkflowID':'ci.yml','Run.HTMLURL':'.../actions/runs/42','Jobs':'[3 items]'},
assigned: {'AppName':'Gitea','AppUrl':'https://about.gitea.com','Subject':'Issue #42 Assigned','Link':'.../repo/project/issues/42','Doer.Name':'Sarah Chen','IsPull':'false','Issue.Index':'42','Issue.Repo.HTMLURL':'.../repo/project','Issue.Repo.FullName':'acme/project'},
default: {'AppName':'Gitea','AppUrl':'https://about.gitea.com','Subject':'Re: Issue #42','Link':'.../repo/project/issues/42','ActionName':'comment','Doer.Name':'Sarah Chen','Body':'This is a comment on the issue...','CanReply':'true','IsMention':'false','IsPull':'false','Issue.Index':'42','Issue.PullRequest.BaseBranch':'main','Comment.Commits':'[]','Comment.IsForcePush':'false','ReviewComments':'[]'}
};
//
// State
//
const state = { theme:'horizon', template:'activate', client:'modern', viewport:'desktop' };
let rendered = null; // loaded from rendered.js via <script> tag
//
// Client transforms
//
function transform(html, mode) {
if(mode==='modern') return html;
if(mode==='raw') {
const e = html.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
return '<!DOCTYPE html><html><head><style>body{background:#0d1117;color:#c9d1d9;font-family:Consolas,monospace;padding:16px;margin:0}pre{white-space:pre-wrap;word-break:break-all;font-size:11px;line-height:1.6;margin:0}</style></head><body><pre>'+e+'</pre></body></html>';
}
let out = html.replace(/<style[^>]*>[\s\S]*?<\/style>/gi, '');
if(mode==='gmail') {
out = out.replace(/font-family:'Poppins'/gi,'font-family:Arial,sans-serif');
out = out.replace(/font-family:'JetBrains Mono'/gi,'font-family:Consolas,monospace');
}
if(mode==='outlook') {
const strip=[/border-radius:[^;"']+/gi,/box-shadow:[^;"']+/gi,/linear-gradient\([^)]*\)/gi,/transition:[^;"']+/gi,/letter-spacing:[^;"']+/gi,/font-variant:small-caps/gi,/-webkit-background-clip:text/gi,/-webkit-text-fill-color:transparent/gi,/overflow:hidden/gi];
strip.forEach(r=>{out=out.replace(r,'')});
out=out.replace(/background:linear-gradient\([^)]*\)/gi,'background:#f0f0f0');
out=out.replace(/style="[^"]*"/g,m=>m.replace(/;\s*;/g,';'));
out=out.replace(/font-family:Georgia/gi,'font-family:Georgia,serif');
out=out.replace(/font-family:'Charter'/gi,'font-family:Georgia,serif');
}
return out;
}
//
// Render preview
//
function render() {
const frame = document.getElementById('preview-frame');
const loading = document.getElementById('loading');
if(!rendered) { loading.style.display='flex'; frame.style.display='none'; return; }
frame.style.display = 'none';
loading.style.display = 'flex';
const html = rendered[state.theme]?.[state.template];
const content = html ? transform(html, state.client) : '<p style="color:red;padding:20px">Not found: '+state.theme+'/'+state.template+'</p>';
frame.onload = function() {
loading.style.display = 'none';
frame.style.display = 'block';
frame.onload = null;
};
frame.srcdoc = content;
updatePanel();
}
//
// Panel updates
//
function updatePanel() {
const t = REGISTRY[state.template];
document.getElementById('panel-name').textContent = t.name;
document.getElementById('panel-desc').textContent = t.desc;
document.getElementById('panel-path').textContent = 'themes/'+state.theme+'/'+t.path;
const p = PARAMS[state.template];
let rows = '';
for(const [k,v] of Object.entries(p)){
const isReq = !k.includes('RenderedNote') && !k.includes('Attachments') && !k.includes('DisableDownload') && !k.includes('IsMention') && !k.includes('IsPull') && !k.includes('IsForcePush') && !k.includes('ReviewComments') && !k.includes('Commits') && !k.includes('BaseBranch');
rows += '<tr><td>.'+k+'</td><td>'+String(v)+'</td><td><span class="badge '+(isReq?'badge-req':'badge-opt')+'">'+(isReq?'required':'optional')+'</span></td></tr>';
}
document.getElementById('panel-params').innerHTML = rows;
// Client simulation indicators
const c=state.client,
on='<span class="dot d-on"></span>',off='<span class="dot d-off"></span>',warn='<span class="dot d-warn"></span>',
items=[
[c==='raw'?off:(c==='gmail'||c==='outlook'?warn:on),'CSS'],
[c==='raw'?off:(c==='outlook'?warn:on),'Web Fonts'],
[c==='modern'?on:off,'Border Radius'],
[c==='modern'?on:off,'Shadows'],
[c==='modern'?on:off,'Gradients']
];
document.getElementById('panel-indicators').innerHTML = items.map(([d,label])=>'<span>'+d+' '+label+'</span>').join('');
}
//
// Events
//
function switchTheme(v) { state.theme=v; render(); }
function switchTemplate(v) { state.template=v; render(); }
function switchClient(v) { state.client=v; render(); }
function setViewport(v) {
state.viewport=v;
document.getElementById('btn-desk').classList.toggle('on',v==='desktop');
document.getElementById('btn-mob').classList.toggle('on',v==='mobile');
document.getElementById('viewport').className=v;
render();
}
//
// Keyboard
//
document.addEventListener('keydown',e=>{
if(e.key==='d') setViewport('desktop');
if(e.key==='m') setViewport('mobile');
const keys=Object.keys(REGISTRY), idx=keys.indexOf(state.template);
if(e.key==='ArrowRight'&&idx<keys.length-1){switchTemplate(keys[idx+1]);document.getElementById('sel-template').value=keys[idx+1];}
if(e.key==='ArrowLeft'&&idx>0){switchTemplate(keys[idx-1]);document.getElementById('sel-template').value=keys[idx-1];}
});
//
// Init
//
(function(){
const sel=document.getElementById('sel-template');
for(const[id,t]of Object.entries(REGISTRY)){
const o=document.createElement('option');o.value=id;o.textContent=t.name;sel.appendChild(o);
}
if(window.__RENDERED__){
rendered=window.__RENDERED__;
document.getElementById('loading').style.display='none';
}else{
document.getElementById('loading').innerHTML='<span style="color:var(--red)">rendered.js not found</span><small style="color:var(--muted);margin-top:8px">Run: cd tools && go run build-preview.go</small>';
}
render();
})();
</script>
</body>
</html>
+50
View File
@@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{AppName}} - Team Invitation</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
@media only screen and (max-width:480px){
.resp-card{padding:32px 20px!important}
.resp-spacer{padding:24px 20px!important}
.resp-heading{font-size:20px!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
<!-- floating title -->
<tr><td style="padding:0 0 32px;text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
</td></tr>
<!-- card -->
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;">{{.locale.Tr "mail.hi_user_x" .Invite.Email}}</p>
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{.locale.Tr "mail.team_invite.text_1" (DotEscape .Inviter.DisplayName) (DotEscape .Team.Name) (DotEscape .Organization.DisplayName)}}</p>
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;">{{.locale.Tr "mail.team_invite.text_2"}}</p>
</td></tr>
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
<!-- button + link -->
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
<a href="{{.InviteURL}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">Accept Invitation</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{.InviteURL}}</p>
</td></tr></table>
</td></tr>
<!-- footer -->
<tr><td style="padding:32px 0 0;text-align:center;">
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">&copy; <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
@@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.Subject}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
@media only screen and (max-width:480px){
.resp-card{padding:32px 20px!important}
.resp-spacer{padding:24px 20px!important}
.resp-heading{font-size:20px!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
<!-- floating title -->
<tr><td style="padding:0 0 32px;text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
</td></tr>
<!-- card -->
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;"></p>
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;"><h2>{{.Repo.FullName}} - {{.Run.WorkflowID}}: {{.RunStatusText}}</h2><ul>{{range $job := .Jobs}}<li><a href="{{$job.HTMLURL}}">{{$job.Status}}: {{$job.Name}}{{if gt $job.Attempt 1}} (retry #{{$job.Attempt}}){{end}} - {{$job.Duration}}</a></li>{{end}}</ul></p>
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;"></p>
</td></tr>
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
<!-- button + link -->
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
<a href="{{.Run.HTMLURL}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{.Run.HTMLURL}}</p>
</td></tr></table>
</td></tr>
<!-- footer -->
<tr><td style="padding:32px 0 0;text-align:center;">
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">&copy; <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
+50
View File
@@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.Subject}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
@media only screen and (max-width:480px){
.resp-card{padding:32px 20px!important}
.resp-spacer{padding:24px 20px!important}
.resp-heading{font-size:20px!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
<!-- floating title -->
<tr><td style="padding:0 0 32px;text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
</td></tr>
<!-- card -->
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;"></p>
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{.locale.Tr "mail.repo.collaborator.added.text"}} <code>{{.RepoName}}</code>.</p>
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;"></p>
</td></tr>
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
<!-- button + link -->
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
<a href="{{.Link}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{.Link}}</p>
</td></tr></table>
</td></tr>
<!-- footer -->
<tr><td style="padding:32px 0 0;text-align:center;">
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">&copy; <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
@@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.Subject}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
@media only screen and (max-width:480px){
.resp-card{padding:32px 20px!important}
.resp-spacer{padding:24px 20px!important}
.resp-heading{font-size:20px!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
<!-- floating title -->
<tr><td style="padding:0 0 32px;text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
</td></tr>
<!-- card -->
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;"></p>
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{$repo_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Issue.Repo.HTMLURL .Issue.Repo.FullName}}{{$link := HTMLFormat "<a href=\047%s\047>#%d</a>" .Link .Issue.Index}}{{if .IsPull}}{{.locale.Tr "mail.issue_assigned.pull" .Doer.Name $link $repo_url}}{{else}}{{.locale.Tr "mail.issue_assigned.issue" .Doer.Name $link $repo_url}}{{end}}</p>
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;"></p>
</td></tr>
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
<!-- button + link -->
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
<a href="{{.Link}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{.Link}}</p>
</td></tr></table>
</td></tr>
<!-- footer -->
<tr><td style="padding:32px 0 0;text-align:center;">
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">&copy; <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
@@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.Subject}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
@media only screen and (max-width:480px){
.resp-card{padding:32px 20px!important}
.resp-spacer{padding:24px 20px!important}
.resp-heading{font-size:20px!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
<!-- floating title -->
<tr><td style="padding:0 0 32px;text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
</td></tr>
<!-- card -->
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;"></p>
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{if .IsMention}}<p>{{.locale.Tr "mail.issue.x_mentioned_you" .Doer.Name}}</p>{{end}}{{if eq .ActionName "push"}}<p>{{if .Comment.IsForcePush}}{{$oldCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.OldCommit}}{{$oldShortSha := ShortSha .Comment.OldCommit}}{{$oldCommitLink := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" $oldCommitUrl $oldShortSha}}{{$newCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.NewCommit}}{{$newShortSha := ShortSha .Comment.NewCommit}}{{$newCommitLink := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" $newCommitUrl $newShortSha}}{{.locale.Tr "mail.issue.action.force_push" .Doer.Name .Comment.Issue.PullRequest.HeadBranch $oldCommitLink $newCommitLink}}{{else}}{{.locale.TrN (len .Comment.Commits) "mail.issue.action.push_1" "mail.issue.action.push_n" .Doer.Name .Comment.Issue.PullRequest.HeadBranch (len .Comment.Commits)}}{{end}}</p>{{end}}<p>{{if eq .ActionName "close"}}{{.locale.Tr "mail.issue.action.close" .Doer.Name .Issue.Index}}{{else if eq .ActionName "reopen"}}{{.locale.Tr "mail.issue.action.reopen" .Doer.Name .Issue.Index}}{{else if eq .ActionName "merge"}}{{.locale.Tr "mail.issue.action.merge" .Doer.Name .Issue.Index .Issue.PullRequest.BaseBranch}}{{else if eq .ActionName "approve"}}{{.locale.Tr "mail.issue.action.approve" .Doer.Name}}{{else if eq .ActionName "reject"}}{{.locale.Tr "mail.issue.action.reject" .Doer.Name}}{{else if eq .ActionName "review"}}{{.locale.Tr "mail.issue.action.review" .Doer.Name}}{{else if eq .ActionName "review_dismissed"}}{{.locale.Tr "mail.issue.action.review_dismissed" .Doer.Name .Comment.Review.Reviewer.Name}}{{else if eq .ActionName "ready_for_review"}}{{.locale.Tr "mail.issue.action.ready_for_review" .Doer.Name}}{{end}}{{- if eq .Body ""}}{{if eq .ActionName "new"}}{{.locale.Tr "mail.issue.action.new" .Doer.Name .Issue.Index}}{{end}}{{else}}{{.Body}}{{end -}}</p>{{- range .ReviewComments}}<hr><p>{{$.locale.Tr "mail.issue.in_tree_path" .TreePath}}</p><pre>{{.Patch}}</pre><div>{{.RenderedContent}}</div>{{end -}}{{if eq .ActionName "push"}}<ul>{{range .Comment.Commits}}<li><a href="{{$.Comment.Issue.PullRequest.BaseRepo.HTMLURL}}/commit/{{.ID}}">{{ShortSha .ID.String}}</a> - {{.MessageTitle}}</li>{{end}}</ul>{{end}}</p>
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;"></p>
</td></tr>
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
<!-- button + link -->
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
<a href="{{.Link}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{.Link}}</p>
</td></tr></table>
</td></tr>
<!-- footer -->
<tr><td style="padding:32px 0 0;text-align:center;">
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">&copy; <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
+54
View File
@@ -0,0 +1,54 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.Subject}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
@media only screen and (max-width:480px){
.resp-card{padding:32px 20px!important}
.resp-spacer{padding:24px 20px!important}
.resp-heading{font-size:20px!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
<!-- floating title -->
<tr><td style="padding:0 0 32px;text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
</td></tr>
<!-- card -->
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;"></p>
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{$release_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Release.HTMLURL .Release.TagName}}{{$repo_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Release.Repo.HTMLURL .Release.Repo.FullName}}{{.locale.Tr "mail.release.new.text" .Release.Publisher.Name $release_url $repo_url}}
<h4>{{.locale.Tr "mail.release.title" .Release.Title}}</h4>
{{if .Release.RenderedNote}}<div>{{.Release.RenderedNote}}</div>{{end}}
<p>{{.locale.Tr "mail.release.downloads"}}</p>
<ul>{{if not .DisableDownloadSourceArchives}}<li><a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.zip">{{.locale.Tr "mail.release.download.zip"}}</a></li><li><a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.tar.gz">{{.locale.Tr "mail.release.download.targz"}}</a></li>{{end}}{{if .Release.Attachments}}{{range .Release.Attachments}}<li><a href="{{.DownloadURL}}">{{.Name}} ({{.Size | FileSize}})</a></li>{{end}}{{end}}</ul></p>
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;"></p>
</td></tr>
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
<!-- button + link -->
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
<a href="{{.Link}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{.Link}}</p>
</td></tr></table>
</td></tr>
<!-- footer -->
<tr><td style="padding:32px 0 0;text-align:center;">
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">&copy; <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
+50
View File
@@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.Subject}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
@media only screen and (max-width:480px){
.resp-card{padding:32px 20px!important}
.resp-spacer{padding:24px 20px!important}
.resp-heading{font-size:20px!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
<!-- floating title -->
<tr><td style="padding:0 0 32px;text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
</td></tr>
<!-- card -->
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;"></p>
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{$url := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" .Link .Repo}}{{.Subject}}. {{.locale.Tr "mail.repo.transfer.body" $url}}</p>
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;"></p>
</td></tr>
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
<!-- button + link -->
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
<a href="{{.Link}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{.Link}}</p>
</td></tr></table>
</td></tr>
<!-- footer -->
<tr><td style="padding:32px 0 0;text-align:center;">
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">&copy; <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
@@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.locale.Tr "mail.activate_account.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
@media only screen and (max-width:480px){
.resp-card{padding:32px 20px!important}
.resp-spacer{padding:24px 20px!important}
.resp-heading{font-size:20px!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
<!-- floating title -->
<tr><td style="padding:0 0 32px;text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
</td></tr>
<!-- card -->
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;">{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}</p>
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{.locale.Tr "mail.activate_account.text_1" (.DisplayName|DotEscape) AppName}}</p>
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;">{{.locale.Tr "mail.activate_account.text_2" .ActiveCodeLives}}</p>
</td></tr>
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
<!-- button + link -->
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
{{$activate_url := printf "%suser/activate?code=%s" AppUrl (QueryEscape .Code)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
<a href="{{$activate_url}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">Activate Account</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{$activate_url}}</p>
</td></tr></table>
</td></tr>
<!-- footer -->
<tr><td style="padding:32px 0 0;text-align:center;">
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">&copy; <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
@@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.locale.Tr "mail.activate_email.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
@media only screen and (max-width:480px){
.resp-card{padding:32px 20px!important}
.resp-spacer{padding:24px 20px!important}
.resp-heading{font-size:20px!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
<!-- floating title -->
<tr><td style="padding:0 0 32px;text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
</td></tr>
<!-- card -->
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;">{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}</p>
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{.locale.Tr "mail.activate_email.text" .ActiveCodeLives}}</p>
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;"></p>
</td></tr>
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
<!-- button + link -->
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
{{$activate_url := printf "%suser/activate_email?code=%s&email=%s" AppUrl (QueryEscape .Code) (QueryEscape .Email)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
<a href="{{$activate_url}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">Verify Email Address</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{$activate_url}}</p>
</td></tr></table>
</td></tr>
<!-- footer -->
<tr><td style="padding:32px 0 0;text-align:center;">
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">&copy; <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
@@ -0,0 +1,52 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.locale.Tr "mail.register_notify.title" (.DisplayName|DotEscape) AppName}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
@media only screen and (max-width:480px){
.resp-card{padding:32px 20px!important}
.resp-spacer{padding:24px 20px!important}
.resp-heading{font-size:20px!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
<!-- floating title -->
<tr><td style="padding:0 0 32px;text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
</td></tr>
<!-- card -->
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;">{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}</p>
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{.locale.Tr "mail.register_notify.text_1" AppName}}</p>
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;">{{.locale.Tr "mail.register_notify.text_2" .Username}}
{{$set_pwd_url := printf "%suser/forgot_password" AppUrl}}
{{.locale.Tr "mail.register_notify.text_3" $set_pwd_url}}</p>
</td></tr>
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
<!-- button + link -->
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
<a href="{{AppUrl}}user/login" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">Go to {{AppName}}</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{AppUrl}}user/login</p>
</td></tr></table>
</td></tr>
<!-- footer -->
<tr><td style="padding:32px 0 0;text-align:center;">
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">&copy; <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
@@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.locale.Tr "mail.reset_password.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
@media only screen and (max-width:480px){
.resp-card{padding:32px 20px!important}
.resp-spacer{padding:24px 20px!important}
.resp-heading{font-size:20px!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
<!-- floating title -->
<tr><td style="padding:0 0 32px;text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
</td></tr>
<!-- card -->
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;">{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}</p>
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{.locale.Tr "mail.reset_password.text" .ResetPwdCodeLives}}</p>
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;"></p>
</td></tr>
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
<!-- button + link -->
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
{{$recover_url := printf "%suser/recover_account?code=%s" AppUrl (QueryEscape .Code)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
<a href="{{$recover_url}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">Reset Password</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{$recover_url}}</p>
</td></tr></table>
</td></tr>
<!-- footer -->
<tr><td style="padding:32px 0 0;text-align:center;">
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">&copy; <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
+65
View File
@@ -0,0 +1,65 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{AppName}} &middot; Team Invitation</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
</style>
</head>
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#1e293b; font-weight:600;">
{{.locale.Tr "mail.hi_user_x" .Invite.Email}}
</p>
<p style="margin:0 0 8px; font-size:15px; line-height:1.6; color:#475569;">
{{.locale.Tr "mail.team_invite.text_1" (DotEscape .Inviter.DisplayName) (DotEscape .Team.Name) (DotEscape .Organization.DisplayName)}}
</p>
<p style="margin:0 0 20px; font-size:14px; line-height:1.6; color:#64748b;">
{{.locale.Tr "mail.team_invite.text_2"}}
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
<a href="{{.InviteURL}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">Accept Invitation</a>
</td>
</tr>
</table>
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
{{.InviteURL}}
</p>
</div>
<p style="margin:16px 0 0; font-size:13px; color:#64748b; line-height:1.5;">
{{.locale.Tr "mail.team_invite.text_3" .Invite.Email}}
</p>
</div>
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
<p style="margin:0; font-size:13px; color:#94a3b8;">
&copy; <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
</p>
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,65 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
</style>
</head>
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
<h2 style="font-size:17px; font-weight:600; color:#1e293b; margin:0 0 16px;">
{{.Repo.FullName}} &mdash; {{.Run.WorkflowID}}: {{.RunStatusText}}
</h2>
<ul style="list-style:none; padding:0; margin:0 0 24px 0;">
{{range $job := .Jobs}}
<li style="background:linear-gradient(135deg,#f8faff,#f4f7fe); border:1px solid rgba(0,0,0,0.06); border-radius:10px; padding:12px 16px; margin-bottom:8px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.7);">
<a href="{{$job.HTMLURL}}" style="color:#3b82f6; text-decoration:none; font-weight:500; font-size:14px; display:block;">
{{$job.Status}}: {{$job.Name}}{{if gt $job.Attempt 1}} (retry #{{$job.Attempt}}){{end}} &mdash; {{$job.Duration}}
</a>
</li>
{{end}}
</ul>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:16px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
<a href="{{.Run.HTMLURL}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
{{.Run.HTMLURL}}
</p>
</div>
</div>
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
<p style="margin:0; font-size:13px; color:#94a3b8;">
&copy; <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
</p>
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
</div>
</div>
</center>
</body>
</html>
+56
View File
@@ -0,0 +1,56 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
code { background: #eff4fd; padding: 2px 8px; border-radius: 5px; font-size: 14px; color: #3b82f6; font-weight: 500; border: 1px solid rgba(59,130,246,0.12); }
</style>
</head>
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
<p style="margin:0 0 20px; font-size:15px; line-height:1.6; color:#475569;">
{{.locale.Tr "mail.repo.collaborator.added.text"}} <code>{{.RepoName}}</code>.
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
{{.Link}}
</p>
</div>
</div>
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
<p style="margin:0; font-size:13px; color:#94a3b8;">
&copy; <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
</p>
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
</style>
</head>
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
{{$repo_url := HTMLFormat "<a href='%s' style='color:#3b82f6; text-decoration:none; font-weight:500;'>%s</a>" .Issue.Repo.HTMLURL .Issue.Repo.FullName}}
{{$link := HTMLFormat "<a href='%s' style='color:#3b82f6; text-decoration:none; font-weight:500;'>#%d</a>" .Link .Issue.Index}}
<p style="margin:0 0 20px; font-size:15px; line-height:1.6; color:#475569;">
{{if .IsPull}}
{{.locale.Tr "mail.issue_assigned.pull" .Doer.Name $link $repo_url}}
{{else}}
{{.locale.Tr "mail.issue_assigned.issue" .Doer.Name $link $repo_url}}
{{end}}
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
{{.Link}}
</p>
</div>
</div>
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
<p style="margin:0; font-size:13px; color:#94a3b8;">
&copy; <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
</p>
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
</div>
</div>
</center>
</body>
</html>
+121
View File
@@ -0,0 +1,121 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
blockquote { padding-left: 1em; margin: 1em 0; border-left: 2px solid #dbeafe; color: #64748b; }
pre { background: #eff4fd; padding: 12px; border-radius: 8px; overflow-x: auto; font-size: 13px; line-height: 1.5; border: 1px solid rgba(0,0,0,0.06); }
hr { border: none; border-top: 1px solid rgba(0,0,0,0.06); margin: 20px 0; }
</style>
</head>
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
{{if .IsMention}}<p style="margin:0 0 16px; font-size:15px; line-height:1.6; color:#475569;">{{.locale.Tr "mail.issue.x_mentioned_you" .Doer.Name}}</p>{{end}}
{{if eq .ActionName "push"}}
<p style="margin:0 0 16px; font-size:15px; line-height:1.6; color:#475569;">
{{if .Comment.IsForcePush}}
{{$oldCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.OldCommit}}
{{$oldShortSha := ShortSha .Comment.OldCommit}}
{{$oldCommitLink := HTMLFormat "<a href='%[1]s' style='color:#3b82f6; text-decoration:none; font-weight:500;'>%[2]s</a>" $oldCommitUrl $oldShortSha}}
{{$newCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.NewCommit}}
{{$newShortSha := ShortSha .Comment.NewCommit}}
{{$newCommitLink := HTMLFormat "<a href='%[1]s' style='color:#3b82f6; text-decoration:none; font-weight:500;'>%[2]s</a>" $newCommitUrl $newShortSha}}
{{.locale.Tr "mail.issue.action.force_push" .Doer.Name .Comment.Issue.PullRequest.HeadBranch $oldCommitLink $newCommitLink}}
{{else}}
{{.locale.TrN (len .Comment.Commits) "mail.issue.action.push_1" "mail.issue.action.push_n" .Doer.Name .Comment.Issue.PullRequest.HeadBranch (len .Comment.Commits)}}
{{end}}
</p>
{{end}}
<p style="margin:0 0 16px; font-size:15px; line-height:1.6; color:#475569;">
{{if eq .ActionName "close"}}
{{.locale.Tr "mail.issue.action.close" .Doer.Name .Issue.Index}}
{{else if eq .ActionName "reopen"}}
{{.locale.Tr "mail.issue.action.reopen" .Doer.Name .Issue.Index}}
{{else if eq .ActionName "merge"}}
{{.locale.Tr "mail.issue.action.merge" .Doer.Name .Issue.Index .Issue.PullRequest.BaseBranch}}
{{else if eq .ActionName "approve"}}
{{.locale.Tr "mail.issue.action.approve" .Doer.Name}}
{{else if eq .ActionName "reject"}}
{{.locale.Tr "mail.issue.action.reject" .Doer.Name}}
{{else if eq .ActionName "review"}}
{{.locale.Tr "mail.issue.action.review" .Doer.Name}}
{{else if eq .ActionName "review_dismissed"}}
{{.locale.Tr "mail.issue.action.review_dismissed" .Doer.Name .Comment.Review.Reviewer.Name}}
{{else if eq .ActionName "ready_for_review"}}
{{.locale.Tr "mail.issue.action.ready_for_review" .Doer.Name}}
{{end}}
{{- if eq .Body ""}}
{{if eq .ActionName "new"}}
{{.locale.Tr "mail.issue.action.new" .Doer.Name .Issue.Index}}
{{end}}
{{else}}
{{.Body}}
{{end -}}
</p>
{{- range .ReviewComments}}
<hr>
<p style="margin:8px 0; font-size:13px; color:#64748b;">{{$.locale.Tr "mail.issue.in_tree_path" .TreePath}}</p>
<div style="padding-left: 1em; margin: 1em 0;">
<pre>{{.Patch}}</pre>
<div style="margin-top:8px; font-size:14px; line-height:1.6;">{{.RenderedContent}}</div>
</div>
{{end -}}
{{if eq .ActionName "push"}}
<ul style="margin:16px 0; padding-left:20px;">
{{range .Comment.Commits}}
<li style="margin-bottom:6px; font-size:14px;">
<a href="{{$.Comment.Issue.PullRequest.BaseRepo.HTMLURL}}/commit/{{.ID}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">
{{ShortSha .ID.String}}
</a> &mdash; {{.MessageTitle}}
</li>
{{end}}
</ul>
{{end}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
{{.Link}}
</p>
</div>
</div>
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
<p style="margin:0; font-size:13px; color:#94a3b8;">
&copy; <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
</p>
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
</div>
</div>
</center>
</body>
</html>
+87
View File
@@ -0,0 +1,87 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
blockquote { padding-left: 1em; margin: 1em 0; border-left: 2px solid #dbeafe; color: #64748b; }
ul { margin: 12px 0 16px; padding-left: 20px; }
li { margin-bottom: 6px; font-size: 14px; line-height: 1.5; color: #475569; }
</style>
</head>
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
{{$release_url := HTMLFormat "<a href='%s' style='color:#3b82f6; text-decoration:none; font-weight:500;'>%s</a>" .Release.HTMLURL .Release.TagName}}
{{$repo_url := HTMLFormat "<a href='%s' style='color:#3b82f6; text-decoration:none; font-weight:500;'>%s</a>" .Release.Repo.HTMLURL .Release.Repo.FullName}}
<p style="margin:0 0 16px; font-size:15px; line-height:1.6; color:#475569;">
{{.locale.Tr "mail.release.new.text" .Release.Publisher.Name $release_url $repo_url}}
</p>
<h4 style="margin:20px 0 8px; font-size:17px; font-weight:600; color:#1e293b;">{{.locale.Tr "mail.release.title" .Release.Title}}</h4>
{{if .Release.RenderedNote}}
<div style="margin:12px 0 16px; font-size:14px; line-height:1.6; color:#475569;">
{{.Release.RenderedNote}}
</div>
{{end}}
<p style="margin:20px 0 8px; font-weight:600; color:#1e293b;">{{.locale.Tr "mail.release.downloads"}}</p>
<ul style="margin:0 0 20px; padding-left:20px;">
{{if not .DisableDownloadSourceArchives}}
<li>
<a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.zip" rel="nofollow" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{.locale.Tr "mail.release.download.zip"}}</a>
</li>
<li>
<a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.tar.gz" rel="nofollow" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{.locale.Tr "mail.release.download.targz"}}</a>
</li>
{{end}}
{{if .Release.Attachments}}
{{range .Release.Attachments}}
<li>
<a href="{{.DownloadURL}}" target="_blank" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{.Name}} ({{.Size | FileSize}})</a>
</li>
{{end}}
{{end}}
</ul>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:16px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
{{.Link}}
</p>
</div>
</div>
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
<p style="margin:0; font-size:13px; color:#94a3b8;">
&copy; <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
</p>
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
</div>
</div>
</center>
</body>
</html>
+56
View File
@@ -0,0 +1,56 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
</style>
</head>
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
{{$url := HTMLFormat "<a href='%[1]s' style='color:#3b82f6; text-decoration:none; font-weight:500;'>%[2]s</a>" .Link .Repo}}
<p style="margin:0 0 20px; font-size:15px; line-height:1.6; color:#475569;">
{{.Subject}}. {{.locale.Tr "mail.repo.transfer.body" $url}}
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
{{.Link}}
</p>
</div>
</div>
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
<p style="margin:0; font-size:13px; color:#94a3b8;">
&copy; <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
</p>
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
</div>
</div>
</center>
</body>
</html>
+62
View File
@@ -0,0 +1,62 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.locale.Tr "mail.activate_account.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
</style>
</head>
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#1e293b; font-weight:600;">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 8px; font-size:15px; line-height:1.6; color:#475569;">
{{.locale.Tr "mail.activate_account.text_1" (.DisplayName|DotEscape) AppName}}
</p>
<p style="margin:0 0 20px; font-size:14px; line-height:1.6; color:#64748b;">
{{.locale.Tr "mail.activate_account.text_2" .ActiveCodeLives}}
</p>
{{$activate_url := printf "%suser/activate?code=%s" AppUrl (QueryEscape .Code)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
<a href="{{$activate_url}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">Activate Account</a>
</td>
</tr>
</table>
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
{{$activate_url}}
</p>
</div>
</div>
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
<p style="margin:0; font-size:13px; color:#94a3b8;">
&copy; <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
</p>
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,59 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.locale.Tr "mail.activate_email.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
</style>
</head>
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#1e293b; font-weight:600;">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 20px; font-size:15px; line-height:1.6; color:#475569;">
{{.locale.Tr "mail.activate_email.text" .ActiveCodeLives}}
</p>
{{$activate_url := printf "%suser/activate_email?code=%s&email=%s" AppUrl (QueryEscape .Code) (QueryEscape .Email)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
<a href="{{$activate_url}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">Verify Email Address</a>
</td>
</tr>
</table>
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
{{$activate_url}}
</p>
</div>
</div>
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
<p style="margin:0; font-size:13px; color:#94a3b8;">
&copy; <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
</p>
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,66 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.locale.Tr "mail.register_notify.title" (.DisplayName|DotEscape) AppName}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
</style>
</head>
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#1e293b; font-weight:600;">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 8px; font-size:15px; line-height:1.6; color:#475569;">
{{.locale.Tr "mail.register_notify.text_1" AppName}}
</p>
<p style="margin:0 0 20px; font-size:14px; line-height:1.6; color:#64748b;">
{{.locale.Tr "mail.register_notify.text_2" .Username}}
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
<a href="{{AppUrl}}user/login" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">Go to {{AppName}}</a>
</td>
</tr>
</table>
{{$set_pwd_url := printf "%suser/forgot_password" AppUrl}}
<p style="margin:0 0 16px; font-size:14px; line-height:1.6; color:#64748b;">
{{.locale.Tr "mail.register_notify.text_3" $set_pwd_url}}
</p>
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
{{AppUrl}}user/login
</p>
</div>
</div>
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
<p style="margin:0; font-size:13px; color:#94a3b8;">
&copy; <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
</p>
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,59 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.locale.Tr "mail.reset_password.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
</style>
</head>
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#1e293b; font-weight:600;">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 20px; font-size:15px; line-height:1.6; color:#475569;">
{{.locale.Tr "mail.reset_password.text" .ResetPwdCodeLives}}
</p>
{{$recover_url := printf "%suser/recover_account?code=%s" AppUrl (QueryEscape .Code)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
<a href="{{$recover_url}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">Reset Password</a>
</td>
</tr>
</table>
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
{{$recover_url}}
</p>
</div>
</div>
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
<p style="margin:0; font-size:13px; color:#94a3b8;">
&copy; <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
</p>
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
</div>
</div>
</center>
</body>
</html>
+74
View File
@@ -0,0 +1,74 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{AppName}} &middot; Team Invitation</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<span style="font-size:15px;">&#x1f44b;</span>
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#78350f;">
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#9a3412; font-family:Georgia,'Times New Roman',serif; font-weight:600;">
{{.locale.Tr "mail.hi_user_x" .Invite.Email}}
</p>
<p style="margin:0 0 8px; font-size:16px; line-height:1.6; color:#78350f;">
{{.locale.Tr "mail.team_invite.text_1" (DotEscape .Inviter.DisplayName) (DotEscape .Team.Name) (DotEscape .Organization.DisplayName)}}
</p>
<p style="margin:0 0 20px; font-size:15px; line-height:1.6; color:#92400e;">
{{.locale.Tr "mail.team_invite.text_2"}}
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{.InviteURL}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">Join the Team &#x1f91d;</a>
</td>
</tr>
</table>
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
{{.InviteURL}}
</p>
</div>
<p style="margin:16px 0 0; font-size:14px; color:#92400e; line-height:1.5;">
{{.locale.Tr "mail.team_invite.text_3" .Invite.Email}}
</p>
</div>
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
<p style="margin:0; font-size:14px; color:#92400e;">
&copy; <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with &#x2764;&#xfe0f; by the community, for the community.</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,72 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<span style="font-size:15px;">&#x1f44b;</span>
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#78350f;">
<h2 style="font-size:19px; font-weight:700; color:#9a3412; margin:0 0 16px; font-family:Georgia,'Times New Roman',serif;">
{{.Repo.FullName}} &mdash; {{.Run.WorkflowID}}: {{.RunStatusText}}
</h2>
<ul style="list-style: none; padding: 0; margin: 0 0 24px 0;">
{{range $job := .Jobs}}
<li style="background-color: #fff7ed; border: 1px solid #fed7aa; border-radius: 10px; padding: 12px 16px; margin-bottom: 8px;">
<a href="{{$job.HTMLURL}}" style="color:#c2410c; text-decoration:none; font-weight:600; font-size:15px; display:block;">
{{$job.Status}}: {{$job.Name}}{{if gt $job.Attempt 1}} (retry #{{$job.Attempt}}){{end}} &mdash; {{$job.Duration}}
</a>
</li>
{{end}}
</ul>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:16px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{.Run.HTMLURL}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">View Workflow Run &#x2699;&#xfe0f;</a>
</td>
</tr>
</table>
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
{{.Run.HTMLURL}}
</p>
</div>
</div>
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
<p style="margin:0; font-size:14px; color:#92400e;">
&copy; <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with &#x2764;&#xfe0f; by the community, for the community.</p>
</div>
</div>
</center>
</body>
</html>
+63
View File
@@ -0,0 +1,63 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
code { background: #fff7ed; padding: 2px 8px; border-radius: 6px; font-size: 15px; color: #c2410c; font-weight: 600; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<span style="font-size:15px;">&#x1f44b;</span>
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#78350f;">
<p style="margin:0 0 20px; font-size:16px; line-height:1.6; color:#78350f;">
{{.locale.Tr "mail.repo.collaborator.added.text"}} <code>{{.RepoName}}</code>.
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">View Repository &#x1f50d;</a>
</td>
</tr>
</table>
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
{{.Link}}
</p>
</div>
</div>
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
<p style="margin:0; font-size:14px; color:#92400e;">
&copy; <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with &#x2764;&#xfe0f; by the community, for the community.</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,68 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<span style="font-size:15px;">&#x1f44b;</span>
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#78350f;">
{{$repo_url := HTMLFormat "<a href='%s' style='color:#ea580c; text-decoration:none; font-weight:600;'>%s</a>" .Issue.Repo.HTMLURL .Issue.Repo.FullName}}
{{$link := HTMLFormat "<a href='%s' style='color:#ea580c; text-decoration:none; font-weight:600;'>#%d</a>" .Link .Issue.Index}}
<p style="margin:0 0 20px; font-size:16px; line-height:1.6; color:#78350f;">
{{if .IsPull}}
{{.locale.Tr "mail.issue_assigned.pull" .Doer.Name $link $repo_url}}
{{else}}
{{.locale.Tr "mail.issue_assigned.issue" .Doer.Name $link $repo_url}}
{{end}}
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">View on {{AppName}} &#x2197;&#xfe0f;</a>
</td>
</tr>
</table>
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
{{.Link}}
</p>
</div>
</div>
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
<p style="margin:0; font-size:14px; color:#92400e;">
&copy; <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with &#x2764;&#xfe0f; by the community, for the community.</p>
</div>
</div>
</center>
</body>
</html>
+128
View File
@@ -0,0 +1,128 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
blockquote { padding-left: 1em; margin: 1em 0; border-left: 3px solid #fdba74; color: #92400e; }
pre { background: #fff7ed; padding: 12px; border-radius: 8px; overflow-x: auto; font-size: 14px; line-height: 1.5; border: 1px solid #fed7aa; }
hr { border: none; border-top: 1px solid #fed7aa; margin: 20px 0; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<span style="font-size:15px;">&#x1f44b;</span>
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#78350f;">
{{if .IsMention}}<p style="margin:0 0 16px; font-size:16px; line-height:1.6; color:#78350f;">{{.locale.Tr "mail.issue.x_mentioned_you" .Doer.Name}}</p>{{end}}
{{if eq .ActionName "push"}}
<p style="margin:0 0 16px; font-size:16px; line-height:1.6; color:#78350f;">
{{if .Comment.IsForcePush}}
{{$oldCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.OldCommit}}
{{$oldShortSha := ShortSha .Comment.OldCommit}}
{{$oldCommitLink := HTMLFormat "<a href='%[1]s' style='color:#ea580c; text-decoration:none; font-weight:600;'>%[2]s</a>" $oldCommitUrl $oldShortSha}}
{{$newCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.NewCommit}}
{{$newShortSha := ShortSha .Comment.NewCommit}}
{{$newCommitLink := HTMLFormat "<a href='%[1]s' style='color:#ea580c; text-decoration:none; font-weight:600;'>%[2]s</a>" $newCommitUrl $newShortSha}}
{{.locale.Tr "mail.issue.action.force_push" .Doer.Name .Comment.Issue.PullRequest.HeadBranch $oldCommitLink $newCommitLink}}
{{else}}
{{.locale.TrN (len .Comment.Commits) "mail.issue.action.push_1" "mail.issue.action.push_n" .Doer.Name .Comment.Issue.PullRequest.HeadBranch (len .Comment.Commits)}}
{{end}}
</p>
{{end}}
<p style="margin:0 0 16px; font-size:16px; line-height:1.6; color:#78350f;">
{{if eq .ActionName "close"}}
{{.locale.Tr "mail.issue.action.close" .Doer.Name .Issue.Index}}
{{else if eq .ActionName "reopen"}}
{{.locale.Tr "mail.issue.action.reopen" .Doer.Name .Issue.Index}}
{{else if eq .ActionName "merge"}}
{{.locale.Tr "mail.issue.action.merge" .Doer.Name .Issue.Index .Issue.PullRequest.BaseBranch}}
{{else if eq .ActionName "approve"}}
{{.locale.Tr "mail.issue.action.approve" .Doer.Name}}
{{else if eq .ActionName "reject"}}
{{.locale.Tr "mail.issue.action.reject" .Doer.Name}}
{{else if eq .ActionName "review"}}
{{.locale.Tr "mail.issue.action.review" .Doer.Name}}
{{else if eq .ActionName "review_dismissed"}}
{{.locale.Tr "mail.issue.action.review_dismissed" .Doer.Name .Comment.Review.Reviewer.Name}}
{{else if eq .ActionName "ready_for_review"}}
{{.locale.Tr "mail.issue.action.ready_for_review" .Doer.Name}}
{{end}}
{{- if eq .Body ""}}
{{if eq .ActionName "new"}}
{{.locale.Tr "mail.issue.action.new" .Doer.Name .Issue.Index}}
{{end}}
{{else}}
{{.Body}}
{{end -}}
</p>
{{- range .ReviewComments}}
<hr>
<p style="margin:8px 0; font-size:14px; color:#92400e;">{{$.locale.Tr "mail.issue.in_tree_path" .TreePath}}</p>
<div style="padding-left: 1em; margin: 1em 0;">
<pre>{{.Patch}}</pre>
<div style="margin-top:8px; font-size:15px; line-height:1.6;">{{.RenderedContent}}</div>
</div>
{{end -}}
{{if eq .ActionName "push"}}
<ul style="margin:16px 0; padding-left:20px;">
{{range .Comment.Commits}}
<li style="margin-bottom:6px; font-size:15px;">
<a href="{{$.Comment.Issue.PullRequest.BaseRepo.HTMLURL}}/commit/{{.ID}}" style="color:#ea580c; text-decoration:none; font-weight:600;">
{{ShortSha .ID.String}}
</a> &mdash; {{.MessageTitle}}
</li>
{{end}}
</ul>
{{end}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">View on {{AppName}} &#x2197;&#xfe0f;</a>
</td>
</tr>
</table>
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
{{.Link}}
</p>
</div>
</div>
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
<p style="margin:0; font-size:14px; color:#92400e;">
&copy; <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with &#x2764;&#xfe0f; by the community, for the community.</p>
</div>
</div>
</center>
</body>
</html>
+94
View File
@@ -0,0 +1,94 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
blockquote { padding-left: 1em; margin: 1em 0; border-left: 3px solid #fdba74; color: #92400e; }
ul { margin: 12px 0 16px; padding-left: 20px; }
li { margin-bottom: 8px; font-size: 15px; line-height: 1.5; color: #78350f; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<span style="font-size:15px;">&#x1f44b;</span>
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#78350f;">
{{$release_url := HTMLFormat "<a href='%s' style='color:#ea580c; text-decoration:none; font-weight:600;'>%s</a>" .Release.HTMLURL .Release.TagName}}
{{$repo_url := HTMLFormat "<a href='%s' style='color:#ea580c; text-decoration:none; font-weight:600;'>%s</a>" .Release.Repo.HTMLURL .Release.Repo.FullName}}
<p style="margin:0 0 16px; font-size:16px; line-height:1.6; color:#78350f;">
{{.locale.Tr "mail.release.new.text" .Release.Publisher.Name $release_url $repo_url}}
</p>
<h4 style="margin:20px 0 8px; font-size:19px; font-weight:700; color:#9a3412; font-family:Georgia,'Times New Roman',serif;">{{.locale.Tr "mail.release.title" .Release.Title}}</h4>
{{if .Release.RenderedNote}}
<div style="margin:12px 0 16px; font-size:15px; line-height:1.6; color:#78350f;">
{{.Release.RenderedNote}}
</div>
{{end}}
<p style="margin:20px 0 8px; font-weight:600; color:#9a3412;">{{.locale.Tr "mail.release.downloads"}}</p>
<ul style="margin:0 0 20px; padding-left:20px;">
{{if not .DisableDownloadSourceArchives}}
<li>
<a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.zip" rel="nofollow" style="color:#ea580c; text-decoration:none; font-weight:600;">{{.locale.Tr "mail.release.download.zip"}}</a>
</li>
<li>
<a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.tar.gz" rel="nofollow" style="color:#ea580c; text-decoration:none; font-weight:600;">{{.locale.Tr "mail.release.download.targz"}}</a>
</li>
{{end}}
{{if .Release.Attachments}}
{{range .Release.Attachments}}
<li>
<a href="{{.DownloadURL}}" target="_blank" style="color:#ea580c; text-decoration:none; font-weight:600;">{{.Name}} ({{.Size | FileSize}})</a>
</li>
{{end}}
{{end}}
</ul>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:16px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">See the Release &#x1f680;</a>
</td>
</tr>
</table>
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
{{.Link}}
</p>
</div>
</div>
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
<p style="margin:0; font-size:14px; color:#92400e;">
&copy; <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with &#x2764;&#xfe0f; by the community, for the community.</p>
</div>
</div>
</center>
</body>
</html>
+63
View File
@@ -0,0 +1,63 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<span style="font-size:15px;">&#x1f44b;</span>
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#78350f;">
{{$url := HTMLFormat "<a href='%[1]s' style='color:#ea580c; text-decoration:none; font-weight:600;'>%[2]s</a>" .Link .Repo}}
<p style="margin:0 0 20px; font-size:16px; line-height:1.6; color:#78350f;">
{{.Subject}}. {{.locale.Tr "mail.repo.transfer.body" $url}}
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">View Transfer &#x1f4e6;</a>
</td>
</tr>
</table>
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
{{.Link}}
</p>
</div>
</div>
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
<p style="margin:0; font-size:14px; color:#92400e;">
&copy; <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with &#x2764;&#xfe0f; by the community, for the community.</p>
</div>
</div>
</center>
</body>
</html>
+69
View File
@@ -0,0 +1,69 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.locale.Tr "mail.activate_account.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<span style="font-size:15px;">&#x1f44b;</span>
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#78350f;">
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#9a3412; font-family:Georgia,'Times New Roman',serif; font-weight:600;">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 8px; font-size:16px; line-height:1.6; color:#78350f;">
{{.locale.Tr "mail.activate_account.text_1" (.DisplayName|DotEscape) AppName}}
</p>
<p style="margin:0 0 20px; font-size:15px; line-height:1.6; color:#92400e;">
{{.locale.Tr "mail.activate_account.text_2" .ActiveCodeLives}}
</p>
{{$activate_url := printf "%suser/activate?code=%s" AppUrl (QueryEscape .Code)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{$activate_url}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">Activate Your Account &#x2192;</a>
</td>
</tr>
</table>
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
{{$activate_url}}
</p>
</div>
</div>
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
<p style="margin:0; font-size:14px; color:#92400e;">
&copy; <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with &#x2764;&#xfe0f; by the community, for the community.</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,66 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.locale.Tr "mail.activate_email.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<span style="font-size:15px;">&#x1f44b;</span>
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#78350f;">
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#9a3412; font-family:Georgia,'Times New Roman',serif; font-weight:600;">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 20px; font-size:16px; line-height:1.6; color:#78350f;">
{{.locale.Tr "mail.activate_email.text" .ActiveCodeLives}}
</p>
{{$activate_url := printf "%suser/activate_email?code=%s&email=%s" AppUrl (QueryEscape .Code) (QueryEscape .Email)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{$activate_url}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">Verify Your Email &#x2192;</a>
</td>
</tr>
</table>
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
{{$activate_url}}
</p>
</div>
</div>
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
<p style="margin:0; font-size:14px; color:#92400e;">
&copy; <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with &#x2764;&#xfe0f; by the community, for the community.</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.locale.Tr "mail.register_notify.title" (.DisplayName|DotEscape) AppName}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<span style="font-size:15px;">&#x1f44b;</span>
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#78350f;">
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#9a3412; font-family:Georgia,'Times New Roman',serif; font-weight:600;">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 8px; font-size:16px; line-height:1.6; color:#78350f;">
{{.locale.Tr "mail.register_notify.text_1" AppName}}
</p>
<p style="margin:0 0 20px; font-size:15px; line-height:1.6; color:#92400e;">
{{.locale.Tr "mail.register_notify.text_2" .Username}}
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{AppUrl}}user/login" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">Welcome to {{AppName}} &#x1f389;</a>
</td>
</tr>
</table>
{{$set_pwd_url := printf "%suser/forgot_password" AppUrl}}
<p style="margin:0 0 16px; font-size:15px; line-height:1.6; color:#92400e;">
{{.locale.Tr "mail.register_notify.text_3" $set_pwd_url}}
</p>
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
{{AppUrl}}user/login
</p>
</div>
</div>
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
<p style="margin:0; font-size:14px; color:#92400e;">
&copy; <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with &#x2764;&#xfe0f; by the community, for the community.</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,66 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.locale.Tr "mail.reset_password.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<span style="font-size:15px;">&#x1f44b;</span>
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#78350f;">
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#9a3412; font-family:Georgia,'Times New Roman',serif; font-weight:600;">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 20px; font-size:16px; line-height:1.6; color:#78350f;">
{{.locale.Tr "mail.reset_password.text" .ResetPwdCodeLives}}
</p>
{{$recover_url := printf "%suser/recover_account?code=%s" AppUrl (QueryEscape .Code)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{$recover_url}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">Reset Your Password &#x1f512;</a>
</td>
</tr>
</table>
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
{{$recover_url}}
</p>
</div>
</div>
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
<p style="margin:0; font-size:14px; color:#92400e;">
&copy; <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with &#x2764;&#xfe0f; by the community, for the community.</p>
</div>
</div>
</center>
</body>
</html>
+67
View File
@@ -0,0 +1,67 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{AppName}} &middot; Team Invitation</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
</div>
<div style="padding:32px 36px 24px; color:#2c1810;">
<p style="margin:0 0 14px; font-size:17px; line-height:1.5; color:#1e3a5f; font-weight:600; font-family:Georgia,'Times New Roman',serif;">
{{.locale.Tr "mail.hi_user_x" .Invite.Email}}
</p>
<p style="margin:0 0 8px; font-size:16px; line-height:1.7; color:#2c1810;">
{{.locale.Tr "mail.team_invite.text_1" (DotEscape .Inviter.DisplayName) (DotEscape .Team.Name) (DotEscape .Organization.DisplayName)}}
</p>
<p style="margin:0 0 20px; font-size:15px; line-height:1.7; color:#5c4a3a;">
{{.locale.Tr "mail.team_invite.text_2"}}
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{.InviteURL}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Accept Invitation &#x2192;</a>
</td>
</tr>
</table>
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
{{.InviteURL}}
</p>
</div>
<p style="margin:16px 0 0; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
{{.locale.Tr "mail.team_invite.text_3" .Invite.Email}}
</p>
</div>
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
<p style="margin:0; font-size:13px; color:#5c4a3a;">
&copy; <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established &middot; Trusted &middot; Open</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,65 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
</div>
<div style="padding:32px 36px 24px; color:#2c1810;">
<h2 style="font-size:19px; font-weight:700; color:#1e3a5f; margin:0 0 16px; font-family:Georgia,'Times New Roman',serif;">
{{.Repo.FullName}} &mdash; {{.Run.WorkflowID}}: {{.RunStatusText}}
</h2>
<ul style="list-style: none; padding: 0; margin: 0 0 24px 0;">
{{range $job := .Jobs}}
<li style="background-color: #faf8f5; border: 1px solid #d4c4a8; padding: 12px 16px; margin-bottom: 8px;">
<a href="{{$job.HTMLURL}}" style="color:#1e3a5f; text-decoration:none; font-weight:600; font-size:15px; display:block; border-bottom:1px dotted #8b6914;">
{{$job.Status}}: {{$job.Name}}{{if gt $job.Attempt 1}} (retry #{{$job.Attempt}}){{end}} &mdash; {{$job.Duration}}
</a>
</li>
{{end}}
</ul>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:16px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{.Run.HTMLURL}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">View Workflow Run &#x2192;</a>
</td>
</tr>
</table>
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
{{.Run.HTMLURL}}
</p>
</div>
</div>
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
<p style="margin:0; font-size:13px; color:#5c4a3a;">
&copy; <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established &middot; Trusted &middot; Open</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,56 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
code { background: #faf8f5; padding: 2px 8px; border: 1px solid #d4c4a8; font-size: 15px; color: #1e3a5f; font-weight: 600; font-family: 'Courier New', monospace; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
</div>
<div style="padding:32px 36px 24px; color:#2c1810;">
<p style="margin:0 0 20px; font-size:16px; line-height:1.7; color:#2c1810;">
{{.locale.Tr "mail.repo.collaborator.added.text"}} <code>{{.RepoName}}</code>.
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{.Link}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">View Repository &#x2192;</a>
</td>
</tr>
</table>
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
{{.Link}}
</p>
</div>
</div>
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
<p style="margin:0; font-size:13px; color:#5c4a3a;">
&copy; <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established &middot; Trusted &middot; Open</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
</div>
<div style="padding:32px 36px 24px; color:#2c1810;">
{{$repo_url := HTMLFormat "<a href='%s' style='color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;'>%s</a>" .Issue.Repo.HTMLURL .Issue.Repo.FullName}}
{{$link := HTMLFormat "<a href='%s' style='color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;'>#%d</a>" .Link .Issue.Index}}
<p style="margin:0 0 20px; font-size:16px; line-height:1.7; color:#2c1810;">
{{if .IsPull}}
{{.locale.Tr "mail.issue_assigned.pull" .Doer.Name $link $repo_url}}
{{else}}
{{.locale.Tr "mail.issue_assigned.issue" .Doer.Name $link $repo_url}}
{{end}}
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{.Link}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">View on {{AppName}} &#x2192;</a>
</td>
</tr>
</table>
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
{{.Link}}
</p>
</div>
</div>
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
<p style="margin:0; font-size:13px; color:#5c4a3a;">
&copy; <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established &middot; Trusted &middot; Open</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,121 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
blockquote { padding-left: 1em; margin: 1em 0; border-left: 2px solid #c4a97d; color: #5c4a3a; font-style: italic; }
pre { background: #faf8f5; padding: 12px; overflow-x: auto; font-size: 14px; line-height: 1.5; border: 1px solid #d4c4a8; }
hr { border: none; border-top: 1px solid #c4a97d; margin: 20px 0; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
</div>
<div style="padding:32px 36px 24px; color:#2c1810;">
{{if .IsMention}}<p style="margin:0 0 16px; font-size:16px; line-height:1.7; color:#2c1810;">{{.locale.Tr "mail.issue.x_mentioned_you" .Doer.Name}}</p>{{end}}
{{if eq .ActionName "push"}}
<p style="margin:0 0 16px; font-size:16px; line-height:1.7; color:#2c1810;">
{{if .Comment.IsForcePush}}
{{$oldCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.OldCommit}}
{{$oldShortSha := ShortSha .Comment.OldCommit}}
{{$oldCommitLink := HTMLFormat "<a href='%[1]s' style='color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;'>%[2]s</a>" $oldCommitUrl $oldShortSha}}
{{$newCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.NewCommit}}
{{$newShortSha := ShortSha .Comment.NewCommit}}
{{$newCommitLink := HTMLFormat "<a href='%[1]s' style='color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;'>%[2]s</a>" $newCommitUrl $newShortSha}}
{{.locale.Tr "mail.issue.action.force_push" .Doer.Name .Comment.Issue.PullRequest.HeadBranch $oldCommitLink $newCommitLink}}
{{else}}
{{.locale.TrN (len .Comment.Commits) "mail.issue.action.push_1" "mail.issue.action.push_n" .Doer.Name .Comment.Issue.PullRequest.HeadBranch (len .Comment.Commits)}}
{{end}}
</p>
{{end}}
<p style="margin:0 0 16px; font-size:16px; line-height:1.7; color:#2c1810;">
{{if eq .ActionName "close"}}
{{.locale.Tr "mail.issue.action.close" .Doer.Name .Issue.Index}}
{{else if eq .ActionName "reopen"}}
{{.locale.Tr "mail.issue.action.reopen" .Doer.Name .Issue.Index}}
{{else if eq .ActionName "merge"}}
{{.locale.Tr "mail.issue.action.merge" .Doer.Name .Issue.Index .Issue.PullRequest.BaseBranch}}
{{else if eq .ActionName "approve"}}
{{.locale.Tr "mail.issue.action.approve" .Doer.Name}}
{{else if eq .ActionName "reject"}}
{{.locale.Tr "mail.issue.action.reject" .Doer.Name}}
{{else if eq .ActionName "review"}}
{{.locale.Tr "mail.issue.action.review" .Doer.Name}}
{{else if eq .ActionName "review_dismissed"}}
{{.locale.Tr "mail.issue.action.review_dismissed" .Doer.Name .Comment.Review.Reviewer.Name}}
{{else if eq .ActionName "ready_for_review"}}
{{.locale.Tr "mail.issue.action.ready_for_review" .Doer.Name}}
{{end}}
{{- if eq .Body ""}}
{{if eq .ActionName "new"}}
{{.locale.Tr "mail.issue.action.new" .Doer.Name .Issue.Index}}
{{end}}
{{else}}
{{.Body}}
{{end -}}
</p>
{{- range .ReviewComments}}
<hr>
<p style="margin:8px 0; font-size:14px; color:#5c4a3a; font-style:italic;">{{$.locale.Tr "mail.issue.in_tree_path" .TreePath}}</p>
<div style="padding-left: 1em; margin: 1em 0;">
<pre>{{.Patch}}</pre>
<div style="margin-top:8px; font-size:15px; line-height:1.7;">{{.RenderedContent}}</div>
</div>
{{end -}}
{{if eq .ActionName "push"}}
<ul style="margin:16px 0; padding-left:20px;">
{{range .Comment.Commits}}
<li style="margin-bottom:6px; font-size:15px;">
<a href="{{$.Comment.Issue.PullRequest.BaseRepo.HTMLURL}}/commit/{{.ID}}" style="color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;">
{{ShortSha .ID.String}}
</a> &mdash; {{.MessageTitle}}
</li>
{{end}}
</ul>
{{end}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{.Link}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">View on {{AppName}} &#x2192;</a>
</td>
</tr>
</table>
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
{{.Link}}
</p>
</div>
</div>
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
<p style="margin:0; font-size:13px; color:#5c4a3a;">
&copy; <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established &middot; Trusted &middot; Open</p>
</div>
</div>
</center>
</body>
</html>
+87
View File
@@ -0,0 +1,87 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
blockquote { padding-left: 1em; margin: 1em 0; border-left: 2px solid #c4a97d; color: #5c4a3a; font-style: italic; }
ul { margin: 12px 0 16px; padding-left: 20px; }
li { margin-bottom: 8px; font-size: 15px; line-height: 1.5; color: #2c1810; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
</div>
<div style="padding:32px 36px 24px; color:#2c1810;">
{{$release_url := HTMLFormat "<a href='%s' style='color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;'>%s</a>" .Release.HTMLURL .Release.TagName}}
{{$repo_url := HTMLFormat "<a href='%s' style='color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;'>%s</a>" .Release.Repo.HTMLURL .Release.Repo.FullName}}
<p style="margin:0 0 16px; font-size:16px; line-height:1.7; color:#2c1810;">
{{.locale.Tr "mail.release.new.text" .Release.Publisher.Name $release_url $repo_url}}
</p>
<h4 style="margin:20px 0 8px; font-size:19px; font-weight:700; color:#1e3a5f; font-family:Georgia,'Times New Roman',serif;">{{.locale.Tr "mail.release.title" .Release.Title}}</h4>
{{if .Release.RenderedNote}}
<div style="margin:12px 0 16px; font-size:15px; line-height:1.7; color:#2c1810;">
{{.Release.RenderedNote}}
</div>
{{end}}
<p style="margin:20px 0 8px; font-weight:600; color:#1e3a5f; font-variant:small-caps; letter-spacing:1px;">{{.locale.Tr "mail.release.downloads"}}</p>
<ul style="margin:0 0 20px; padding-left:20px;">
{{if not .DisableDownloadSourceArchives}}
<li>
<a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.zip" rel="nofollow" style="color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;">{{.locale.Tr "mail.release.download.zip"}}</a>
</li>
<li>
<a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.tar.gz" rel="nofollow" style="color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;">{{.locale.Tr "mail.release.download.targz"}}</a>
</li>
{{end}}
{{if .Release.Attachments}}
{{range .Release.Attachments}}
<li>
<a href="{{.DownloadURL}}" target="_blank" style="color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;">{{.Name}} ({{.Size | FileSize}})</a>
</li>
{{end}}
{{end}}
</ul>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:16px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{.Link}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">See the Release &#x2192;</a>
</td>
</tr>
</table>
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
{{.Link}}
</p>
</div>
</div>
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
<p style="margin:0; font-size:13px; color:#5c4a3a;">
&copy; <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established &middot; Trusted &middot; Open</p>
</div>
</div>
</center>
</body>
</html>
+56
View File
@@ -0,0 +1,56 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
</div>
<div style="padding:32px 36px 24px; color:#2c1810;">
{{$url := HTMLFormat "<a href='%[1]s' style='color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;'>%[2]s</a>" .Link .Repo}}
<p style="margin:0 0 20px; font-size:16px; line-height:1.7; color:#2c1810;">
{{.Subject}}. {{.locale.Tr "mail.repo.transfer.body" $url}}
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{.Link}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">View Transfer &#x2192;</a>
</td>
</tr>
</table>
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
{{.Link}}
</p>
</div>
</div>
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
<p style="margin:0; font-size:13px; color:#5c4a3a;">
&copy; <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established &middot; Trusted &middot; Open</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,62 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.locale.Tr "mail.activate_account.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
</div>
<div style="padding:32px 36px 24px; color:#2c1810;">
<p style="margin:0 0 14px; font-size:17px; line-height:1.5; color:#1e3a5f; font-weight:600; font-family:Georgia,'Times New Roman',serif;">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 8px; font-size:16px; line-height:1.7; color:#2c1810;">
{{.locale.Tr "mail.activate_account.text_1" (.DisplayName|DotEscape) AppName}}
</p>
<p style="margin:0 0 20px; font-size:15px; line-height:1.7; color:#5c4a3a;">
{{.locale.Tr "mail.activate_account.text_2" .ActiveCodeLives}}
</p>
{{$activate_url := printf "%suser/activate?code=%s" AppUrl (QueryEscape .Code)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{$activate_url}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Activate Account &#x2192;</a>
</td>
</tr>
</table>
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
{{$activate_url}}
</p>
</div>
</div>
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
<p style="margin:0; font-size:13px; color:#5c4a3a;">
&copy; <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established &middot; Trusted &middot; Open</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,59 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.locale.Tr "mail.activate_email.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
</div>
<div style="padding:32px 36px 24px; color:#2c1810;">
<p style="margin:0 0 14px; font-size:17px; line-height:1.5; color:#1e3a5f; font-weight:600; font-family:Georgia,'Times New Roman',serif;">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 20px; font-size:16px; line-height:1.7; color:#2c1810;">
{{.locale.Tr "mail.activate_email.text" .ActiveCodeLives}}
</p>
{{$activate_url := printf "%suser/activate_email?code=%s&email=%s" AppUrl (QueryEscape .Code) (QueryEscape .Email)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{$activate_url}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Verify Email Address &#x2192;</a>
</td>
</tr>
</table>
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
{{$activate_url}}
</p>
</div>
</div>
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
<p style="margin:0; font-size:13px; color:#5c4a3a;">
&copy; <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established &middot; Trusted &middot; Open</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,66 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.locale.Tr "mail.register_notify.title" (.DisplayName|DotEscape) AppName}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
</div>
<div style="padding:32px 36px 24px; color:#2c1810;">
<p style="margin:0 0 14px; font-size:17px; line-height:1.5; color:#1e3a5f; font-weight:600; font-family:Georgia,'Times New Roman',serif;">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 8px; font-size:16px; line-height:1.7; color:#2c1810;">
{{.locale.Tr "mail.register_notify.text_1" AppName}}
</p>
<p style="margin:0 0 20px; font-size:15px; line-height:1.7; color:#5c4a3a;">
{{.locale.Tr "mail.register_notify.text_2" .Username}}
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{AppUrl}}user/login" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Proceed to Login &#x2192;</a>
</td>
</tr>
</table>
{{$set_pwd_url := printf "%suser/forgot_password" AppUrl}}
<p style="margin:0 0 16px; font-size:15px; line-height:1.7; color:#5c4a3a;">
{{.locale.Tr "mail.register_notify.text_3" $set_pwd_url}}
</p>
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
{{AppUrl}}user/login
</p>
</div>
</div>
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
<p style="margin:0; font-size:13px; color:#5c4a3a;">
&copy; <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established &middot; Trusted &middot; Open</p>
</div>
</div>
</center>
</body>
</html>
@@ -0,0 +1,59 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.locale.Tr "mail.reset_password.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
</div>
<div style="padding:32px 36px 24px; color:#2c1810;">
<p style="margin:0 0 14px; font-size:17px; line-height:1.5; color:#1e3a5f; font-weight:600; font-family:Georgia,'Times New Roman',serif;">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 20px; font-size:16px; line-height:1.7; color:#2c1810;">
{{.locale.Tr "mail.reset_password.text" .ResetPwdCodeLives}}
</p>
{{$recover_url := printf "%suser/recover_account?code=%s" AppUrl (QueryEscape .Code)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center">
<a href="{{$recover_url}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Reset Password &#x2192;</a>
</td>
</tr>
</table>
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
{{$recover_url}}
</p>
</div>
</div>
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
<p style="margin:0; font-size:13px; color:#5c4a3a;">
&copy; <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
</p>
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established &middot; Trusted &middot; Open</p>
</div>
</div>
</center>
</body>
</html>
+76
View File
@@ -0,0 +1,76 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{AppName}} · Team Invitation</title>
<style type="text/css">
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#1e293b;">
{{.locale.Tr "mail.hi_user_x" .Invite.Email}}
</p>
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#334155;">
{{.locale.Tr "mail.team_invite.text_1" (DotEscape .Inviter.DisplayName) (DotEscape .Team.Name) (DotEscape .Organization.DisplayName)}}
</p>
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
{{.locale.Tr "mail.team_invite.text_2"}}
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
<a href="{{.InviteURL}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">Accept Invitation</a>
</td>
</tr>
</table>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
{{.InviteURL}}
</p>
</div>
<p style="margin:16px 0 0; font-size:14px; color:#475569; line-height:1.5;">
{{.locale.Tr "mail.team_invite.text_3" .Invite.Email}}
</p>
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
</div>
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
<p style="margin:0; font-size:14px; color:#64748b;">
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
</p>
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure team invitation – if you weren’t expecting this, please ignore this email.</p>
</div>
</div>
</center>
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
</body>
</html>
@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
<h2 style="font-size:20px; font-weight:600; color:#1e293b; margin:0 0 16px;">
{{.Repo.FullName}} {{.Run.WorkflowID}}: {{.RunStatusText}}
</h2>
<ul style="list-style: none; padding: 0; margin: 0 0 30px 0;">
{{range $job := .Jobs}}
<li style="background-color: #ffffff; border: 1px solid #e2e8f0; border-radius: 8px; padding: 12px 16px; margin-bottom: 10px; box-shadow: 0 1px 2px rgba(0,0,0,0.03); transition: box-shadow 0.2s ease;">
<a href="{{$job.HTMLURL}}" style="color:#1e88e5; text-decoration:none; font-weight:500; display:block;">
{{$job.Status}}: {{$job.Name}}{{if gt $job.Attempt 1}}, Attempt #{{$job.Attempt}}{{end}}, {{$job.Duration}}
</a>
</li>
{{end}}
</ul>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:16px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
<a href="{{.Run.HTMLURL}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
{{.Run.HTMLURL}}
</p>
</div>
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
</div>
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
<p style="margin:0; font-size:14px; color:#64748b;">
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
</p>
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure workflow run notification – if you didn’t expect this, please ignore this email.</p>
</div>
</div>
</center>
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
</body>
</html>
@@ -0,0 +1,63 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
{{.locale.Tr "mail.repo.collaborator.added.text"}} <code style="background:#f1f5f9; padding:2px 6px; border-radius:4px; font-size:15px;">{{.RepoName}}</code>.
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
<a href="{{.Link}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
{{.Link}}
</p>
</div>
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
</div>
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
<p style="margin:0; font-size:14px; color:#64748b;">
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
</p>
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure repository collaboration notification – if you didn’t expect this, please ignore this email.</p>
</div>
</div>
</center>
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
</body>
</html>
@@ -0,0 +1,69 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
{{$repo_url := HTMLFormat "<a href='%s' style='color:#1e88e5; text-decoration:none; font-weight:500;'>%s</a>" .Issue.Repo.HTMLURL .Issue.Repo.FullName}}
{{$link := HTMLFormat "<a href='%s' style='color:#1e88e5; text-decoration:none; font-weight:500;'>#%d</a>" .Link .Issue.Index}}
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
{{if .IsPull}}
{{.locale.Tr "mail.issue_assigned.pull" .Doer.Name $link $repo_url}}
{{else}}
{{.locale.Tr "mail.issue_assigned.issue" .Doer.Name $link $repo_url}}
{{end}}
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
<a href="{{.Link}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
{{.Link}}
</p>
</div>
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
</div>
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
<p style="margin:0; font-size:14px; color:#64748b;">
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
</p>
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure issue assignment notification – if you didn’t expect this, please ignore this email.</p>
</div>
</div>
</center>
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
</body>
</html>
+129
View File
@@ -0,0 +1,129 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
blockquote { padding-left: 1em; margin: 1em 0; border-left: 1px solid #cbd5e1; color: #475569; }
pre { background: #f1f5f9; padding: 12px; border-radius: 6px; overflow-x: auto; font-size: 14px; line-height: 1.5; }
hr { border: none; border-top: 1px solid #e2e8f0; margin: 20px 0; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
{{if .IsMention}}<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#334155;">{{.locale.Tr "mail.issue.x_mentioned_you" .Doer.Name}}</p>{{end}}
{{if eq .ActionName "push"}}
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#334155;">
{{if .Comment.IsForcePush}}
{{$oldCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.OldCommit}}
{{$oldShortSha := ShortSha .Comment.OldCommit}}
{{$oldCommitLink := HTMLFormat "<a href='%[1]s' style='color:#1e88e5; text-decoration:none; font-weight:500;'><b>%[2]s</b></a>" $oldCommitUrl $oldShortSha}}
{{$newCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.NewCommit}}
{{$newShortSha := ShortSha .Comment.NewCommit}}
{{$newCommitLink := HTMLFormat "<a href='%[1]s' style='color:#1e88e5; text-decoration:none; font-weight:500;'><b>%[2]s</b></a>" $newCommitUrl $newShortSha}}
{{.locale.Tr "mail.issue.action.force_push" .Doer.Name .Comment.Issue.PullRequest.HeadBranch $oldCommitLink $newCommitLink}}
{{else}}
{{.locale.TrN (len .Comment.Commits) "mail.issue.action.push_1" "mail.issue.action.push_n" .Doer.Name .Comment.Issue.PullRequest.HeadBranch (len .Comment.Commits)}}
{{end}}
</p>
{{end}}
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#334155;">
{{if eq .ActionName "close"}}
{{.locale.Tr "mail.issue.action.close" .Doer.Name .Issue.Index}}
{{else if eq .ActionName "reopen"}}
{{.locale.Tr "mail.issue.action.reopen" .Doer.Name .Issue.Index}}
{{else if eq .ActionName "merge"}}
{{.locale.Tr "mail.issue.action.merge" .Doer.Name .Issue.Index .Issue.PullRequest.BaseBranch}}
{{else if eq .ActionName "approve"}}
{{.locale.Tr "mail.issue.action.approve" .Doer.Name}}
{{else if eq .ActionName "reject"}}
{{.locale.Tr "mail.issue.action.reject" .Doer.Name}}
{{else if eq .ActionName "review"}}
{{.locale.Tr "mail.issue.action.review" .Doer.Name}}
{{else if eq .ActionName "review_dismissed"}}
{{.locale.Tr "mail.issue.action.review_dismissed" .Doer.Name .Comment.Review.Reviewer.Name}}
{{else if eq .ActionName "ready_for_review"}}
{{.locale.Tr "mail.issue.action.ready_for_review" .Doer.Name}}
{{end}}
{{- if eq .Body ""}}
{{if eq .ActionName "new"}}
{{.locale.Tr "mail.issue.action.new" .Doer.Name .Issue.Index}}
{{end}}
{{else}}
{{.Body}}
{{end -}}
</p>
{{- range .ReviewComments}}
<hr>
<p style="margin:8px 0; font-size:15px; color:#334155;">{{$.locale.Tr "mail.issue.in_tree_path" .TreePath}}</p>
<div style="padding-left: 1em; margin: 1em 0;">
<pre style="background:#f1f5f9; padding: 12px; border-radius:6px; overflow-x:auto; font-size:14px; color:#1e293b;">{{.Patch}}</pre>
<div style="margin-top:8px; font-size:15px; line-height:1.6;">{{.RenderedContent}}</div>
</div>
{{end -}}
{{if eq .ActionName "push"}}
<ul style="margin:16px 0; padding-left:20px;">
{{range .Comment.Commits}}
<li style="margin-bottom:6px; font-size:15px;">
<a href="{{$.Comment.Issue.PullRequest.BaseRepo.HTMLURL}}/commit/{{.ID}}" style="color:#1e88e5; text-decoration:none; font-weight:500;">
{{ShortSha .ID.String}}
</a> - {{.MessageTitle}}
</li>
{{end}}
</ul>
{{end}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
<a href="{{.Link}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
{{.Link}}
</p>
</div>
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
</div>
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
<p style="margin:0; font-size:14px; color:#64748b;">
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
</p>
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure notification – if you didn’t expect this, please ignore this email.</p>
</div>
</div>
</center>
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
</body>
</html>
+95
View File
@@ -0,0 +1,95 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
blockquote { padding-left: 1em; margin: 1em 0; border-left: 1px solid #cbd5e1; color: #475569; }
ul { margin: 12px 0 16px; padding-left: 20px; }
li { margin-bottom: 6px; font-size: 15px; line-height: 1.5; color: #334155; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
{{$release_url := HTMLFormat "<a href='%s' style='color:#1e88e5; text-decoration:none; font-weight:500;'>%s</a>" .Release.HTMLURL .Release.TagName}}
{{$repo_url := HTMLFormat "<a href='%s' style='color:#1e88e5; text-decoration:none; font-weight:500;'>%s</a>" .Release.Repo.HTMLURL .Release.Repo.FullName}}
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#334155;">
{{.locale.Tr "mail.release.new.text" .Release.Publisher.Name $release_url $repo_url}}
</p>
<h4 style="margin:24px 0 8px; font-size:18px; font-weight:600; color:#1e293b;">{{.locale.Tr "mail.release.title" .Release.Title}}</h4>
{{if .Release.RenderedNote}}
<div style="margin:12px 0 16px; font-size:15px; line-height:1.6; color:#334155;">
{{.Release.RenderedNote}}
</div>
{{end}}
<p style="margin:20px 0 8px; font-weight:500; color:#1e293b;">{{.locale.Tr "mail.release.downloads"}}</p>
<ul style="margin:0 0 24px; padding-left:20px;">
{{if not .DisableDownloadSourceArchives}}
<li>
<a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.zip" rel="nofollow" style="color:#1e88e5; text-decoration:none; font-weight:500;">{{.locale.Tr "mail.release.download.zip"}}</a>
</li>
<li>
<a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.tar.gz" rel="nofollow" style="color:#1e88e5; text-decoration:none; font-weight:500;">{{.locale.Tr "mail.release.download.targz"}}</a>
</li>
{{end}}
{{if .Release.Attachments}}
{{range .Release.Attachments}}
<li>
<a href="{{.DownloadURL}}" target="_blank" style="color:#1e88e5; text-decoration:none; font-weight:500;">{{.Name}} ({{.Size | FileSize}})</a>
</li>
{{end}}
{{end}}
</ul>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:16px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
<a href="{{.Link}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
{{.Link}}
</p>
</div>
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
</div>
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
<p style="margin:0; font-size:14px; color:#64748b;">
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
</p>
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure release notification – if you didn’t expect this, please ignore this email.</p>
</div>
</div>
</center>
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
</body>
</html>
+64
View File
@@ -0,0 +1,64 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Subject}}</title>
<style type="text/css">
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
{{$url := HTMLFormat "<a href='%[1]s' style='color:#1e88e5; text-decoration:none; font-weight:500;'>%[2]s</a>" .Link .Repo}}
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
{{.Subject}}. {{.locale.Tr "mail.repo.transfer.body" $url}}
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
<a href="{{.Link}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
{{.Link}}
</p>
</div>
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
</div>
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
<p style="margin:0; font-size:14px; color:#64748b;">
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
</p>
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure repository transfer notification – if you didn’t expect this, please ignore this email.</p>
</div>
</div>
</center>
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
</body>
</html>
@@ -0,0 +1,70 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.locale.Tr "mail.activate_account.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#1e293b;">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 8px; font-size:16px; line-height:1.5; color:#334155;">
{{.locale.Tr "mail.activate_account.text_1" (.DisplayName|DotEscape) AppName}}
</p>
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
{{.locale.Tr "mail.activate_account.text_2" .ActiveCodeLives}}
</p>
{{$activate_url := printf "%suser/activate?code=%s" AppUrl (QueryEscape .Code)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
<a href="{{$activate_url}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">Activate Account</a>
</td>
</tr>
</table>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
{{$activate_url}}
</p>
</div>
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
</div>
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
<p style="margin:0; font-size:14px; color:#64748b;">
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
</p>
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure account activation – if you didn’t register, please ignore this email.</p>
</div>
</div>
</center>
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
</body>
</html>
@@ -0,0 +1,67 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.locale.Tr "mail.activate_email.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#1e293b;">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
{{.locale.Tr "mail.activate_email.text" .ActiveCodeLives}}
</p>
{{$activate_url := printf "%suser/activate_email?code=%s&email=%s" AppUrl (QueryEscape .Code) (QueryEscape .Email)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
<a href="{{$activate_url}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">Verify Email Address</a>
</td>
</tr>
</table>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
{{$activate_url}}
</p>
</div>
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
</div>
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
<p style="margin:0; font-size:14px; color:#64748b;">
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
</p>
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure email verification – if you didn’t request this, please ignore this email.</p>
</div>
</div>
</center>
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
</body>
</html>
@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.locale.Tr "mail.register_notify.title" (.DisplayName|DotEscape) AppName}}</title>
<style type="text/css">
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#1e293b;">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 8px; font-size:16px; line-height:1.5; color:#334155;">
{{.locale.Tr "mail.register_notify.text_1" AppName}}
</p>
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
{{.locale.Tr "mail.register_notify.text_2" .Username}}
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
<a href="{{AppUrl}}user/login" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">Log in to {{AppName}}</a>
</td>
</tr>
</table>
{{$set_pwd_url := printf "%suser/forgot_password" AppUrl}}
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
{{.locale.Tr "mail.register_notify.text_3" $set_pwd_url}}
</p>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
{{AppUrl}}user/login
</p>
</div>
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
</div>
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
<p style="margin:0; font-size:14px; color:#64748b;">
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
</p>
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure registration confirmation – if you didn’t register, please ignore this email.</p>
</div>
</div>
</center>
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
</body>
</html>
@@ -0,0 +1,66 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.locale.Tr "mail.reset_password.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
</style>
</head>
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
<center style="width:100%; table-layout:fixed;">
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td style="vertical-align:middle;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
</td>
</tr>
</table>
</div>
<div style="padding:32px 32px 24px; color:#334155;">
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#1e293b;">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
{{.locale.Tr "mail.reset_password.text" .ResetPwdCodeLives}}
</p>
{{$recover_url := printf "%suser/recover_account?code=%s" AppUrl (QueryEscape .Code)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
<tr>
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
<a href="{{$recover_url}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">Reset Password</a>
</td>
</tr>
</table>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
{{.locale.Tr "mail.link_not_working_do_paste"}}
</p>
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
{{$recover_url}}
</p>
</div>
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
</div>
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
<p style="margin:0; font-size:14px; color:#64748b;">
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
</p>
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure password reset link – if you didn’t request this, please ignore this email.</p>
</div>
</div>
</center>
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
</body>
</html>
+60
View File
@@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{AppName}} - Team Invitation</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
@media only screen and (max-width:480px){
.resp-pad{padding-left:16px!important;padding-right:16px!important}
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
<!-- masthead -->
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
</td></tr>
<!-- two-column body -->
<tr>
<!-- left column -->
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>{{.locale.Tr "mail.hi_user_x" .Invite.Email}}
</p>
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{.locale.Tr "mail.team_invite.text_1" (DotEscape .Inviter.DisplayName) (DotEscape .Team.Name) (DotEscape .Organization.DisplayName)}}</p>
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;">{{.locale.Tr "mail.team_invite.text_2"}}</p>
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
<a href="{{.InviteURL}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account &raquo;</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{.InviteURL}}</p>
</td></tr></table>
</td>
<!-- right column / sidebar -->
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
</table>
</td>
</tr>
<!-- footer -->
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">&copy; <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
@@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.Subject}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
@media only screen and (max-width:480px){
.resp-pad{padding-left:16px!important;padding-right:16px!important}
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
<!-- masthead -->
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
</td></tr>
<!-- two-column body -->
<tr>
<!-- left column -->
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>
</p>
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;"><h2>{{.Repo.FullName}} - {{.Run.WorkflowID}}: {{.RunStatusText}}</h2><ul>{{range $job := .Jobs}}<li><a href="{{$job.HTMLURL}}">{{$job.Status}}: {{$job.Name}}{{if gt $job.Attempt 1}} (retry #{{$job.Attempt}}){{end}} - {{$job.Duration}}</a></li>{{end}}</ul></p>
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;"></p>
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
<a href="{{.Run.HTMLURL}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account &raquo;</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{.Run.HTMLURL}}</p>
</td></tr></table>
</td>
<!-- right column / sidebar -->
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
</table>
</td>
</tr>
<!-- footer -->
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">&copy; <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
+60
View File
@@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.Subject}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
@media only screen and (max-width:480px){
.resp-pad{padding-left:16px!important;padding-right:16px!important}
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
<!-- masthead -->
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
</td></tr>
<!-- two-column body -->
<tr>
<!-- left column -->
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>
</p>
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{.locale.Tr "mail.repo.collaborator.added.text"}} <code>{{.RepoName}}</code>.</p>
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;"></p>
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account &raquo;</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{.Link}}</p>
</td></tr></table>
</td>
<!-- right column / sidebar -->
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
</table>
</td>
</tr>
<!-- footer -->
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">&copy; <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
+60
View File
@@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.Subject}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
@media only screen and (max-width:480px){
.resp-pad{padding-left:16px!important;padding-right:16px!important}
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
<!-- masthead -->
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
</td></tr>
<!-- two-column body -->
<tr>
<!-- left column -->
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>
</p>
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{$repo_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Issue.Repo.HTMLURL .Issue.Repo.FullName}}{{$link := HTMLFormat "<a href=\047%s\047>#%d</a>" .Link .Issue.Index}}{{if .IsPull}}{{.locale.Tr "mail.issue_assigned.pull" .Doer.Name $link $repo_url}}{{else}}{{.locale.Tr "mail.issue_assigned.issue" .Doer.Name $link $repo_url}}{{end}}</p>
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;"></p>
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account &raquo;</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{.Link}}</p>
</td></tr></table>
</td>
<!-- right column / sidebar -->
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
</table>
</td>
</tr>
<!-- footer -->
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">&copy; <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
+60
View File
@@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.Subject}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
@media only screen and (max-width:480px){
.resp-pad{padding-left:16px!important;padding-right:16px!important}
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
<!-- masthead -->
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
</td></tr>
<!-- two-column body -->
<tr>
<!-- left column -->
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>
</p>
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{if .IsMention}}<p>{{.locale.Tr "mail.issue.x_mentioned_you" .Doer.Name}}</p>{{end}}{{if eq .ActionName "push"}}<p>{{if .Comment.IsForcePush}}{{$oldCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.OldCommit}}{{$oldShortSha := ShortSha .Comment.OldCommit}}{{$oldCommitLink := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" $oldCommitUrl $oldShortSha}}{{$newCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.NewCommit}}{{$newShortSha := ShortSha .Comment.NewCommit}}{{$newCommitLink := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" $newCommitUrl $newShortSha}}{{.locale.Tr "mail.issue.action.force_push" .Doer.Name .Comment.Issue.PullRequest.HeadBranch $oldCommitLink $newCommitLink}}{{else}}{{.locale.TrN (len .Comment.Commits) "mail.issue.action.push_1" "mail.issue.action.push_n" .Doer.Name .Comment.Issue.PullRequest.HeadBranch (len .Comment.Commits)}}{{end}}</p>{{end}}<p>{{if eq .ActionName "close"}}{{.locale.Tr "mail.issue.action.close" .Doer.Name .Issue.Index}}{{else if eq .ActionName "reopen"}}{{.locale.Tr "mail.issue.action.reopen" .Doer.Name .Issue.Index}}{{else if eq .ActionName "merge"}}{{.locale.Tr "mail.issue.action.merge" .Doer.Name .Issue.Index .Issue.PullRequest.BaseBranch}}{{else if eq .ActionName "approve"}}{{.locale.Tr "mail.issue.action.approve" .Doer.Name}}{{else if eq .ActionName "reject"}}{{.locale.Tr "mail.issue.action.reject" .Doer.Name}}{{else if eq .ActionName "review"}}{{.locale.Tr "mail.issue.action.review" .Doer.Name}}{{else if eq .ActionName "review_dismissed"}}{{.locale.Tr "mail.issue.action.review_dismissed" .Doer.Name .Comment.Review.Reviewer.Name}}{{else if eq .ActionName "ready_for_review"}}{{.locale.Tr "mail.issue.action.ready_for_review" .Doer.Name}}{{end}}{{- if eq .Body ""}}{{if eq .ActionName "new"}}{{.locale.Tr "mail.issue.action.new" .Doer.Name .Issue.Index}}{{end}}{{else}}{{.Body}}{{end -}}</p>{{- range .ReviewComments}}<hr><p>{{$.locale.Tr "mail.issue.in_tree_path" .TreePath}}</p><pre>{{.Patch}}</pre><div>{{.RenderedContent}}</div>{{end -}}{{if eq .ActionName "push"}}<ul>{{range .Comment.Commits}}<li><a href="{{$.Comment.Issue.PullRequest.BaseRepo.HTMLURL}}/commit/{{.ID}}">{{ShortSha .ID.String}}</a> - {{.MessageTitle}}</li>{{end}}</ul>{{end}}</p>
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;"></p>
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account &raquo;</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{.Link}}</p>
</td></tr></table>
</td>
<!-- right column / sidebar -->
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
</table>
</td>
</tr>
<!-- footer -->
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">&copy; <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
+64
View File
@@ -0,0 +1,64 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.Subject}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
@media only screen and (max-width:480px){
.resp-pad{padding-left:16px!important;padding-right:16px!important}
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
<!-- masthead -->
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
</td></tr>
<!-- two-column body -->
<tr>
<!-- left column -->
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>
</p>
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{$release_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Release.HTMLURL .Release.TagName}}{{$repo_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Release.Repo.HTMLURL .Release.Repo.FullName}}{{.locale.Tr "mail.release.new.text" .Release.Publisher.Name $release_url $repo_url}}
<h4>{{.locale.Tr "mail.release.title" .Release.Title}}</h4>
{{if .Release.RenderedNote}}<div>{{.Release.RenderedNote}}</div>{{end}}
<p>{{.locale.Tr "mail.release.downloads"}}</p>
<ul>{{if not .DisableDownloadSourceArchives}}<li><a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.zip">{{.locale.Tr "mail.release.download.zip"}}</a></li><li><a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.tar.gz">{{.locale.Tr "mail.release.download.targz"}}</a></li>{{end}}{{if .Release.Attachments}}{{range .Release.Attachments}}<li><a href="{{.DownloadURL}}">{{.Name}} ({{.Size | FileSize}})</a></li>{{end}}{{end}}</ul></p>
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;"></p>
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account &raquo;</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{.Link}}</p>
</td></tr></table>
</td>
<!-- right column / sidebar -->
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
</table>
</td>
</tr>
<!-- footer -->
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">&copy; <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
+60
View File
@@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.Subject}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
@media only screen and (max-width:480px){
.resp-pad{padding-left:16px!important;padding-right:16px!important}
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
<!-- masthead -->
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
</td></tr>
<!-- two-column body -->
<tr>
<!-- left column -->
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>
</p>
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{$url := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" .Link .Repo}}{{.Subject}}. {{.locale.Tr "mail.repo.transfer.body" $url}}</p>
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;"></p>
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account &raquo;</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{.Link}}</p>
</td></tr></table>
</td>
<!-- right column / sidebar -->
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
</table>
</td>
</tr>
<!-- footer -->
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">&copy; <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
+60
View File
@@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.locale.Tr "mail.activate_account.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
@media only screen and (max-width:480px){
.resp-pad{padding-left:16px!important;padding-right:16px!important}
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
<!-- masthead -->
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
</td></tr>
<!-- two-column body -->
<tr>
<!-- left column -->
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{.locale.Tr "mail.activate_account.text_1" (.DisplayName|DotEscape) AppName}}</p>
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;">{{.locale.Tr "mail.activate_account.text_2" .ActiveCodeLives}}</p>
{{$activate_url := printf "%suser/activate?code=%s" AppUrl (QueryEscape .Code)}}
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
<a href="{{$activate_url}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account &raquo;</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{$activate_url}}</p>
</td></tr></table>
</td>
<!-- right column / sidebar -->
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
</table>
</td>
</tr>
<!-- footer -->
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">&copy; <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
@@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.locale.Tr "mail.activate_email.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
@media only screen and (max-width:480px){
.resp-pad{padding-left:16px!important;padding-right:16px!important}
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
<!-- masthead -->
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
</td></tr>
<!-- two-column body -->
<tr>
<!-- left column -->
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{.locale.Tr "mail.activate_email.text" .ActiveCodeLives}}</p>
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;"></p>
{{$activate_url := printf "%suser/activate_email?code=%s&email=%s" AppUrl (QueryEscape .Code) (QueryEscape .Email)}}
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
<a href="{{$activate_url}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account &raquo;</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{$activate_url}}</p>
</td></tr></table>
</td>
<!-- right column / sidebar -->
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
</table>
</td>
</tr>
<!-- footer -->
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">&copy; <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
@@ -0,0 +1,62 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.locale.Tr "mail.register_notify.title" (.DisplayName|DotEscape) AppName}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
@media only screen and (max-width:480px){
.resp-pad{padding-left:16px!important;padding-right:16px!important}
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
<!-- masthead -->
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
</td></tr>
<!-- two-column body -->
<tr>
<!-- left column -->
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{.locale.Tr "mail.register_notify.text_1" AppName}}</p>
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;">{{.locale.Tr "mail.register_notify.text_2" .Username}}
{{$set_pwd_url := printf "%suser/forgot_password" AppUrl}}
{{.locale.Tr "mail.register_notify.text_3" $set_pwd_url}}</p>
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
<a href="{{AppUrl}}user/login" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account &raquo;</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{AppUrl}}user/login</p>
</td></tr></table>
</td>
<!-- right column / sidebar -->
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
</table>
</td>
</tr>
<!-- footer -->
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">&copy; <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
@@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.locale.Tr "mail.reset_password.title" (.DisplayName|DotEscape)}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
@media only screen and (max-width:480px){
.resp-pad{padding-left:16px!important;padding-right:16px!important}
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
<!-- masthead -->
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
</td></tr>
<!-- two-column body -->
<tr>
<!-- left column -->
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{.locale.Tr "mail.reset_password.text" .ResetPwdCodeLives}}</p>
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;"></p>
{{$recover_url := printf "%suser/recover_account?code=%s" AppUrl (QueryEscape .Code)}}
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
<a href="{{$recover_url}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account &raquo;</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{$recover_url}}</p>
</td></tr></table>
</td>
<!-- right column / sidebar -->
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
</table>
</td>
</tr>
<!-- footer -->
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">&copy; <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
+57
View File
@@ -0,0 +1,57 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{AppName}} - Team Invitation</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#fafafa}
@media only screen and (max-width:480px){
.resp-pad{padding-left:16px!important;padding-right:16px!important}
.resp-full{width:100%!important;display:block!important}
.resp-hide{display:none!important}
.resp-btn{display:block!important;width:auto!important}
.resp-heading{font-size:22px!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#fafafa;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fff;border:2px solid #000;">
<!-- header -->
<tr><td class="resp-pad" style="padding:24px 32px 0;">
<span style="font-size:14px;font-weight:900;color:#000;letter-spacing:-0.5px;text-transform:uppercase;">{{AppName}}<span style="color:#e03131;margin-left:4px;">*</span></span>
</td></tr>
<!-- split: left 60% content, right 40% whitespace -->
<tr><td class="resp-pad" style="padding:0 32px 0;">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="resp-full" width="60%" style="padding:32px 0 0;">
<p class="resp-heading" style="margin:0 0 32px;font-size:28px;font-weight:900;color:#000;line-height:1.1;letter-spacing:-1px;">{{.locale.Tr "mail.hi_user_x" .Invite.Email}}</p>
<p style="margin:0 0 8px;font-size:13px;line-height:1.8;color:#333;font-weight:500;">{{.locale.Tr "mail.team_invite.text_1" (DotEscape .Inviter.DisplayName) (DotEscape .Team.Name) (DotEscape .Organization.DisplayName)}}</p>
<p style="margin:0 0 32px;font-size:12px;line-height:1.8;color:#888;border-left:2px solid #e03131;padding-left:12px;">{{.locale.Tr "mail.team_invite.text_2"}}</p>
</td>
<td class="resp-hide" width="40%" style="padding:32px 0 0 0;vertical-align:top;"></td>
</tr>
</table>
</td></tr>
<!-- button -->
<tr><td class="resp-pad" style="padding:0 32px 24px;">
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="border:2px solid #000;padding:14px 32px;">
<a href="{{.InviteURL}}" class="resp-btn" style="display:inline-block;font-size:14px;font-weight:900;color:#000;text-decoration:none;letter-spacing:-0.3px;">ACTIVATE</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin:24px 0 0;"><tr><td style="padding:12px 16px;background:#f5f5f5;border:1px solid #ccc;">
<p style="margin:0 0 6px;font-size:11px;color:#888;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:11px;font-family:monospace;color:#000;background:#fff;padding:8px 10px;border:1px solid #000;word-break:break-all;">{{.InviteURL}}</p>
</td></tr></table>
</td></tr>
<!-- footer -->
<tr><td style="padding:16px 32px;border-top:2px solid #000;">
<p style="margin:0;font-size:11px;color:#888;"><a href="{{AppUrl}}" style="color:#e03131;text-decoration:underline;font-weight:600;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
@@ -0,0 +1,57 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.Subject}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#fafafa}
@media only screen and (max-width:480px){
.resp-pad{padding-left:16px!important;padding-right:16px!important}
.resp-full{width:100%!important;display:block!important}
.resp-hide{display:none!important}
.resp-btn{display:block!important;width:auto!important}
.resp-heading{font-size:22px!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#fafafa;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fff;border:2px solid #000;">
<!-- header -->
<tr><td class="resp-pad" style="padding:24px 32px 0;">
<span style="font-size:14px;font-weight:900;color:#000;letter-spacing:-0.5px;text-transform:uppercase;">{{AppName}}<span style="color:#e03131;margin-left:4px;">*</span></span>
</td></tr>
<!-- split: left 60% content, right 40% whitespace -->
<tr><td class="resp-pad" style="padding:0 32px 0;">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="resp-full" width="60%" style="padding:32px 0 0;">
<p class="resp-heading" style="margin:0 0 32px;font-size:28px;font-weight:900;color:#000;line-height:1.1;letter-spacing:-1px;"></p>
<p style="margin:0 0 8px;font-size:13px;line-height:1.8;color:#333;font-weight:500;"><h2>{{.Repo.FullName}} - {{.Run.WorkflowID}}: {{.RunStatusText}}</h2><ul>{{range $job := .Jobs}}<li><a href="{{$job.HTMLURL}}">{{$job.Status}}: {{$job.Name}}{{if gt $job.Attempt 1}} (retry #{{$job.Attempt}}){{end}} - {{$job.Duration}}</a></li>{{end}}</ul></p>
<p style="margin:0 0 32px;font-size:12px;line-height:1.8;color:#888;border-left:2px solid #e03131;padding-left:12px;"></p>
</td>
<td class="resp-hide" width="40%" style="padding:32px 0 0 0;vertical-align:top;"></td>
</tr>
</table>
</td></tr>
<!-- button -->
<tr><td class="resp-pad" style="padding:0 32px 24px;">
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="border:2px solid #000;padding:14px 32px;">
<a href="{{.Run.HTMLURL}}" class="resp-btn" style="display:inline-block;font-size:14px;font-weight:900;color:#000;text-decoration:none;letter-spacing:-0.3px;">ACTIVATE</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin:24px 0 0;"><tr><td style="padding:12px 16px;background:#f5f5f5;border:1px solid #ccc;">
<p style="margin:0 0 6px;font-size:11px;color:#888;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:11px;font-family:monospace;color:#000;background:#fff;padding:8px 10px;border:1px solid #000;word-break:break-all;">{{.Run.HTMLURL}}</p>
</td></tr></table>
</td></tr>
<!-- footer -->
<tr><td style="padding:16px 32px;border-top:2px solid #000;">
<p style="margin:0;font-size:11px;color:#888;"><a href="{{AppUrl}}" style="color:#e03131;text-decoration:underline;font-weight:600;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
+57
View File
@@ -0,0 +1,57 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.Subject}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#fafafa}
@media only screen and (max-width:480px){
.resp-pad{padding-left:16px!important;padding-right:16px!important}
.resp-full{width:100%!important;display:block!important}
.resp-hide{display:none!important}
.resp-btn{display:block!important;width:auto!important}
.resp-heading{font-size:22px!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#fafafa;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fff;border:2px solid #000;">
<!-- header -->
<tr><td class="resp-pad" style="padding:24px 32px 0;">
<span style="font-size:14px;font-weight:900;color:#000;letter-spacing:-0.5px;text-transform:uppercase;">{{AppName}}<span style="color:#e03131;margin-left:4px;">*</span></span>
</td></tr>
<!-- split: left 60% content, right 40% whitespace -->
<tr><td class="resp-pad" style="padding:0 32px 0;">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="resp-full" width="60%" style="padding:32px 0 0;">
<p class="resp-heading" style="margin:0 0 32px;font-size:28px;font-weight:900;color:#000;line-height:1.1;letter-spacing:-1px;"></p>
<p style="margin:0 0 8px;font-size:13px;line-height:1.8;color:#333;font-weight:500;">{{.locale.Tr "mail.repo.collaborator.added.text"}} <code>{{.RepoName}}</code>.</p>
<p style="margin:0 0 32px;font-size:12px;line-height:1.8;color:#888;border-left:2px solid #e03131;padding-left:12px;"></p>
</td>
<td class="resp-hide" width="40%" style="padding:32px 0 0 0;vertical-align:top;"></td>
</tr>
</table>
</td></tr>
<!-- button -->
<tr><td class="resp-pad" style="padding:0 32px 24px;">
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="border:2px solid #000;padding:14px 32px;">
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:14px;font-weight:900;color:#000;text-decoration:none;letter-spacing:-0.3px;">ACTIVATE</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin:24px 0 0;"><tr><td style="padding:12px 16px;background:#f5f5f5;border:1px solid #ccc;">
<p style="margin:0 0 6px;font-size:11px;color:#888;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:11px;font-family:monospace;color:#000;background:#fff;padding:8px 10px;border:1px solid #000;word-break:break-all;">{{.Link}}</p>
</td></tr></table>
</td></tr>
<!-- footer -->
<tr><td style="padding:16px 32px;border-top:2px solid #000;">
<p style="margin:0;font-size:11px;color:#888;"><a href="{{AppUrl}}" style="color:#e03131;text-decoration:underline;font-weight:600;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
+57
View File
@@ -0,0 +1,57 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.Subject}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#fafafa}
@media only screen and (max-width:480px){
.resp-pad{padding-left:16px!important;padding-right:16px!important}
.resp-full{width:100%!important;display:block!important}
.resp-hide{display:none!important}
.resp-btn{display:block!important;width:auto!important}
.resp-heading{font-size:22px!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#fafafa;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fff;border:2px solid #000;">
<!-- header -->
<tr><td class="resp-pad" style="padding:24px 32px 0;">
<span style="font-size:14px;font-weight:900;color:#000;letter-spacing:-0.5px;text-transform:uppercase;">{{AppName}}<span style="color:#e03131;margin-left:4px;">*</span></span>
</td></tr>
<!-- split: left 60% content, right 40% whitespace -->
<tr><td class="resp-pad" style="padding:0 32px 0;">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="resp-full" width="60%" style="padding:32px 0 0;">
<p class="resp-heading" style="margin:0 0 32px;font-size:28px;font-weight:900;color:#000;line-height:1.1;letter-spacing:-1px;"></p>
<p style="margin:0 0 8px;font-size:13px;line-height:1.8;color:#333;font-weight:500;">{{$repo_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Issue.Repo.HTMLURL .Issue.Repo.FullName}}{{$link := HTMLFormat "<a href=\047%s\047>#%d</a>" .Link .Issue.Index}}{{if .IsPull}}{{.locale.Tr "mail.issue_assigned.pull" .Doer.Name $link $repo_url}}{{else}}{{.locale.Tr "mail.issue_assigned.issue" .Doer.Name $link $repo_url}}{{end}}</p>
<p style="margin:0 0 32px;font-size:12px;line-height:1.8;color:#888;border-left:2px solid #e03131;padding-left:12px;"></p>
</td>
<td class="resp-hide" width="40%" style="padding:32px 0 0 0;vertical-align:top;"></td>
</tr>
</table>
</td></tr>
<!-- button -->
<tr><td class="resp-pad" style="padding:0 32px 24px;">
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="border:2px solid #000;padding:14px 32px;">
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:14px;font-weight:900;color:#000;text-decoration:none;letter-spacing:-0.3px;">ACTIVATE</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin:24px 0 0;"><tr><td style="padding:12px 16px;background:#f5f5f5;border:1px solid #ccc;">
<p style="margin:0 0 6px;font-size:11px;color:#888;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:11px;font-family:monospace;color:#000;background:#fff;padding:8px 10px;border:1px solid #000;word-break:break-all;">{{.Link}}</p>
</td></tr></table>
</td></tr>
<!-- footer -->
<tr><td style="padding:16px 32px;border-top:2px solid #000;">
<p style="margin:0;font-size:11px;color:#888;"><a href="{{AppUrl}}" style="color:#e03131;text-decoration:underline;font-weight:600;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
+57
View File
@@ -0,0 +1,57 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.Subject}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#fafafa}
@media only screen and (max-width:480px){
.resp-pad{padding-left:16px!important;padding-right:16px!important}
.resp-full{width:100%!important;display:block!important}
.resp-hide{display:none!important}
.resp-btn{display:block!important;width:auto!important}
.resp-heading{font-size:22px!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#fafafa;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fff;border:2px solid #000;">
<!-- header -->
<tr><td class="resp-pad" style="padding:24px 32px 0;">
<span style="font-size:14px;font-weight:900;color:#000;letter-spacing:-0.5px;text-transform:uppercase;">{{AppName}}<span style="color:#e03131;margin-left:4px;">*</span></span>
</td></tr>
<!-- split: left 60% content, right 40% whitespace -->
<tr><td class="resp-pad" style="padding:0 32px 0;">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="resp-full" width="60%" style="padding:32px 0 0;">
<p class="resp-heading" style="margin:0 0 32px;font-size:28px;font-weight:900;color:#000;line-height:1.1;letter-spacing:-1px;"></p>
<p style="margin:0 0 8px;font-size:13px;line-height:1.8;color:#333;font-weight:500;">{{if .IsMention}}<p>{{.locale.Tr "mail.issue.x_mentioned_you" .Doer.Name}}</p>{{end}}{{if eq .ActionName "push"}}<p>{{if .Comment.IsForcePush}}{{$oldCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.OldCommit}}{{$oldShortSha := ShortSha .Comment.OldCommit}}{{$oldCommitLink := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" $oldCommitUrl $oldShortSha}}{{$newCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.NewCommit}}{{$newShortSha := ShortSha .Comment.NewCommit}}{{$newCommitLink := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" $newCommitUrl $newShortSha}}{{.locale.Tr "mail.issue.action.force_push" .Doer.Name .Comment.Issue.PullRequest.HeadBranch $oldCommitLink $newCommitLink}}{{else}}{{.locale.TrN (len .Comment.Commits) "mail.issue.action.push_1" "mail.issue.action.push_n" .Doer.Name .Comment.Issue.PullRequest.HeadBranch (len .Comment.Commits)}}{{end}}</p>{{end}}<p>{{if eq .ActionName "close"}}{{.locale.Tr "mail.issue.action.close" .Doer.Name .Issue.Index}}{{else if eq .ActionName "reopen"}}{{.locale.Tr "mail.issue.action.reopen" .Doer.Name .Issue.Index}}{{else if eq .ActionName "merge"}}{{.locale.Tr "mail.issue.action.merge" .Doer.Name .Issue.Index .Issue.PullRequest.BaseBranch}}{{else if eq .ActionName "approve"}}{{.locale.Tr "mail.issue.action.approve" .Doer.Name}}{{else if eq .ActionName "reject"}}{{.locale.Tr "mail.issue.action.reject" .Doer.Name}}{{else if eq .ActionName "review"}}{{.locale.Tr "mail.issue.action.review" .Doer.Name}}{{else if eq .ActionName "review_dismissed"}}{{.locale.Tr "mail.issue.action.review_dismissed" .Doer.Name .Comment.Review.Reviewer.Name}}{{else if eq .ActionName "ready_for_review"}}{{.locale.Tr "mail.issue.action.ready_for_review" .Doer.Name}}{{end}}{{- if eq .Body ""}}{{if eq .ActionName "new"}}{{.locale.Tr "mail.issue.action.new" .Doer.Name .Issue.Index}}{{end}}{{else}}{{.Body}}{{end -}}</p>{{- range .ReviewComments}}<hr><p>{{$.locale.Tr "mail.issue.in_tree_path" .TreePath}}</p><pre>{{.Patch}}</pre><div>{{.RenderedContent}}</div>{{end -}}{{if eq .ActionName "push"}}<ul>{{range .Comment.Commits}}<li><a href="{{$.Comment.Issue.PullRequest.BaseRepo.HTMLURL}}/commit/{{.ID}}">{{ShortSha .ID.String}}</a> - {{.MessageTitle}}</li>{{end}}</ul>{{end}}</p>
<p style="margin:0 0 32px;font-size:12px;line-height:1.8;color:#888;border-left:2px solid #e03131;padding-left:12px;"></p>
</td>
<td class="resp-hide" width="40%" style="padding:32px 0 0 0;vertical-align:top;"></td>
</tr>
</table>
</td></tr>
<!-- button -->
<tr><td class="resp-pad" style="padding:0 32px 24px;">
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="border:2px solid #000;padding:14px 32px;">
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:14px;font-weight:900;color:#000;text-decoration:none;letter-spacing:-0.3px;">ACTIVATE</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin:24px 0 0;"><tr><td style="padding:12px 16px;background:#f5f5f5;border:1px solid #ccc;">
<p style="margin:0 0 6px;font-size:11px;color:#888;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:11px;font-family:monospace;color:#000;background:#fff;padding:8px 10px;border:1px solid #000;word-break:break-all;">{{.Link}}</p>
</td></tr></table>
</td></tr>
<!-- footer -->
<tr><td style="padding:16px 32px;border-top:2px solid #000;">
<p style="margin:0;font-size:11px;color:#888;"><a href="{{AppUrl}}" style="color:#e03131;text-decoration:underline;font-weight:600;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
+61
View File
@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>{{.Subject}}</title>
<style type="text/css">
body,.ExternalClass,.ReadMsgBody{background-color:#fafafa}
@media only screen and (max-width:480px){
.resp-pad{padding-left:16px!important;padding-right:16px!important}
.resp-full{width:100%!important;display:block!important}
.resp-hide{display:none!important}
.resp-btn{display:block!important;width:auto!important}
.resp-heading{font-size:22px!important}
}
</style>
</head>
<body style="margin:0;padding:0;background:#fafafa;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fff;border:2px solid #000;">
<!-- header -->
<tr><td class="resp-pad" style="padding:24px 32px 0;">
<span style="font-size:14px;font-weight:900;color:#000;letter-spacing:-0.5px;text-transform:uppercase;">{{AppName}}<span style="color:#e03131;margin-left:4px;">*</span></span>
</td></tr>
<!-- split: left 60% content, right 40% whitespace -->
<tr><td class="resp-pad" style="padding:0 32px 0;">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="resp-full" width="60%" style="padding:32px 0 0;">
<p class="resp-heading" style="margin:0 0 32px;font-size:28px;font-weight:900;color:#000;line-height:1.1;letter-spacing:-1px;"></p>
<p style="margin:0 0 8px;font-size:13px;line-height:1.8;color:#333;font-weight:500;">{{$release_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Release.HTMLURL .Release.TagName}}{{$repo_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Release.Repo.HTMLURL .Release.Repo.FullName}}{{.locale.Tr "mail.release.new.text" .Release.Publisher.Name $release_url $repo_url}}
<h4>{{.locale.Tr "mail.release.title" .Release.Title}}</h4>
{{if .Release.RenderedNote}}<div>{{.Release.RenderedNote}}</div>{{end}}
<p>{{.locale.Tr "mail.release.downloads"}}</p>
<ul>{{if not .DisableDownloadSourceArchives}}<li><a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.zip">{{.locale.Tr "mail.release.download.zip"}}</a></li><li><a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.tar.gz">{{.locale.Tr "mail.release.download.targz"}}</a></li>{{end}}{{if .Release.Attachments}}{{range .Release.Attachments}}<li><a href="{{.DownloadURL}}">{{.Name}} ({{.Size | FileSize}})</a></li>{{end}}{{end}}</ul></p>
<p style="margin:0 0 32px;font-size:12px;line-height:1.8;color:#888;border-left:2px solid #e03131;padding-left:12px;"></p>
</td>
<td class="resp-hide" width="40%" style="padding:32px 0 0 0;vertical-align:top;"></td>
</tr>
</table>
</td></tr>
<!-- button -->
<tr><td class="resp-pad" style="padding:0 32px 24px;">
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="border:2px solid #000;padding:14px 32px;">
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:14px;font-weight:900;color:#000;text-decoration:none;letter-spacing:-0.3px;">ACTIVATE</a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin:24px 0 0;"><tr><td style="padding:12px 16px;background:#f5f5f5;border:1px solid #ccc;">
<p style="margin:0 0 6px;font-size:11px;color:#888;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p style="margin:0;font-size:11px;font-family:monospace;color:#000;background:#fff;padding:8px 10px;border:1px solid #000;word-break:break-all;">{{.Link}}</p>
</td></tr></table>
</td></tr>
<!-- footer -->
<tr><td style="padding:16px 32px;border-top:2px solid #000;">
<p style="margin:0;font-size:11px;color:#888;"><a href="{{AppUrl}}" style="color:#e03131;text-decoration:underline;font-weight:600;">{{AppName}}</a> &mdash; Gitea Mail Templates</p>
</td></tr>
</table>
</center>
</body>
</html>
Loaded 100 of 140 files, more files were not shown because too many files have changed in this diff. Show more