@recollectoften/content
v0.5.0
Published
The decks-as-code file format: markdown fidelity layer, card/deck/folder codecs, and the canonical entity hash of specs/decks-as-code.md.
Readme
@recollectoften/content
The decks-as-code file format used by @recollectoften/cli:
the markdown dialect, the card / deck / folder file codecs, and the canonical entity hash that
decides which cards actually changed.
This is an implementation detail of the CLI, not a general-purpose library. It is published
because the CLI depends on it, and the two are pinned to an exact matching version — both compute
the hash that drives change detection, and a mismatched pair could disagree with the server about
every card in a repository. Install @recollectoften/cli
instead; it brings this with it.
The API is not stable and may change in any release.
What it provides
| Export | What it does |
|---|---|
| markdownToDoc, docToMarkdown | The markdown dialect the app's editor reads and writes |
| docToFileMarkdown, fileMarkdownToDoc | The prosemirror-json fidelity fence, for what markdown cannot express |
| parseCardFile, writeCardFile | The card file: frontmatter and the <!-- answer --> split |
| parseDeckFile, writeDeckFile | deck.yaml |
| parseFolderFile, writeFolderFile | _folder.yaml |
| slugify | Cosmetic directory and file names |
| canonicalize, canonicalJson, canonicalDocJson | The canonical form of a document |
| cardHash, deckHash, folderHash, normalizeTags | The entity hash change detection compares |
Failures throw a FileError carrying a machine-readable code (missing-sentinel,
duplicate-sentinel, bad-frontmatter, unknown-frontmatter-key, bad-fence, and the
yaml-file codes) and, where the failure has a position, the 1-based line.
Licence
Proprietary. See LICENSE.md, and THIRD-PARTY-NOTICES.md
for the open-source components it depends on.
Bugs and feedback: https://recollectoften.com/?feedback=1
