Changelog
What changed, and when.
md2hd is small and moves in whole ideas rather than point releases. Everything here is user-visible; the reasoning behind the less obvious calls lives inDecisions.
The language, the canvas and the panel, plus a public site to explain them. Working and in daily use.
The language
- Every YAML frontmatter block becomes a node; a
---opens a new one only when a YAML key follows, so existing notes keep rendering as they always did. - Four ways to write a link: a
rel:map, any frontmatter value that is a wikilink, an inlineowns:: [[target]]field, and a bare wikilink. - Relationships written from both ends collapse to one line.
_bylabels flip automatically;inverse:declares the pairs that use different words. - Both wordings are kept, so each node states a link in its own voice.
symmetric:for relations with no direction, plus automatic folding when one is written from both sides.- Five weight tiers, named or numbered, independent of type.
- Unreserved frontmatter keys render as labelled rows, with URLs, emails and phone numbers clickable.
The canvas
- Selecting a node lays out its ego network — incoming left, outgoing right — with no crossings by construction.
- Links draw above cards with a dark casing, so a crossing reads as a crossing.
- Relation labels slide along their own path to clear the cards they would hide under, each with a compass badge aimed at the node on the other end.
- Hover falloff by hop distance, and a full-map search that keeps every match in its own colour.
- Drag to arrange; positions persist per map.
Three surfaces
- The panel is one hierarchy —
map ▸ type ▸ node— with the breadcrumb as the lift between the levels. Every surface renders its own ancestors, so there is no back stack. - The type strip on the canvas selects rather than hides: a chip opens that type, standing its nodes forward and letting the rest recede.
- A type hidden from the canvas stays in the strip, struck through, so hiding something never removes the way back to it.
- A config dock on the type and map surfaces sets what a card draws beyond its title. Scopes resolve as “off anywhere means off”, and an overruled chip stays visible and disabled rather than vanishing.
- Hidden types and card artifacts are per session, not per map.
The application
- Import a folder or individual files, or drop them on the canvas.
- The Source tab is a full-height editor on the file a node came from; the map redraws as you type.
- Two sample maps ship with the app and track it until you edit them.
- Everything is stored in the browser. No account, no server, no upload.
This site
- Landing, product tour and four worked use cases.
- Seven guides, from a first map to importing an existing vault.
- The syntax reference, published from the same file the app shows in its syntax sheet.
Something missing, or something broken?
The limits md2hd has on purpose are written down. Anything else is worth reporting.