Basic Syntax

This guide covers the fundamental text formatting and typography features in Zolt.

Text Formatting

Zolt supports several inline text formatting options:

SymbolRenderedDescription
**bold**boldBold text
//text//italicItalic text
underlineunderlineNative underline
~~strikethrough~~strikethroughStrikethrough text
^{superscript}this is superscriptSuperscript
Supports nesting : 2^{3^{4}} gives 234
_{subscript}this is subscriptSubscript
Supports nesting : 2_{3_{4}} gives 234
==highlight==highlightNative highlight

Inline Styles

Apply CSS -like attributes to text spans using the ||text||{attr} syntax.

Syntax

zolt
||text to style||{attribute=value}

Examples

zolt
This is ||important||{color=red} text.

This is ||highlighted||{background=yellow}.

This is ||bold and blue||{fontWeight=bold color=blue}.
Result

This is important text.

This is highlighted .

This is bold and blue .

Common Attributes

AttributeDescriptionExample
colorText color{color=red}
backgroundBackground color{background=yellow}
fontWeightFont weight{fontWeight=bold}
fontSizeFont size{fontSize=1.5em}
fontStyleFont style{fontStyle=italic}
borderBorder{border="1px solid black"}
borderRadiusBorder radius{borderRadius=10px}

Practical Examples

zolt
||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}
Result

Warning: This action cannot be undone.

NEW

$variable

Character Escaping

Display literal special characters using the backslash \ character.

Common Escapes

SyntaxResult
\[text][text]
\{text}{text}
\|\|text\|\|||text||
\-- (not a list item)
\.. (not a list)
\\ (literal backslash)

Examples

zolt
This is not a \[link]

This is not bold \*\*text\*\*

Use the function \`print()\`

Literal pipe: \|

Literal backslash: \\
Result

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

zolt
This is visible %% this is hidden %% text.
Result

This is visible text.

Block Comments

zolt
Before
:::comment
This entire block
is a comment
and won't appear
in the output.
:::
After
Result

Before After

Horizontal Rules

Create visual separators between sections.

Syntax

Standard---
Thick***
Thin___
zolt
---
***
___
Result



With Attributes

zolt
--- {color=red style=dashed}

*** {color=blue}

___ {color=lightgreen width=50% align=center}
Result



Headings

Create document structure with headings.

Syntax

zolt
# Heading 1
## Heading 2
### Heading 3
#### Heading 4
##### Heading 5
###### Heading 6
Result

Heading 1

Heading 2

Heading 3

Heading 4

Heading 5
Heading 6

Heading Attributes

Add IDs, and control numbered or TOC visibility:

zolt
## Introduction{#intro}

## Chapter 1{numbered}

## Appendix{numbered=false}

## Hidden Section{noToc}

## Unnumbered Section{noCount}
Result

1.6 Introduction

I.VI Chapter 1

Appendix

1.6 Hidden Section

Unnumbered Section

AttributeDescription
idSet a custom HTML ID for the heading (e.g. {#my-id})
numberedEnable numbered for this specific heading, or set a style (roman-upper)
noCountExclude this heading from automatic numbered. It won't increment counters.
noTocHide this heading from the Table of Contents ([[toc]]).

Automatic Numbering

Enable global numbered in your file metadata:

zolt
---
numbered: true
---

You can also specify a style directly:

zolt
---
numbered: "roman-upper"
---

Or even a mixed style for each level using a comma-separated list:

zolt
---
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:

zolt
# 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
Result

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:

  1. 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").
  2. 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").
  3. Structural Integrity : Even if some headings are not numbered (no {numbered} attribute or numbered=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

StyleExample Output
decimal1, 1.1, 1.2.1
roman-loweri, i.i, i.ii.i
roman-upperI, I.I, I.II.I
alpha-lowera, a.a, a.b.a
alpha-upperA, A.A, A.B.A

Abbreviations

Define abbreviations for technical terms.

Inline & Local

zolt
HTML{abbr="HyperText Markup Language"} & CSS

CSS is stylesheet language

*[CSS]: Cascading Style Sheets
Result

HTML & CSS

CSS is stylesheet language

Global Definitions

Use double asterisks for project-wide abbreviations:

zolt
**[API]: Application Programming Interface

Footnotes

Add references with footnotes.

zolt
This has a footnote[^1].

[^1]: This is the footnote content.
Result

This has a footnote [1] .

Processing Order

The parser processes elements in this order:

  1. Variables {$var}
  2. Blocks [[...]] and :::
  3. Inline formatting (bold, italic, etc.)
  4. Attributes {} applied to the element on the left

Attribute Syntax Rules

When providing attributes in curly braces {} :

© 2026 Marmotz


  1. This is the footnote content.