Modules
An Obsidian-style linked knowledge base for PhoenixKit, backed by real markdown files.
One Leaf.Collab.Room per note, started when somebody opens it.
Where a live document goes: through Notes, onto disk, and into the index.
The one place an error reason becomes a sentence a person reads.
PubSub notifications so a vault open in two browsers — or two people — stays current.
Gettext backend for the knowledge base's own translations.
The [[wiki-link]] index: backlinks, unresolved links, and the resolution
rules that make a bare [[Title]] unambiguous when the filesystem allows two
files to share a name.
Everything this module knows how to read out of a note's markdown: YAML front
matter, tags, [[wiki-links]], and the rendered HTML.
Versioned migration coordinator for phoenix_kit_knowledge_base — the module
returned from PhoenixKitKnowledgeBase.migration_module/0.
Notes and folders, where the filesystem is the source of truth and this table is an index of it.
Centralized path helpers. Every link and redirect in this module goes through
PhoenixKit.Utils.Routes.path/1, which applies the host's URL prefix and the
current locale — PhoenixKit paths are never hardcoded, and relative hrefs
break as soon as the current URL has one more segment than you assumed.
Where a drop-in notes panel's notes live.
Reconciles a vault's index with what is actually on disk.
Route macros for the knowledge base's four admin pages. Returned from
PhoenixKitKnowledgeBase.route_module/0; PhoenixKit injects these inside the
admin live_session, so authentication and the admin layout are applied
automatically.
An index row for a directory inside a vault.
An index row for one markdown file.
One [[wiki-link]] from a note to a title in the same vault.
A vault — one self-contained space of notes, folders and links.
One person's access to one vault.
The filesystem layer. Files on disk are the source of truth; Postgres is an index of them.
Vault CRUD, membership, and the access model the whole module funnels through.
Function components to drop into a host app's pages.
The vault list (/admin/knowledge-base) — every vault this user may open,
split into the three groups that mean different things: organisation-wide
vaults, your own, and personal vaults other people have shared with you.
Per-vault membership (/admin/knowledge-base/:vault/members) — who can open a
vault, and what they can do in it.
Notes you can drop into any page: a small file list and an editor for one folder of a vault, named by a path.
The vault workspace — one LiveView serving three routes, so moving between notes patches the note pane instead of remounting the sidebar
Mix Tasks
Reconciles vault indexes with the markdown files on disk.