Chalk Manual

Chalk is the language internotes are written in: prose first, with a canvas beside it. This is its reference — a page for every construct, the types its attributes accept, and the constraints the language assumes but cannot check.


By section

A section that documents one kind of construct is lit and badged with it — nodes blue, micronodes teal, directives purple, the same three colours the badges carry throughout. A section that mixes kinds takes no kind colour.

The languageThe grammar every construct follows — sigils, heads, brackets, identifiers, attributes and comments.7 pagesThe documentA file’s skeleton: the starred header it opens with, the scenes and steps it is divided into, and the sources it declares.5 pagesContentProse, maths, tables, formatting and live values — one vocabulary, accepted in a scene's narrative and on its canvas alike.31 pagesGraph environmentThe plotting surface and everything that may be drawn on it: curves, data, fits, surfaces, marks and axis annotations.Nodes31 pagesCode environmentCode on the canvas, in chunks that cues can address.Nodes2 pagesGeographic environmentThe map surface and everything drawn on it: boundary layers, a dataset joined to regions, places, routes, and the scrubber that carries them through time.Nodes5 pagesDiagram environmentAn uploaded image annotated with pins, or a flowchart the environment arranges itself: boxes, the arrows connecting them, and a camera that glides into whatever the narrative reaches.Nodes4 pagesAnimation & interactionWhat a document does rather than what it holds: the motion an author choreographs, and the controls a reader is handed.12 pagesDirectivesThe nine @-constructs the compiler consumes: constants and datasets, templates, includes and packs, and conditional compilation.9 pagesWriting internotesThe judgements the language assumes but cannot check, in the order they are made: what a document covers, how its narrative and canvas hold together, where its numbers come from, and the pass that finishes it.13 pagesReferenceEvery construct A–Z, the attribute types their values are parsed as, and the packs you can import.3 pages

Writing internotes

The judgements the language assumes but cannot check — what a document covers, how its narrative and canvas hold together, where its numbers come from, and the pass that finishes it. In the order the decisions are made, and the one part of the manual meant to be read front to back. Each page also appears on the constructs it governs.

What a document coversOne topic, the constructs that topic needs, and the length covering it takes.Prose & canvas stateProse analyses the state the canvas is in. It never captions the interface.Prose & headingsWhat the narrative carries that the picture cannot, and headings a reader can navigate by.CalloutsOne job each, and a definition written to survive in a glossary beside definitions from other documents.Selecting canvas contentA mark belongs on the canvas only if seeing it changes what the reader understands.Framing a readable graphThe frame, the defaults, the room a label needs, and the one meaning a hue carries through a document.Parameters & cuesThe range criterion: a change belongs to a parameter when one sentence holds across its whole range, and to a cue otherwise.Reading computed values in proseA number the canvas computes is read from the construct with a {{…}} expression rather than typed into the prose.Checking a document's claimsEvery number derived, every output quoted from a run, every external fact checked or cut — and the source cited.Code environment execution modelA code environment shows a procedure. Its output is authored; a runnable environment may also be run by the reader, but nothing it prints produces canvas content.Data provenanceA canvas shows data its author has seen. Reader-supplied data arrives by forking, with authorship attached.Source styleThe conventions that keep a .chalk file legible to the next person editing it by hand.The final passTwo passes over a finished draft: whether it is the right document, and whether it holds together.

Look something up

For language models

The whole manual as one Markdown file, in reading order, for pasting into a context window: llms-full.txt. Every reference page also offers itself as Markdown from the copy button in the topbar.