Tiramisu Docs

Basics

Syntax

Learn Tiramisu's core syntax: function calls, nesting, paragraphs, and special character escaping.

Tiramisu has one fundamental construct: the function call.

Function Calls

A function call has a name followed by content in curly braces:

tiramisu
name { content }

The name can be any text before the opening brace. The content can include plain text, other function calls, or a mix of both.

Nesting

Function calls can be nested to any depth:

tiramisu
bold { italic { underline { deeply nested } } }

Each function call can contain plain text, other function calls, or both:

tiramisu
bold { This is italic { partially } formatted }

Paragraphs

Plain text outside of function calls becomes paragraph content. Paragraphs are separated by blank lines:

tiramisu
This is the first paragraph.

This is the second paragraph.

This is the third.

Function Names

A function name is any text immediately before an opening {. This means function names can include spaces, numbers, and special characters — though by convention most function names are simple identifiers:

tiramisu
bold { works }
myWidget { works }

Escaping

To prevent a function call from being parsed, prefix the function name with a backslash:

tiramisu
bold { this is literal text }

This renders as: bold { this is literal text } — the backslash tells the parser to treat bold as plain text rather than a function call.

Special Characters

Some characters have special meaning inside function call parameters. You only need to escape them when they appear inside { } — in plain paragraph text, they are treated literally and need no escaping.

EscapeCharacterWhy
\,CommaPrevents parameter separation
\=EqualsPrevents named parameter parsing
\{Opening bracePrevents function call parsing
\}Closing bracePrevents closing a function call
\[Opening bracketPrevents array parsing
\]Closing bracketPrevents closing an array
\nameFunction nameTreats name as literal text