Fork of DanielCheer/obsidian-web-viewer (MIT, 2026-04) with Lukas' first additions for the Hermes Wiki workflow. Additive customization layer (vault-custom.js) — keeps upstream-merge trivial via a one-line script tag in vault.html. Features added: 1. Current-page highlighting in 3D Graph — current node gold+glow, connected nodes light-blue, others dim to 20% opacity 2. Click-to-navigate on graph — Three.js raycaster triggers file load 3. Responsive layout — graph collapses below 1024px, tree below 768px 4. URL-based deep-linking via ?file=<path> query param 5. Server-side ?file= support in /api/vault/file/ endpoint Modified files: - server.py: +7 lines (Lukas-add: ?file= query param parsing) - vault.html: +1 line (script tag for vault-custom.js) New files: - vault-custom.js: 11KB, all customizations in one place under HermesCustom namespace - README.md: fork intro, quick start, customization guide - CHANGELOG.md: Lukas-additions tracking - docs/ARCHITECTURE.md: design rationale - docs/CUSTOMIZATIONS.md: feature spec - .gitignore: standard 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
3.0 KiB
3.0 KiB
Changelog — Lukas' Additions
All notable changes to this fork are documented here. Upstream-tracking via DanielCheer/obsidian-web-viewer.
v0.2.0 — 2026-07-16 — Lukas' first additions
Added
vault-custom.js— additive JavaScript layer with three features:- Current-page highlighting in 3D Graph: node representing the open file becomes gold with glow; connected nodes (via WikiLinks) become light-blue; unrelated nodes dim to 20% opacity
- Click-to-navigate on 3D Graph: Three.js raycaster triggers
loadFile()on node click; URL updates with?file=<path>query param - Responsive layout: at viewport <1024px the 3D graph collapses to a 200px bottom panel; at <768px the tree collapses to a hamburger menu and graph hides entirely
- One-line patch in
vault.html:<script src="vault-custom.js"></script>before</body>(single source of upstream-merge friction) - 7-line patch in
server.py:?file=<path>query parameter support on/api/vault/file/for clean URL navigation docs/ARCHITECTURE.md: design rationale (why additive layer, why HermesCustom namespace, what tradeoffs we accepted)docs/CUSTOMIZATIONS.md: feature spec with code pointersREADME.md: Lukas-authored intro, Quick Start, customization guide, upstream-merge procedure
Preserved from upstream
- Catppuccin-dark theme
- Three.js 3D graph
- File tree sidebar with collapsible folders
- WikiLink resolution with search fallback
- Full-text search
- Frontmatter-as-card rendering
- Python stdlib only (no Flask/FastAPI dependency)
Migration notes
If you're coming from upstream obv:
python3 server.py --vault <your-vault> --host 127.0.0.1 --port 8765works as before- The Tailscale-URL gets
?file=query params on navigation (deep-linkable) - Customizations only kick in if
vault-custom.jsis reachable from the same origin (it is, served by the same server.py)
v0.1.0 — 2026-04 — Upstream baseline
Forked from DanielCheer/obsidian-web-viewer @ commit master on 2026-07-16. No modifications yet.
Roadmap
Next planned additions (in priority order):
- Backlinks panel — for each loaded file, show incoming WikiLinks (which other files link to this one). Adds a third collapsible panel on the right or merges into graph context menu.
- Keyboard shortcuts:
j/k— next / previous file in current folder[/]— back / forward in navigation historyg— focus 3D graph/— focus search box
- Light theme variant — Catppuccin-Light alongside Catppuccin-Dark, toggle in header
- Recent files section — show last 10 visited files in tree sidebar
- Graph filters — toggle to show only current-folder nodes, only connected nodes, etc.
Lukas' note: each new addition should remain in vault-custom.js. If it can't fit there cleanly, it's a sign that the addition deserves its own script tag (loaded after vault-custom.js).