shtukbase
Format
Download for Mac
Format
Contents

Dynamic blocks

A dynamic block is an ordinary piece of Markdown that begins with a recognisable label. It lives wherever the text needs it — in the middle of a specification page, a guide, a note — and the block index finds every one, so a dynamic collection can gather them into a table without anyone moving a file.

The label grammar

A block's first run of bold text is its label. A label is an identifier (AREA-N.), a kind word (Term:, Open:), or both. Everything until the next blank line is the block's body; a following indented or quoted run may extend it.

**WS-3.** A space folder is a bundle, and its declaration sits at the top
of it.

**Term: bundle.** One folder of Markdown files read as a whole — the unit a
project, a space and a library all are.

**Open: OKF-12.** Does a dynamic collection ever cache its members?

For an entity whose body is several blocks long, the label is a heading:

#### MECH-72 — dragging a row reorders the ranks
The gesture writes new `rank` values into the affected records and nothing
else…

Why this shape

  1. It reads as text. On GitHub and Obsidian these are bold sentences and headings — the way a legal text numbers its clauses. No fences, no JSON.
  2. It is findable. The pattern is a shape (text clause with placeholders); the block index records label, kind, body and the page it stands on.
  3. The identifier is the identity. WS-3 is minted once, never reused, and survives the paragraph moving to another page.

Gathering

A dynamic collection collects blocks the same way it collects documents: its declaration is a direct collections/clauses.md file.

type: Collection
title: Clauses
itemType: Block
items:
  mode: query
  from: workspace
  query:
    version: 1

The table's rows are the blocks; opening a row goes to the block on its page. The label index supplies the matching block candidates. The declaration shape and strict query-v1 grammar are owned by Dynamic collections.