md2hd

Guide5 min read

Reading a map

Focus, hover, search, the map ▸ type ▸ node trail and the config dock — what every part of the canvas is for once the map is drawn.

The canvas is for reading. Writing happens in your own editor, or in the Source tab, which is a plain full-height editor on the file a node came from.

Focus

Click a node and the map lays out its ego network: what points at it on the left, what it points at on the right, itself in the middle. That arrangement has no crossings by construction, which is the point — highlighting a neighbourhood inside a tangle still leaves a tangle.

Click the background and the full map comes back exactly as you arranged it. Ego placement is never saved.

Focus is one hop deep. Deeper neighbourhoods are read from the Connections list in the panel, which has room for them.

Reframe on open, in the map surface’s config dock, turns reframing off if you would rather the map held still and only dimmed.

Hover

Hovering a card applies the same falloff without moving anything:

Distance from the node How it draws
The node itself Full, selected treatment
One link away Border pulled toward the type colour
Two links away Dimmed
Beyond Nearly out

Search filters the whole map at once. Matches keep their own colour and take the brand border; everything else drops back far enough to disappear without leaving the layout.

It overrides focus and hover, so a search is always the thing you are looking at. The toolbar reads breadcrumb-first and search-last: where you are on the left, what you are looking for on the right, because the trail is read constantly and the search is used in bursts.

Three surfaces

A map raises three questions — what is this, what else is like it, what is in here — so the panel is three surfaces of one hierarchy rather than a detail view with lists bolted on:

Partnerships  /  Program  /  Open Records Portal
     map              type            node

The breadcrumb above the panel header is how you move between them. Every surface renders its own ancestors, so clicking a crumb is the only navigation the panel needs and there is no back stack to get wrong. The close control sits at the end of the trail, because the trail is the one row every surface shares.

The node surface is the detail view described below.

The type surface itemises every node of that type — title, subtitle, tags and link count — and carries a config dock along the bottom.

The map surface does the same one level up: every type, its count, and the visualization config for the whole map.

The type strip

The chips along the top of the canvas are the map’s own breadcrumb, not a filter row. Clicking one opens that type’s surface: the set stands forward on the canvas and everything else recedes, which is the same treatment a search match gets — on screen, “show me the programs” and “find portal” are one gesture.

Hiding a type from the canvas is a toggle — Drawn, in that type’s own dock, or the SHOW row on the map surface, which carries every type at once. A hidden type still appears in the strip, struck through, so the control that hid something never removes the way back to it.

The config dock

Anchored under the scrolling list on the type and map surfaces. It sets what a card draws beyond its title — type, link count, subtitle, tags — so a map can carry terse people beside verbose programs.

Scopes resolve as off anywhere means off. The map surface can silence an artifact everywhere; a type can only turn its own off, never override the map back on. A chip the map has overruled stays visible and disabled rather than disappearing, because a control that vanishes when it stops applying teaches you nothing.

Hidden types and card artifacts are per session, not per map. They reset when you open another map and are not saved.

The detail panel

Selecting a node opens the panel on the right. It carries, in order:

  • The type and weight, then the title and subtitle.
  • Tags.
  • The description, if the node has one.
  • Every unreserved frontmatter key as a labelled row. URLs, bare domains, email addresses and phone numbers are clickable.
  • The note itself — everything under the frontmatter, rendered.
  • Connections, grouped by relation.

Each connection heading shows this node’s wording for the relationship and, beside it, the other node’s. This is the one place both voices appear at once; the canvas shows only the voice you are reading from.

Click any connection to move to that node.

The Source tab

The panel’s second tab is the file the node came from, as text, editable. The map redraws as you type.

This is where editing lives because the canvas is for reading, and because node editing on the canvas would need a schema-aware form per type — and types are yours to invent, so there is no schema to build a form from.

Edits are saved to the copy of the map in your browser. They are not written back to the file on disk.

Worth knowing because it looks deliberate and is: every link draws over the cards, with a dark casing so a crossing reads as a crossing.

Underneath, a link passing behind an unrelated card disappears at one border and reappears at another, which reads as two short links terminating on that card. Every phantom relationship reported while md2hd was being built was this.

The card you hover or select lifts above the link layer, so nothing unrelated is painted across the thing you are reading.

Labels

A relation label is a mono chip sitting on its line, with a compass badge outside its stroke rotated to the true bearing of the node it refers to.

Crowded labels slide along their own path, never across it — a chip floating beside a line reads as attached to nothing — and keep sliding until they clear any card they would otherwise hide under.

Keyboard

Esc closes the panel and the syntax sheet, and clears the search field when it has focus. Everything else is pointer work.

On the canvas the zoom stack sits above the minimap in the bottom-right corner — the controls are reached far more often than the map is read, so they take the corner nearest your hand.