Context Vigilance
The why beneath the code
Specs, habits, and reflections that shape how LFM is built. Versioned context, intentionally legible. The full LFM spec lives in astro-knots ; this page collects the LFM-specific notes that ride alongside the package.
specs
-
Maintain Project Task Management with LFM
One checkbox line that reads correctly in Obsidian and on GitHub, and only becomes queryable data when LFM is asked.
-
Maintain Path Resolution for Wikilinks
How vault paths become site routes — the index cascade, why ambiguity refuses to guess, and the rule that every judgment call is a config field rather than a decision baked into the package.
-
Maintain Eyebrow, Heading and Subheading Blocks
Cards have had a three-part heading for years — eyebrow, heading, subheading — and long articles need it more than cards do. Three adjacent lines, one semantic unit, one `<hgroup>`, and only the middle one ever reaches the table of contents.
-
Maintain Heading Anchors And Share Links
A fragment URL is a public contract, and we currently ship two incompatible definitions of it. This moves anchor identity into LFM as data, leaves the share affordance in the render layer, and fixes collisions nobody is handling.
-
Maintain an Elegant Markdown and Extended Markdown Render Pipeline
-
Render AST in Debug
Exploration of AST structure at each stage of markdown processing to understand how to handle callouts
-
Maintain Figma Object Embeds Using Embed Kit
Embed live Figma files, frames, and prototypes inside markdown via the `:figma-embed` text directive — width, height, and auth-user as attributes.
-
Maintain Directives In Extended Markdown Render Pipeline
Directives bring MDX like component rendering using special extended markdown syntax.
reminders
issues
-
Heading Outline Cannot Distinguish Container Headings from Document Headings
`tree.data.headings` collects a `###` inside a `> [!info]` callout as a document section — right for anchors, wrong for a table of contents.
-
JSR Export Map Omits the Formats Subpaths
`deno.json` declares two exports; `package.json` declares six. The four it omits are the entire code-fence format registry — so the feature 0.4.1 was built around is unreachable for every consumer that installs from JSR, which is all nine of them.
-
Workspace vs JSR for LFM Consumers
Why most consumer sites should pin @lossless-group/lfm to JSR while exactly one acts as the local workspace sandbox — and the boring deploy-host failure mode that forces the discipline.
blueprints
-
Maintain Table of Contents from the Heading Outline
`remarkHeadingIds` already attaches a ToC-ready outline. Nobody renders it: the outline is flat and can't flag headings buried in a callout.
-
Conditional Component Rendering in Layout Pipelines
Implement flexible layout component rendering with optional parameter controls for InfoSidebar and TableOfContents suppression
-
Maintain Embeddable Slides