Markdown & Zola Feature Reference
This post is a kitchen sink: it exercises every Markdown element and Zola feature the site is configured for, so you can see exactly how each one renders. Everything above the fold here becomes the post summary in the feed and lists.
๐Text formatting
Regular text with bold, italic, bold italic, strikethrough, and
inline code. You can also use highlighted text, Cmd +
K, H2O and E = mc2 via raw HTML.
Smart punctuation is on, so โstraight quotesโ become curly, an en dash (10โ20), an em dash (yesโreally), and an ellipsisโฆ are all typeset automatically.
๐Headings and IDs
Every heading below gets an automatic slug ID and a hover anchor link. This is an
<h2>; here are the deeper levels:
๐Third-level heading
๐Fourth-level heading
๐Fifth-level heading
๐Sixth-level heading
๐Links
- An inline link to the Zola site.
- An inline link with a title.
- A reference-style link resolved at the bottom of the source.
- An autolink: https://www.rust-lang.org.
- An internal link to another post, resolved at build time (Zola checks it exists): the Hello, World post, or jump straight to a heading in that post.
- A footnote reference sits here.1
๐Lists
Unordered, with nesting:
- Distributed systems
- Consensus
- Raft
- Paxos
- Replication
- Consensus
- Reliability
Ordered:
- Write the post
- Run
zola serve - Ship it
- Set
base_url zola build
- Set
Task list (GitHub-style):
- Enable class-based highlighting
- Add an RSS feed
- Write more posts
๐Definition list
- Idempotency
- The property that applying an operation multiple times has the same effect as applying it once.
- Backoff
- A strategy of increasing the delay between retries.
- Often paired with jitter to avoid synchronised retries.
๐Blockquotes
A single-level blockquote.
And a nested one inside it, for good measure.
๐GitHub-style alerts
Useful information the reader should notice even when skimming.
An optional, helpful suggestion.
Key information the reader needs to succeed.
Something that needs immediate attention to avoid problems.
Advises about risks or negative outcomes of an action.
๐Tables
Column alignment is controlled by the separator row:
| Language | Highlighter | Class-based? |
|---|---|---|
| Rust | giallo | yes |
| Python | giallo | yes |
| Diff | giallo | yes |
๐Images
Images can be co-located with the post in a page bundle and referenced by relative path:
๐Horizontal rule
๐Code blocks
Plain, no language โ just monospaced and framed:
$ zola build
Done in 88ms.
Highlighted by language:
def with_retries(fn, *, attempts=5):
for attempt in range(1, attempts + 1):
try:
return fn()
except TransientError:
if attempt == attempts:
raise
With line numbers, a starting offset, and highlighted lines
(```rust,linenos,linenostart=10,hl_lines=2-3):
fn main() {
let data = load(); // highlighted
let result = process(data); // highlighted
println!("{result:?}");
}
With a filename caption (```toml,name=config.toml):
[markdown.highlighting]
style = "class"
light_theme = "github-light"
dark_theme = "github-dark"
Diff highlighting:
fn retry(f: impl Fn()) {
- f();
+ for _ in 0..3 {
+ f();
+ }
}
A very long line, to show horizontal overflow rather than wrapping the page:
This is a deliberately long single line of text with no natural break points sothatyoucanseehowthecodeblockscrollshorizontallyinsteadofforcingthewholepagetogetwiderthanitshould.๐Zola shortcodes
The custom code_file shortcode includes a source file (or a line range)
straight from disk, so code in a post never drifts from the real file:
use std::fmt;
/// A tiny greeter, used to demonstrate `code_file` includes.
struct Greeter {
name: String,
}
impl fmt::Display for Greeter {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "Hello, {}!", self.name)
}
}
fn main() {
let g = Greeter { name: "world".into() };
println!("{g}");
}
๐Raw HTML
Raw HTML passes through, which is handy for things Markdown canโt express โ for example a collapsible section:
Click to expand
Hidden content revealed on click, using native<details>.
๐Things this site deliberately leaves off
Emoji shortcodes like :tada: are not auto-converted (that option is off, to
keep colons in technical text safe) โ but literal Unicode emoji still work: ๐ โ
๐.
Math (KaTeX/MathJax) and Mermaid diagrams arenโt built in; both can be added
later with a shortcode plus a small script if you ever want them.
-
Footnotes are collected here at the bottom of the article, each with a back-reference arrow to where it was cited. โฉ