Add plugin: Sync Vault with GEML - #893
Conversation
|
Ready for review — the submission checklist, with links:
One thing worth flagging rather than leaving to be discovered: the plugin alone does not write files. A 2.0 plugin runs in a sandboxed iframe with no arbitrary-path filesystem, no git and no shell, so this one does only what it can — hears Happy to change anything that does not fit the marketplace's conventions. |
|
Update — now at Three things changed that are worth stating for review:
The plugin half is unchanged throughout: still the debounced |
|
The marketplace PR (#893) is still in review, so until it
Stuck? |
New plugin: Sync Vault with GEML
packages/logseq-plugin-sync-vault-with-geml/— manifest.json + iconv2.2.0, plugin zip attached)supportsDB: true,supportsDBOnly: true,effect: falseSync Vault with GEML keeps a Logseq DB graph continuously synced to a local folder of readable plain-text files — GEML: as readable as the Markdown export, as lossless as the EDN one — so a DB graph can be diffed, versioned and backed up as text, and imported back again.
Why the in-app half is deliberately small. A 2.0 plugin runs in a sandboxed iframe: no arbitrary-path filesystem, no git, no shell. So this plugin does only the two things only it can do — hear the graph change (debounced
DB.onChanged) and write a marker file through the plugin storage API, then show the last sync result in the toolbar. Everything with side effects lives in a companion command-line watcher (npx @geml/logseq-sync), which exports through the CLI that ships inside the Logseq desktop app, writes only the files that changed, and commits scoped strictly to the vault. The two halves meet in the plugin's own storage directory — a file as the bridge, so there is no port, no server and no CORS.Users who install the plugin alone get the status light and the settings; the README says plainly that the watcher is the other half and how to start it.
Community discussion: https://discuss.logseq.com/t/35193