Files
agentandClaude 677a8dde4f Initial commit: hermes-wiki-viewer v0.2.0
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>
2026-07-16 15:17:16 +00:00

56 lines
3.0 KiB
Markdown

# Changelog — Lukas' Additions
All notable changes to this fork are documented here. Upstream-tracking via [DanielCheer/obsidian-web-viewer](https://github.com/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 pointers
- **`README.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:
1. `python3 server.py --vault <your-vault> --host 127.0.0.1 --port 8765` works as before
2. The Tailscale-URL gets `?file=` query params on navigation (deep-linkable)
3. Customizations only kick in if `vault-custom.js` is 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`](https://github.com/DanielCheer/obsidian-web-viewer) 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 history
- `g` — 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`).