How runyao-zhang/crystal-vault works
Crystal Vault turns Markdown notes and folders into an interactive knowledge workspace, with a principal workflow of opening the vault, navigating crystals and their links, then reading source documents beside the structure and creating or editing cards in place. The graph includes the documented desktop, story-line, review, import, and file-backed layout capabilities. Some feature modules are unsampled; their nodes and links are included only where the README or source index supports them.
Main entry points: app.js App Controller · adapter.js Adapter Contract · reader.js Document Reader · server.js Bridge Server
Components 22
Workspace UI
- App Controller
src/core/app.js - Crystal Browser
src/core/crystals.js - Window Desk
src/core/desk.js - Floating Windows
src/core/floatwin.js
Crystal Knowledge
- Knowledge Model
src/core/model.js - Card Metadata
src/core/frontmatter.js - Story Line
src/core/storyline.js - Folder Boxes
src/core/storyboxes.js - Box Sidecars
src/core/boxfile.js - Link Directions
src/core/linksides.js
Reading Workspace
- Document Reader
src/core/reader.js - Structure Window
src/core/embedstory.js - PDF Support
src/core/pdfdoc.js
Host Adapters
- Plugin Entry
src/entry-plugin.js - Obsidian Entry
src/entry-obsidian.js - Adapter Contract
src/adapter.js - Web Adapter
src/adapters/fake.js
Companion Bridge
- Floating Companion
src/companion.js - Bridge Server
src/bridge/server.js - Bridge Protocol
src/bridge/protocol.js - Remote Adapter
src/adapters/remote.js
Other components
- User
Connections 31
- User → Plugin Entry: opens vault
README.md - Plugin Entry → Obsidian Entry: loads host
src/entry-plugin.js - Obsidian Entry → App Controller: mounts
src/entry-obsidian.js - Obsidian Entry → Adapter Contract: implements
src/entry-obsidian.js - App Controller → Adapter Contract: uses
src/core/app.js - App Controller → Crystal Browser: renders
src/core/app.js - App Controller → Knowledge Model: refreshes relations
src/core/app.js - Crystal Browser → Knowledge Model: builds view from
src/core/crystals.js - Knowledge Model → Card Metadata: parses card fields
src/core/model.js - Knowledge Model → Adapter Contract: resolves links through
src/core/model.js - User → Story Line: explores links
README.md - Story Line → Folder Boxes: shows folder boxes
README.md - Folder Boxes → Box Sidecars: loads and saves
src/core/storyboxes.js - Story Line → Link Directions: uses link directions
README.md - User → Document Reader: reads documents
README.md - Document Reader → PDF Support: loads PDF support
src/core/reader.js - Document Reader → Structure Window: opens structure window
src/core/reader.js - Document Reader → Window Desk: uses document desk
src/core/reader.js - Window Desk → Floating Windows: manages windows
README.md - Document Reader → Adapter Contract: reads and writes through
src/core/reader.js - User → App Controller: creates and edits cards
README.md - App Controller → Card Metadata: updates card fields
src/core/app.js - User → Floating Companion: opens floating companion
README.md - Floating Companion → Bridge Server: connects to
src/companion.js - Bridge Server → Bridge Protocol: checks contract
src/bridge/server.js - Bridge Server → Adapter Contract: forwards host adapter
src/bridge/server.js - Remote Adapter → Bridge Protocol: uses protocol
src/adapters/remote.js - Remote Adapter → Bridge Server: requests host services
- Plugin Entry → Bridge Server: starts companion bridge
src/entry-plugin.js - User → Web Adapter: uses web version
- Web Adapter → Adapter Contract: implements
src/adapters/fake.js