An Obsidian companion for the Idealogs platform. View, link, and annotate Idealogs articles from your vault — and send your annotations back to Idealogs to see them rendered on the site, just for you.
Article kinds are identified by an ID prefix: Tx = Writing, Fx = Question, Ix = Insight.
[[@ search trigger — type [[@ in the editor to open a live article-search modal (debounced search, type filter, pagination, content preview, keyboard navigation).[[@TxID.a]] with an auto-incrementing hex sub-ID; Questions/Insights insert [[@FxID]] / [[@IxID]]. Pasting links rewrites them so every link in a document gets a unique hex ID.@Tx → [1], [2]…, @Fx → [?], @Ix → [!].Title. body: inline comment; placing the cursor inside it auto-populates the Comment form, where you pick a target article and text range.[[@Tx…]] link to open the article and a pre-filled Note form anchored to the link's line context..idealogs/annotations/, written into both the source and target article files; edits reuse a stable UUID.@Fx / @Ix link downloads the article into your vault and tracks it; tracked files are auto-trashed after a configurable delay once closed (reopening cancels deletion).This is the workflow for authoring annotations in Obsidian and viewing them on the Idealogs site.
Title. body: line. Put your cursor inside it, fill in the Comment form (target article + text range), and save.[[@Tx…]] link and filling in the Note form.Annotations are private to you: they exist only in the browser you synced them into and are never sent to or stored on the Idealogs servers. Re-run the sync in each browser where you want to see them.
.annotations files into the current JSON schema.npm install
npm run dev # esbuild watch (writes main.js)
npm run build # type-check + minified production build
npm test # jest
Backend endpoints (API_ENDPOINT, ANNOTATION_ENDPOINT) are injected at build time via esbuild from .env in development.
After changing source, rebuild and reload the plugin in Obsidian (toggle it off/on) — Obsidian runs the built
main.js, so a stale build silently runs old code.