How mghurryo/ink-notes works
Ink Notes is an Obsidian plugin for handwriting notebooks and PDF annotation, with vault-backed storage and shared editing tools. Users open or create a notebook, or open a PDF in a separate handwriting view; they edit pages and can export annotated PDFs while preserving the source. The map includes the documented image, sticky-note, lasso, and page-organization capabilities. Some links reflect README workflows; sampled excerpts and the source index support the internal module relationships shown, but not every runtime dispatch was visible.
Main entry points: view.ts Notebook view · pdf-view.ts PDF handwriting view · main.ts Plugin commands · ink-writing.ts Shared ink editor
Components 25
Plugin and navigation
- Plugin commands
src/main.ts - Notebook view
src/view.ts - Notebook picker
src/notebook-modal.ts
Writing and editing
- Shared ink editor
src/ink-writing.ts - Tool controls
src/tool-state.ts - Brush settings
src/brush-popover.ts - Lasso clipboard
src/lasso-clipboard.ts
Notebook content
- Image library
src/image-library.ts - Sticky notes
src/sticky-notes.ts - Page tags
src/page-tags.ts - Notebook model
src/model.ts - Sticky data model
src/sticky-model.ts - Sticky rendering
src/sticky-rendering.ts
PDF annotation
- PDF handwriting view
src/pdf-view.ts - PDF viewer selection
src/pdf-takeover.ts - PDF sidecar model
src/pdf-sidecar.ts - PDF sidecar storage
src/pdf-store.ts - PDF export
src/pdf-export.ts
Storage and rendering
- Vault notebook storage
src/storage.ts - Storage codec
src/storage-codec.ts - Ink rendering
src/rendering.ts - Tiled rendering
src/tiles.ts - Background worker service
src/worker-service.ts - Worker protocol
src/worker-protocol.ts
Other components
- Obsidian user
Connections 30
- Obsidian user → Plugin commands: opens commands
README.md - Plugin commands → Notebook picker: opens picker
README.md - Plugin commands → Notebook view: opens notebook
README.md - Obsidian user → PDF handwriting view: opens PDF notes
README.md - Plugin commands → PDF viewer selection: selects viewer
README.md - Notebook view → Shared ink editor: uses editor
src/view.ts - PDF handwriting view → Shared ink editor: uses editor
src/pdf-view.ts - Shared ink editor → Notebook model: edits notebook
src/ink-writing.ts - Notebook view → Vault notebook storage: reads and saves
src/view.ts - Vault notebook storage → Storage codec: encodes data
src/storage.ts - Vault notebook storage → Notebook model: normalizes and merges
src/storage.ts - Notebook view → Tool controls: configures tools
src/view.ts - Tool controls → Brush settings: uses settings
src/tool-state.ts - Shared ink editor → Tiled rendering: renders ink
src/ink-writing.ts - Tiled rendering → Ink rendering: draws strokes
src/tiles.ts - Notebook view → Image library: manages images
src/view.ts - Notebook view → Page tags: organizes pages
src/view.ts - Notebook view → Sticky rendering: renders stickies
src/view.ts - Sticky rendering → Sticky data model: renders data
- PDF handwriting view → PDF sidecar model: normalizes notes
src/pdf-view.ts - PDF handwriting view → PDF sidecar storage: reads and saves
src/pdf-view.ts - PDF sidecar storage → PDF sidecar model: uses sidecar model
src/pdf-store.ts - PDF handwriting view → PDF export: exports annotations
src/pdf-view.ts - Notebook view → PDF export: exports notebook
src/view.ts - Notebook view → Background worker service: uses background work
src/view.ts - PDF handwriting view → Background worker service: uses background work
src/pdf-view.ts - Background worker service → Worker protocol: exchanges messages
src/worker-service.ts - Worker protocol → Storage codec: serializes notebooks
src/worker-protocol.ts - Plugin commands → PDF handwriting view: registers PDF view
src/main.ts - Notebook view → Lasso clipboard: offers clipboard actions
src/view.ts