Plain Text Comparison
Inline (π): <script>alert('safe!')</script>
SSI's two ways to include content
Learn the difference between SSI's two include modes
Inline (π): <script>alert('safe!')</script>
Inline (π―): bold text and italic text in one line.
Block includes are ideal when you need to maintain the structure of your content:
Block includes respect your contentβs natural flow and structure.
Inline (β¨): Icons like NEW fit naturally in text.
Great for short text, variables, and inline formatting.
Ideal for structured content, code, and multi-line text.
The key difference is the options = ["inline"] setting:
[[step]]
emoji = "π" # inline text
path = "content.toml"
processing = "include"
type = "plain"
options = ["inline"]
[[step]]
emoji = "π" # block text
path = "content.toml"
processing = "include"
type = "plain"
This is a block HTML include. Notice how it maintains:
When SSI includes a file inline (right after an opening tag), the first line of the included content lands at column 0, while continuation lines get the token line's leading whitespace prepended. For the configuration examples above, this means the first line is at col 0 and the rest are at col 2 (the token is on a 2-space-indented line in the source).
display: block; text-indent: 2ch on pre code
visually shifts the first line right by 2 characters to match. All lines
appear aligned in the browser, the HTML source is consistently indented,
and the source files are unchanged.
For block content (the poems and feature cards above), white-space: pre-line
is used instead β it preserves line breaks but collapses leading spaces, so
the HTML indentation disappears without any offset tricks.