Commit Graph
71 Commits
Author SHA1 Message Date
KenanZhu f4d96de79e chore: refresh docs and adapt workflows for Gitea
Release / Validate Templates (push) Successful in 3m1s
Release / Package & Release (push) Skipped
Release / Update Latest Release Documentation (push) Skipped
2026-10-09 22:02:33 +08:00
KenanZhu fec3ace600 chore: migrate mail themes to shared framework and locked upstream inputs
Release / Validate Templates (push) Canceled after 0s
Release / Package & Release (push) Canceled after 0s
Release / Update Latest Release Documentation (push) Canceled after 0s
2026-10-09 18:34:36 +08:00
KenanZhu 5c0589f6f6 docs: clarify per-version Gitea compatibility
Release / Validate Templates (push) Canceled after 0s
Release / Package & Release (push) Canceled after 0s
Release / Update Latest Release Documentation (push) Canceled after 0s
2026-10-09 12:27:00 +08:00
KenanZhu 14dc37046d refactor: unify markdown release tracking blocks
Release / Validate Templates (push) Canceled after 0s
Release / Package & Release (push) Canceled after 0s
Release / Update Latest Release Documentation (push) Canceled after 0s
2026-10-09 12:10:12 +08:00
KenanZhu 23f0456622 chore: streamline compatibility tracking and documentation
Release / Validate Templates (push) Canceled after 0s
Release / Package & Release (push) Canceled after 0s
2026-10-09 11:43:02 +08:00
KenanZhu 92d2ba9889 fix: support Gitea 28.0.0 mail templates
Release / Validate Templates (push) Canceled after 0s
Release / Package & Release (push) Canceled after 0s
v28.0.0
2026-10-02 19:44:20 +08:00
KenanZhu ffb674669b chore: prepare v1.27.3 release and guard template publishing
Release / Validate Templates (push) Canceled after 0s
Release / Package & Release (push) Canceled after 0s
v1.27.3
2026-09-23 14:15:47 +08:00
KenanZhu 4ff008e564 docs: clarify Gitea 1.27.3 fix is on main, not yet released 2026-09-23 14:02:59 +08:00
KenanZhu dfb5024dfb fix: verify Gitea 1.27.3 and repair push mail templates 2026-09-23 13:51:22 +08:00
KenanZhuandClaude a4ba20418c docs: track Gitea 1.27.2 — verified compatible (annotation versioning)
Release / Validate Templates (push) Canceled after 0s
Release / Package & Release (push) Canceled after 0s
Gitea 1.27.2 (2026-08-14, security + bugfix release) contains no mail
template changes — verified against the local gitea clone: only
modules/templates/util_render.go (avatar-stack UI fix) differs from
1.27.1, templates/mail and services/mailer are untouched.

Versioning now uses the annotation scheme: release numbers stay on the
project's own scheme and the supported Gitea version is appended in
parentheses — v1.0.1(v1.27.2). Synced everywhere:
- COMPATIBILITY.md: active row v1.0.1(v1.27.2), latest verified 1.27.2,
  Versioning section reworded, 1.27.2 history row added
- README.md / docs/README.zh-CN.md: badge, release line, latest tested,
  versioning bullets
- AGENTS.md: annotation scheme + current release v1.0.1 (tracks 1.27.2)
- gitea-tracker.yml: PR checklist now updates the parenthesized Gitea
  version instead of bumping the release number; new tags only when
  template content changes
- CONTRIBUTING.md: simplified Translations section

The local v1.27.1 tag was removed — it conflicts with the annotation
scheme; releases keep v1.0.x tags.

Co-Authored-By: Claude <noreply@anthropic.com>
v1.27.2
2026-08-24 12:01:46 +08:00
KenanZhuandClaude 3f6a2851c7 docs: keep only bilingual (English + Simplified Chinese) README and CONTRIBUTING
Remove ja/ko/ru/zh-TW translations of README.md and CONTRIBUTING.md.
The tracker workflow now only syncs docs/README.zh-CN.md; language links
in README.md, CONTRIBUTING.md, and the AGENTS.md layout are updated to
the two maintained languages.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-24 11:46:50 +08:00
KenanZhuandClaude e06e215d2a docs: adopt semantic versioning — release 1.27.1 tracks Gitea 1.27.1
Templates were re-checked against the local gitea clone (v1.27.1 tag): all
46 translation keys exist in locale_en-US, all data paths match the official
templates, and all 110 templates render via `go run . preview all` — no
template changes required.

