feat: integrate HTML template engine with theme selection

- Add theme configuration to WebServer struct
- Create default theme with base.html layout template
- Update content.go to apply theme templates to generated HTML
- Output is now full HTML documents with styling

Co-Authored-By: Claude (glm-5) <noreply@anthropic.com>
This commit is contained in:
2026-03-05 02:17:12 +01:00
parent a1d054dfe4
commit 1d47c5a930
5 changed files with 131 additions and 5 deletions

10
PLAN.md
View File

@@ -10,7 +10,7 @@
## Current Status
- [x] Project backbone exists (HTTP server, graceful shutdown, config reading).
- [x] Markdown parsing logic implemented (using goldmark).
- [ ] HTML Template engine integrated (Hugo-like theme selection).
- [x] HTML Template engine integrated (Hugo-like theme selection).
- [ ] PDF Generation implemented (Pure Go library selected and integrated).
- [x] CLI Mode (`gocv`) generates static files to `./output` and exits.
- [ ] Serve Mode (`gocv serve`) hosts HTML and serves PDF on demand.
@@ -19,11 +19,12 @@
## Active Task
- [x] Analyze existing backbone code and integrate Markdown parsing.
- [ ] Integrate HTML template engine with theme selection.
- [x] Integrate HTML template engine with theme selection.
- [ ] Implement Serve Mode with file watching for live reload.
## Known Issues / Blockers
- [ ] Identify best Pure Go PDF library that supports HTML/CSS (or define CSS subset).
- [ ] Current output is raw HTML fragments without full HTML document structure.
- [x] Current output is raw HTML fragments without full HTML document structure.
## Completed Log
- [x] Initial project structure defined.
@@ -31,3 +32,6 @@
- [x] CLI mode vs Serve mode distinction implemented (checks os.Args[1] for "serve").
- [x] Content reading from `./content` directory implemented.
- [x] Markdown to HTML conversion using goldmark library.
- [x] Theme system with templates/themes/{theme}/base.html structure.
- [x] Config.yaml theme setting (defaults to "default").
- [x] Output now generates complete HTML documents with styling.