Chalk is the markup language you write internotes in. It is designed to be readable — you should be able to glance at a Chalk document and understand its structure immediately.
This page covers the core concepts you need to get started. For a complete reference of every element and its attributes, see the Element Reference.
A Complete Minimal Internote
Start here if you want something you can paste into a new file and preview immediately.
*(
title: Introduction to Limits
subject: mathematics
)
scene{
# What is a Limit?
A limit describes the value a function approaches as the input gets close to a point.
definition{
The limit of $f(x)$ as $x$ approaches $a$ is the value $f(x)$ approaches near $a$.
}(term: Limit)
}[
equation{
\lim_{x \to a} f(x) = L
}
]
scene{
## Check Your Understanding
multichoice{
What does a limit describe?
}[
choice{ The value a function approaches }(correct: true)
choice{ Only the value where the function is undefined }
choice{ The largest value of the function }
](shuffle: true)
}
Document Header
Every Chalk file starts with a header block *(...) that provides metadata about the internote.
*(
title: Introduction to Limits
subject: mathematics
)
Scenes
All content lives inside scene{} blocks. The body {} is the narrative; the detail panel [] is the visual complement shown alongside it.
scene{
# What is a Limit?
A limit describes the value a function *approaches* as its input approaches a point —
not necessarily the value at that point.
}[
diagram{
curve(expression: (x^2 - 1) / (x - 1); colour: blue)
point(x: 1; y: 2; colour: orange)
}(
x domain: [-2, 4]
y domain: [0, 5]
)
]
The Elements You'll Use Most
Headings (#, ##, ###, ####) give scenes structure. Paragraphs are plain text. Lists start with - or 1.. None of these need any attributes.
Callout blocks draw attention to key ideas:
note{
This convention is standard across all calculus textbooks.
}(title: Convention)
warning{
Do not confuse the limit with the actual function value.
}
tip{
Try computing the limit from both sides before concluding.
}
Definitions and examples are the workhorses of most lessons:
definition{
The limit of $f(x)$ as $x$ approaches $a$ is $L$ if $f(x)$ can be made
arbitrarily close to $L$ by taking $x$ sufficiently close to $a$.
}(term: Limit)
example{
$\lim_{x \to 2} (3x + 1) = 7$, found by direct substitution.
}(title: Direct Substitution)
Inline Formatting
Inside paragraphs and list items you can use:
**text** — bold*text* — italic- `
text` — inline code $expression$ — inline LaTeX==text== — highlighted text
Common Mistakes
- Forgetting the document header at the top of the file
- Putting visual elements in the body when they belong in the detail panel
- Making one scene carry too many ideas
- Adding an exercise before the explanation gives students enough context
What's Next
You now have everything you need to write a basic internote. Explore the pages below or jump to the Element Reference for complete syntax documentation.