预览
原始资料预览
Wiki frontend Apple rewrite
Date: 2026-04-19
App path: ~/.hermes/wiki-ui
Public URL: https://wiki.hazim.work
Goal
Move the personal wiki frontend from a dark devtool-style workspace toward an Apple-inspired Chinese knowledge workspace without breaking the Markdown-first filesystem architecture.
Stack
- FastAPI SSR + Jinja2 templates
- Vite asset pipeline with manifest-aware bundle loading
- HTMX for section filter and pin-management partial refresh
- Alpine.js for page detail TOC/meta toggles and raw image lightbox state
- Native CSS using tokens +
@layer - pytest + Playwright for verification
What changed
- Added
static/dist/manifest.jsonasset loading fallback inapp.pyandbase.html - Bootstrapped
frontend/with Vite, TypeScript, HTMX, Alpine, and Playwright config - Replaced dark token baseline with Apple-style light/dark token system and semantic CSS layers
- Rebuilt home hero into a search-first Apple-style workspace while keeping Chinese UI text
- Added HTMX fragment rendering for section result refresh
- Added Alpine reader shell controls for page TOC and metadata disclosure
- Added raw image lightbox interaction while keeping PDF iframe fallback and download path
- Converted pin add/remove flows to HTMX partial refresh with out-of-band pinned-card updates
- Added Playwright browser coverage for home, section, page, and raw detail views
Verification
python -m py_compile /root/.hermes/wiki-ui/app.pypython -m pytest /root/.hermes/wiki-ui/tests/test_frontend_assets.py -q→ 4 passedpython -m pytest /root/.hermes/wiki-ui/tests/test_app_smoke.py -q→ 19 passedcd /root/.hermes/wiki-ui/frontend && npm run buildcd /root/.hermes/wiki-ui/frontend && npm run test:e2e→ 4 passedsystemctl restart wiki-ui.service- local + reverse-proxied route checks returned 200 for home, section, page, raw, and remote host route
Notes
htmx.orgstill emits a build-time directevalwarning during Vite/Rolldown bundling, but build output succeeds.- Playwright browsers were installed locally so browser automation now works on this machine.