mirror of
https://github.com/Nystik-gh/ignis.git
synced 2026-06-17 04:35:53 +00:00
3.1 KiB
3.1 KiB
What works
Most of Obsidian's features work in Ignis. Some have gaps or workarounds, and Ignis also adds things that make sense for running Obsidian in a browser.
Obsidian features that work
- All core editor features: markdown, canvas, bases, and the command palette.
- Context menus throughout the UI.
- Image rendering, inline image URLs, and image paste from the clipboard.
- Print to PDF, via a hidden popup iframe.
- Mobile UI auto-activates when the window is under 600 px wide.
- Themes and CSS snippets.
- Most community plugins built on Obsidian's plugin API.
- Cross-origin plugin requests via
requestUrlandfetch, proxied through the server. - Obsidian Sync, in self-hosted deployments with a logged-in browser tab open.
What doesn't work
- Plugins that depend on Node native modules or
child_processwon't load. - Streaming
zlibclasses (createGzip,createDeflate, etc.) aren't implemented. The synchronous and callback variants work viapako. - The synchronous file picker (
dialog.showOpenDialogSync), used by plugins like Importer, has a staged-files workaround: the shim asks you to pick once and serves the result on retry. Usable but rough. safeStorageis passthrough by design:isEncryptionAvailable()returnsfalseandencrypt/decryptare no-ops, so anything plugins store viasafeStorageends up as plaintext on disk. A server-side encrypted option is planned but not yet implemented.
What Ignis adds
Vaults
- Custom UI for Obsidian's multi-vault support. Create, open, switch, rename, and delete vaults.
- Different vaults can be loaded in different browser tabs.
Files
- File upload from the local machine: ribbon icon, right-click on a folder -> Upload file, or drag-and-drop into the UI.
- File and folder download: right-click any note for Download, or any folder for Download as ZIP.
Multi-tab and workspaces
- Live file sync between browser tabs via WebSocket. Open the same vault in two tabs and edits propagate within a second.
- Saved workspaces opened in separate browser tabs via a
?workspace=URL parameter, so each tab can hold a different layout of the same vault. - An "Open workspace in tab" command added to the command palette by the bridge plugin.
Sync
- Obsidian Headless is implemented as a server-side plugin for continuous sync without needing an active browser tab. Only one of Obsidian Sync or Obsidian Headless can run per vault.
Server integration
- Server-side plugin system, separate from Obsidian's community plugin system. (WIP)
- Ignis-specific settings shown as their own tabs inside Obsidian's Settings modal.
- Status bar indicators for server state and headless sync activity.
Performance note
- Pre-compressed bootstrap response covering vault info, vault list, metadata tree, and plugin list.
- Indexer pre-fetch warms the content cache so Obsidian's startup index hits cache instead of the network.
- LRU content cache (50 MB by default) so Ignis doesn't hold the whole vault in memory at once. Memory use stays bounded regardless of vault size.
- Write coalescing for slow filesystems (rclone, FUSE, NFS, SMB).