feat(dev): add live-reload dev server with Juice CSS inlining

- tools/server/: Node.js dev server (Express + WebSocket + fs.watch)
  Watches themes/ for .tmpl changes, rebuilds via Go preview command,
  applies Juice CSS inlining for email client compatibility, pushes
  live reload to browser via WebSocket.
- tools/cli/dev.go: 'go run . dev' subcommand — starts Node.js server
  with automatic npm install, initial preview generation, and
  Ctrl+C graceful shutdown.
- tools/tools.go: register dev command in CLI app.
- .gitignore: add node_modules exclusion.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
KenanZhuandClaude Opus 4.8 committed 2026-06-04 13:50:57 +08:00
1 parent 0bf982ffb9
commit 05d76a90af
6 files changed
+377

No files matched your search

+16
View File
@@ -0,0 +1,16 @@
{
"name": "gitea-mail-templates-dev",
"version": "1.0.0",
"private": true,
"description": "Live-reload dev server with Juice CSS inlining for Gitea Mail Templates",
"type": "module",
"scripts": {
"start": "node server.mjs",
"inline": "node inliner.mjs"
},
"dependencies": {
"express": "^5.1.0",
"express-ws": "^5.0.2",
"juice": "^11.0.0"
}
}