From now on release versions mirror the Gitea version they support:
- COMPATIBILITY.md: quick reference now leads with release 1.27.1
  (max tested Gitea 1.27.1, active), v1.0.x marked superseded; new
  Versioning section documents the scheme
- README: release version in header + versioning bullet
- Tracker workflow PR body: added semantic-versioning release checklist
  (bump Template Release column, tag vX.Y.Z)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-24 11:46:04 +08:00
KenanZhuandClaude d020e35f77 refactor(themes): convert all rgba() to #RRGGBBAA hex notation
453 occurrences, 37 unique rgba() values converted across 66 files.
All 110 templates (10 themes × 11 types) render successfully.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-02 11:50:25 +08:00
KenanZhuandClaude ac559eb26c style(aurora): add email-text class to release template paragraphs
Add missing .email-text CSS class to release note paragraphs
for consistent typography styling.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-02 11:48:56 +08:00
KenanZhuandClaude f33cad7a7e fix: update push commit data paths for Gitea 1.27.1 compatibility
Gitea 1.27.1 fixed the mail template for push events (#38467) —
commit data must now be accessed via .UserCommit.GitCommit instead
of directly on the commit object.

Changed across all 10 themes:
- {{.ID}}               → {{.UserCommit.GitCommit.ID}}
- {{.ID.String}}        → {{.UserCommit.GitCommit.ID.String}}
- {{.MessageTitle}}     → {{.UserCommit.GitCommit.MessageTitle}}

Verification:
- 3 mail-related files changed in Gitea v1.27.0→v1.27.1
- All 110 templates (10 themes × 11 types) render successfully
- No breaking changes — data structure unchanged, only access path

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-02 11:18:22 +08:00
KenanZhu 070858d473 docs: track Gitea 1.27.1 — pending verification 2026-08-01 10:01:28 +00:00
KenanZhuandClaude 0fd9afa671 docs: verify Gitea 1.27.0 compatibility — no mail template changes
Verification results:
- 0 files changed in templates/mail/ or services/mailer/ between v1.26.0 and v1.27.0
- All 110 templates (10 themes × 11 types) render successfully
- No new mail template types, no removed types
- No changes to template functions or data contexts
- No breaking changes for mail templates

Marking v1.0.1 as compatible with Gitea 1.27.0.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-14 11:54:38 +08:00
KenanZhu 349ce602f3 docs: track Gitea 1.27.0 — pending verification 2026-07-14 03:43:30 +00:00
KenanZhuandClaude e7a2fef953 docs: add v1.0.1 to compatibility matrix
Release / Validate Templates (push) Canceled after 0s
Release / Package & Release (push) Canceled after 0s
v1.0.1 is a patch release with:
- Floating collapsible preview panel
- Ink theme mobile layout fixes
- Responsive topbar with multi-row wrapping
- CSS overflow prevention for mobile viewports

Co-Authored-By: Claude <noreply@anthropic.com>
v1.0.1
2026-06-26 14:52:39 +08:00
KenanZhuandClaude 112a061fde feat(preview): responsive topbar with multi-row wrapping
Three-tier responsive system for the navigation bar:

Structure:
- Each label+select pair wrapped in .ctl-group (inline-flex,
  white-space:nowrap) so they never split across rows.
- Separators gain flex-shrink:0;align-self:center for stability.

Breakpoints:
- Default: single row, all controls + hint visible, compact 8px gap
- ≤900px: hint text hidden (first sacrifice for space)
- ≤700px: separators hidden, tighter gaps/padding, smaller fonts
- ≤500px: ultra-compact — min select widths, smaller brand

CSS changes:
- height → min-height so bar grows vertically when wrapping
- flex-wrap:wrap enables natural multi-row flow
- row-gap:4px keeps wrapped rows visually connected
- Separators hidden on narrow screens (gap provides spacing)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-26 14:34:26 +08:00
KenanZhuandClaude 433b5f9259 fix(ink): prevent content overflow on mobile viewports
Five targeted fixes applied to all 11 ink templates:

1. Convert table/tr/tbody to display:block on mobile so the
   block-level stacking of <td> elements works correctly.
2. Add box-sizing:border-box to all <td> elements to prevent
   padding from pushing content beyond the viewport width.
3. Add word-break:break-word + overflow-wrap:break-word to
   table, td, th elements to force long text to wrap.
4. Add white-space:pre-wrap + word-break:break-all to <pre>
   and <code> to prevent horizontal scroll from code blocks.
5. Add max-width:100% + height:auto to all images, and
   max-width:100% to nested tables.
6. Remove invalid table-layout:fixed from <center> tag
   (was CSS property on wrong element — had no effect).

Also reduced mobile padding from 28px to 16px for more
usable content width on narrow screens.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-26 14:27:38 +08:00
KenanZhuandClaude f2a3c0f033 fix(ink): add .email-sidebar class for vertical stacking on mobile
Quick Info sidebar now stacks below main content at <=480px viewports
via CSS class instead of fragile inline styles.

- Added .email-sidebar base style (extracted from inline styles)
- Added responsive rule: width:100%, display:block, removes left border,
  adds top border separator when stacked vertically
- All 11 ink templates updated consistently

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-26 14:20:38 +08:00
KenanZhuandClaude f85520a808 feat(preview): convert side panel to floating collapsible overlay with collapsible sections
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-26 14:16:36 +08:00
KenanZhuandClaude fd527b01a5 style(ink): update ink theme templates
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-26 14:08:49 +08:00
KenanZhuandClaude 6624e9a8d7 fix(ci): add permissions block to release workflow
Release / Validate Templates (push) Canceled after 0s
Release / Package & Release (push) Canceled after 0s
GITHUB_TOKEN needs explicit contents: write to create releases via
softprops/action-gh-release. Without it, the API returns 403.

Co-Authored-By: Claude <noreply@anthropic.com>
v1.0.0
2026-06-23 11:18:07 +08:00
KenanZhuandClaude 5ba174a399 fix(ci): create archive dir before copying files in release workflow
cp -r requires the target directory to exist. Changed to mkdir -p the
full archive path instead of just dist/.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 11:15:07 +08:00
KenanZhuandClaude aa7e8d6e06 fix(ci): use English 'pending' instead of Chinese in badge
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 11:12:05 +08:00
KenanZhuandClaude 09c5108345 feat(ci): change badge to yellow '待测试' on new version detection
When tracker detects a new Gitea version, the shields.io badge now
updates from 'tested-blue' to '待测试-yellow' to indicate pending
verification status.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 11:11:37 +08:00
KenanZhuandClaude cb000cac90 refactor(ci): encode line offsets in tracker markers
Markers now self-document their position: 'OFFSET=N' means the target
row is N lines below the marker. Workflow extracts offset dynamically
via sed, no hardcoded values.

Format: <!-- TRACKER:<NAME> OFFSET=<N> -->

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 11:00:38 +08:00
KenanZhuandClaude 4f3dff0df4 fix(ci): move tracker markers above tables, use line offsets
HTML comments between table rows broke markdown rendering. Moved both
tracker markers above table headers, updated workflow to use offsets:
- QUICK-REF-MAX: data row at marker + 3
- VERSION-INSERT: insert at marker + 2

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 10:58:42 +08:00
KenanZhuandClaude 6ccbfc681c fix: restore templates_config.json to tools/data/ location
File was accidentally moved to tools/config/data/ in an earlier commit,
breaking the preview command's default --config path (./data/...).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 10:52:24 +08:00
KenanZhuandClaude 84452c2a18 fix(ci): QUICK-REF-MAX marker is ABOVE data row, not below
The workflow read MARKER-1 (line above marker = separator line),
returning '-----------------' as the version. The data row is BELOW
the marker. Fixed both read and update steps to use MARKER+1.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 10:49:46 +08:00
KenanZhuandClaude 6fc74fd648 fix(ci): replace grep -P/sed regex with awk for portability
grep -oP (Perl regex) failed on Ubuntu runner, returning empty current
version. Replaced version parsing with awk -F'|' to extract from the
pipe-separated Quick Reference table by column index.

Also replaced the Quick Reference update sed with awk -i inplace for
column-based editing, avoiding fragile regex on formatted table cells.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 10:47:36 +08:00
KenanZhuandClaude 6bcc7d791f fix(ci): use GitHub API instead of Gitea API for release tracking
Gitea.com API returned 404. Switched to GitHub's public API:
https://api.github.com/repos/go-gitea/gitea/releases/latest

No auth needed for public repo; 60 req/h is ample for daily cron.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 10:42:48 +08:00
KenanZhuandClaude 9075a5694e fix(ci): cross-validate and fix tracker workflow — 4 bugs squashed
Bug fixes found during cross-validation:

1. VERSION-INSERT marker placed before table header → moved after separator
   line so new rows insert between separator and first data row.

2. Badge sed pattern 'tested\)-[0-9a-z.]*\(blue\)' never matched because
   URL has 'tested-blue' not 'tested)-...'. Fixed to match URL-encoded
   format: '%20<version>%20tested-blue'.

3. Quick Reference sed depended on '| ✅' status literal. Changed to
   '| [^|]*' to match any status text, always setting to ⏳ on update.

4. Gitea API returns 'v1.27.0' tag_name but docs use '1.27.0'. Added
   '${NEW_VERSION#v}' to strip v prefix.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 10:39:20 +08:00
KenanZhuandClaude 5648f73d45 refactor(ci): use marker comments instead of regex for tracker workflow
Add TRACKER: HTML comment markers to COMPATIBILITY.md, README.md, and
all 5 translation READMEs. Rewrite gitea-tracker.yml to use grep -n
for precise line-based insertion and sed line-address editing.

Markers introduced:
- TRACKER:QUICK-REF-MAX  — Quick Reference max tested version
- TRACKER:VERSION-INSERT — Version History row insertion point
- TRACKER:LATEST-VERIFIED — latest verified note version
- TRACKER:BADGE — shields.io badge version
- TRACKER:LATEST-TESTED — latest tested version in READMEs

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 10:34:43 +08:00
KenanZhuandClaude 41caba06c0 chore: remove webhook config, keep schedule + manual trigger only
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 10:30:28 +08:00
KenanZhuandClaude 15509e01ac ci: add Gitea version tracker workflow with auto-PR creation
- Daily cron + repository_dispatch webhook + manual workflow_dispatch
- Fetches latest Gitea release via API, compares with current max tested
- On new version: updates COMPATIBILITY.md matrix, README badges (all 6
  languages), creates PR with verification checklist
- Webhook setup instructions in COMPATIBILITY.md
- Uses peter-evans/create-pull-request for PR automation

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 10:28:54 +08:00
KenanZhuandClaude 2f27d54251 docs: add Gitea version compatibility matrix and badge
- Create COMPATIBILITY.md with version matrix, Gitea release tracking,
  template variable reference, and compatibility verification process
- Add Gitea 1.25+ | 1.26.4 tested badge to README
- Update all 6 READMEs (EN + 5 translations) with latest tested version
  and link to COMPATIBILITY.md
- Include COMPATIBILITY.md in release artifacts

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 10:19:34 +08:00
KenanZhuandClaude 84740fa081 ci: add release workflow with template lint and artifact packaging
- Validate all templates on push to main and tag v*
- On tag: package themes/ as zip + tar.gz and create GitHub release

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 09:50:46 +08:00
KenanZhuandClaude 0ad7db124a refactor(preview): remove juice/Node.js, simplify to pure Go dev server with SSE
- Delete tools/server/ (Node.js, juice, inliner.mjs, server.mjs, node_modules)
- Create tools/preview/server.go — pure Go dev server with SSE + file polling
- Rewrite tools/cli/dev.go — start Go server in-process, no Node.js required
- Simplify preview/index.html — View dropdown (Modern/Source), remove Client
  Simulation panel, remove Gmail/Outlook logic, WebSocket → SSE
- Update all 14 documentation files (README, CONTRIBUTING, AGENTS + translations)
  to reflect pure Go dev server and simplified preview

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 09:48:04 +08:00
KenanZhu d4c6eb99af docs: add spec for removing juice and simplifying preview module 2026-06-23 09:21:15 +08:00
KenanZhu 48541a5aeb docs: update testing guidance, version requirement, and button color fix across all languages 2026-06-12 15:04:14 +08:00
KenanZhu 81c5d36626 fix: add !important to .email-btn color to prevent client link-color override 2026-06-12 09:30:45 +08:00
KenanZhu ba69035223 refactor(*): remove footer branding and extract ink drop-cap inline styles to CSS class 2026-06-12 09:06:05 +08:00
KenanZhuandClaude Opus 4.8 da8bb2e1a2 style(tools): unify console output with [I/W/E] [Module] color-coded format
- Add ANSI color coding: [I]=green, [W]=yellow, [E]=red
- Format: [Level] [Module] message with 4-char indent for data rows
- Error detail lines use |-> tree connector
- Remove extra blank lines between outputs (except list)
- Modules: CLI, Preview, Builder, Server, Watcher

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 14:21:25 +08:00
KenanZhuandClaude Opus 4.8 d46f702664 refactor(cli): rename preview_cmd.go to preview.go
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 13:44:56 +08:00
KenanZhuandClaude Opus 4.8 73b9bd52f5 fix(themes): restore pre-refactor visual design across all 9 non-aurora themes
Fixes introduced by the CSS class-based refactor (1712f77) that changed
visual layout, spacing, colors, and content rendering:

**Container/border displacement (neon):**
- Move background, border, box-shadow back to .email-wrap (outermost)
- Restore .email-card to padding-only; add color for content inheritance
- Fix link box padding, link label color, button margin, link URL padding

**Layout restructuring (ink, mono):**
- ink: Move button + link-box back into left column (was moved to
  separate full-width row); remove incorrectly-added divider
- mono: Remove incorrectly-added divider; restore link-box margin-top

**CSS specificity conflict (ink):**
- Exclude .email-btn from .card-body a rule to prevent button text
  being overridden to same color as background

**Content class cleanup (neon, terminal, terra):**
- Remove .aurora-content (aurora-specific) copied into other themes
- Replace with theme-appropriate .card-body scoped rules where needed

**Content color/contrast (horizon):**
- Fix .horizon-content in release.tmpl from dark-theme colors
  (#e2e8f0 on white) to light-theme colors matching issue/default.tmpl
- Fix .email-heading color to #1e293b for heading distinction

**register_notify text_3 placement:**
- Restore per-theme original design: inside .email-subtext (mono, ink)
  vs standalone <p> after button (heritage, horizon)
- Move raw text in button row into proper <p> elements

**Button CSS pattern (bloom):**
- Remove redundant inline style/bgcolor from button <td> (already in CSS)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 13:44:24 +08:00
KenanZhuandClaude Opus 4.8 6ae9c97be8 style(aurora): CSS class-based refactor, full i18n, and locale alignment
themes/aurora/ (all 11 tmpl templates):
- Extract all reusable inline styles to CSS classes in <style> blocks
- Organize CSS with /* Section */ comment headers (Base, Header, Card, etc.)
- Clean HTML structure: <tr>/<td> on separate lines, consistent 2-space indent
- Replace all hardcoded English button text with locale.Tr keys
- Add mail.team_invite.text_3 disclaimer notice to team_invite
- Go variable assignments on dedicated lines with proper indentation
- Section comments in Title Case

tools/preview/locale.go:
- Replace LocaleEN with full 60-key official Gitea mail locale
- Add positional format specifier support (%[1]s, %[2]d) in Tr()
- All keys verified against official Gitea locale_en-US.json (100% match)

.gitignore:
- Add preview/rendered.js entry

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 18:51:56 +08:00
KenanZhuandClaude Opus 4.8 a97a9bea1d chore: stop tracking preview/rendered.js — already in .gitignore
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 18:50:07 +08:00