Basic Syntax
This guide covers the fundamental text formatting and typography features in Zolt.
Text Formatting
Zolt supports several inline text formatting options:
| Symbol | Rendered | Description |
|---|---|---|
**bold** | bold | Bold text |
//text// | italic | Italic text |
underline | underline | Native underline |
~~strikethrough~~ | Strikethrough text | |
^{superscript} | this is superscript | Superscript Supports nesting : 2^{3^{4}} gives 234 |
_{subscript} | this is subscript | Subscript Supports nesting : 2_{3_{4}} gives 234 |
==highlight== | highlight | Native highlight |
Inline Styles
Apply CSS -like attributes to text spans using the ||text||{attr} syntax.
Syntax
||text to style||{attribute=value}
Examples
This is ||important||{color=red} text.
This is ||highlighted||{background=yellow}.
This is ||bold and blue||{fontWeight=bold color=blue}.
This is important text.
This is highlighted .
This is bold and blue .
Common Attributes
| Attribute | Description | Example |
|---|---|---|
color | Text color | {color=red} |
background | Background color | {background=yellow} |
fontWeight | Font weight | {fontWeight=bold} |
fontSize | Font size | {fontSize=1.5em} |
fontStyle | Font style | {fontStyle=italic} |
border | Border | {border="1px solid black"} |
borderRadius | Border radius | {borderRadius=10px} |
Practical Examples
||Warning:||{color=red fontWeight=bold} This action cannot be undone.
||NEW||{background=blue color=white padding="2px 8px" borderRadius=12px}
||$variable||{fontFamily=monospace background=#F3F4F6}
Warning: This action cannot be undone.
NEW
$variable
Character Escaping
Display literal special characters using the backslash \ character.
Common Escapes
| Syntax | Result |
|---|---|
\[text] | [text] |
\{text} | {text} |
\|\|text\|\| | ||text|| |
\- | - (not a list item) |
\. | . (not a list) |
\\ | (literal backslash) |
Examples
This is not a \[link]
This is not bold \*\*text\*\*
Use the function \`print()\`
Literal pipe: \|
Literal backslash: \\
This is not a [link]
This is not bold **text**
Use the function `print()`
Literal pipe: |
Literal backslash: \
Comments
Add notes that won't appear in the rendered output.
Inline Comments
This is visible %% this is hidden %% text.
This is visible text.
Block Comments
Before
:::comment
This entire block
is a comment
and won't appear
in the output.
:::
After
Before After
Horizontal Rules
Create visual separators between sections.
Syntax
| Standard | --- |
| Thick | *** |
| Thin | ___ |
---
***
___
With Attributes
--- {color=red style=dashed}
*** {color=blue}
___ {color=lightgreen width=50% align=center}
Headings
Create document structure with headings.
Syntax
# Heading 1
## Heading 2
### Heading 3
#### Heading 4
##### Heading 5
###### Heading 6
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Heading Attributes
Add IDs, and control numbered or TOC visibility:
## Introduction{#intro}
## Chapter 1{numbered}
## Appendix{numbered=false}
## Hidden Section{noToc}
## Unnumbered Section{noCount}
1.6 Introduction
I.VI Chapter 1
Appendix
1.6 Hidden Section
Unnumbered Section
| Attribute | Description |
|---|---|
id | Set a custom HTML ID for the heading (e.g. {#my-id}) |
numbered | Enable numbered for this specific heading, or set a style (roman-upper) |
noCount | Exclude this heading from automatic numbered. It won't increment counters. |
noToc | Hide this heading from the Table of Contents ([[toc]]). |
Automatic Numbering
Enable global numbered in your file metadata:
---
numbered: true
---
You can also specify a style directly:
---
numbered: "roman-upper"
---
Or even a mixed style for each level using a comma-separated list:
---
numbered: "decimal, alpha-lower, roman-upper"
---
In this case, the first level headings will be 1 , the second level 1.a , the third level 1.a.I , etc. If there are more levels than styles, the last style in the list is used for all remaining levels.
Selective Numbering
You can toggle numbered mid-document by changing the $numbered variable:
# Unnumbered Section
$numbered = true
## Numbered Subsection
$numbered = "alpha-lower"
## Subsection with different style
$numbered = "decimal, alpha-lower, roman-upper"
## Subsections with different style for each (decimal.alpha-lower)
### Sub-Subsections with decimal.alpha.ROMAN
#### Sub-Sub-Subsections with decimal.alpha.ROMAN.ROMAN
$numbered = false
## Another Unnumbered Section
Unnumbered Section
1.6 Numbered Subsection
a.f Subsection with different style
1.f Subsections with different style for each (decimal.alpha-lower)
1.f.III Sub-Subsections with decimal.alpha.ROMAN
1.f.III.I Sub-Sub-Subsections with decimal.alpha.ROMAN.ROMAN
Another Unnumbered Section
Numbering Rules
Zolt uses a smart numbered system for document titles:
- Single H1 Rule : If your document has only one
# Heading 1, it is treated as the document title and will not be numbered . Numbering will automatically start at## Heading 2(e.g., the first H2 will be "1", its first H3 will be "1.1"). - Multiple H1 Rule : If your document has more than one
# Heading 1, all H1s are numbered (e.g., "1", "2"), and sub-headings follow (e.g., "1.1", "1.2"). - Structural Integrity : Even if some headings are not numbered (no
{numbered}attribute ornumbered=false), they are still counted in the document structure to ensure consistent numbered for subsequent elements.
Available styles: decimal (default), roman-lower , roman-upper , alpha-lower , alpha-upper
| Style | Example Output |
|---|---|
decimal | 1, 1.1, 1.2.1 |
roman-lower | i, i.i, i.ii.i |
roman-upper | I, I.I, I.II.I |
alpha-lower | a, a.a, a.b.a |
alpha-upper | A, A.A, A.B.A |
Abbreviations
Define abbreviations for technical terms.
Inline & Local
HTML{abbr="HyperText Markup Language"} & CSS
CSS is stylesheet language
*[CSS]: Cascading Style Sheets
HTML & CSS
CSS is stylesheet language
Global Definitions
Use double asterisks for project-wide abbreviations:
**[API]: Application Programming Interface
Footnotes
Add references with footnotes.
This has a footnote[^1].
[^1]: This is the footnote content.
This has a footnote [1] .
Processing Order
The parser processes elements in this order:
- Variables
{$var} - Blocks
[[...]]and::: - Inline formatting (bold, italic, etc.)
- Attributes
{}applied to the element on the left
Attribute Syntax Rules
When providing attributes in curly braces {} :
- Key-Value :
key=value - Boolean :
noToc(equivalent tonoToc=true) - Quoting : If a value contains spaces or special characters, it must be enclosed in quotes (single or double).
- Correct:
{border="1px solid black"} - Incorrect:
{border=1px solid black}(this would be parsed asborder=1px,solidandblackas separate attributes).
- Correct:
© 2026 Marmotz
This is the footnote content. ↩