Manual
Overview
Language
IntroductionScenes & structureText & inlineGraphsCode panesAnimationDataReuse & logicExpressions & parameters
Elements
Text
ParagraphHeading 1Heading 2Heading 3Heading 4Unordered ListDivider
Media
ImageTableEquation
Callouts
NoteDefinitionExampleTask
Graph
GraphLinePolygonCurveIntegralScatterHistogramPointSegmentVectorCircleSquareRectangleTriangleStarDiamondHexagonTextAxis labelAxis BraceFitResidualsContourHeatmapParameter
Code
Code canvasLines
Animation
CueDraw cueTrace cueHighlight cueSpotlight cueType cue
Structure
SceneStep
Reference
Internote Reference
Inline
Formatting
BoldItalicsInline CodeHighlightLink
Text colour
Red textOrange textYellow textGreen textTeal textBlue textPurple textPink textGrey text
Maths
Maths
Reference
Internote ReferenceValueConstant
Other
FootnoteIcon
Directives
DatasetIncludeConstantsTemplatePresetConditionalForIgnore
Keyframes
KeyframeZoom keyframe
Attribute types
?
  1. Language
  2. Text & inline

Text & inline

Prose, headings, formatting, colours, maths, callouts and the other inline elements.

#Prose

A line of writing is a paragraph. Nothing marks it; prose is the default state of a Chalk document, and inline formatting, maths and micronodes all live inside it. A paragraph takes one attribute — colour — when a whole block of text should carry a tint.

#Headings, lists, dividers

Headings are written the familiar way: # through #### at the start of a line give h1 to h4. Lists are lines beginning with a marker (list covers ordered and unordered), and a line of --- or ___ is a divider.

#Inline formatting

  • **bold** — bold
  • *italic* — italic
  • `code` — inline-code
  • !h{marked}(colour: yellow) — highlight, or ==marked== for the default tint
  • !link{Open Docs}(href: https://example.com) — link

The !name{...} forms are micronodes — ordinary constructs with heads, implicit attributes and attribute groups, exactly as the Introduction describes.

#Text colours

Nine colour micronodes tint a run of text: !red{...}, !orange{...}, !yellow{...}, !green{...}, !teal{...}, !blue{...}, !purple{...}, !pink{...}, !grey{...}. They are theme-aware palette tokens, not raw colours — the same hue vocabulary every colour attribute accepts.

#Maths

$x^2 + y^2 = r^2$ sets inline LaTeX (latex); the block form is the equation element.

#Substitutions

{{name}} splices an @let constant — or a dataset column, fully qualified as {{#survey.area}} — into the text at compile time. This is substitution syntax, not a micronode: it is a preprocessor over source text, which is why it works identically in prose, attribute values and code bodies.

{{ }} is a compile-time snapshot. For a value that changes while the reader watches — a fit's slope under a draggable degree, a parameter — use !value:#f.slope() instead: a binding, resolved live by the renderer. The Expressions chapter draws the line precisely.

#Callouts

Four block callouts set passages apart: note, definition, example and task. Each wraps narrative content in its body:

definition{
    A **prime** is a natural number greater than 1 with no
    positive divisors other than 1 and itself.
}

#Footnotes and icons

!fn{Source}(content: Smith, 2024) attaches a footnote to its text. !icon(name: tick; colour: green) drops a small inline icon — tick or cross — into a sentence. And an inline internote reference, !internote(ref: abc123), renders as a chip that sits inside the line; its block form renders a full card.

On this page
ProseHeadings, lists, dividersInline formattingText coloursMathsSubstitutionsCalloutsFootnotes and icons
Text & inline · Internote