Index
Project hero image
Style-guide · Editorial

Human Markdown Kitchen Sink with Guardrails

A writer-facing fixture for simple, robust project pages.

This document is a practical authoring guide and stress-test for the site’s human-facing Markdown. It is written for future writers, editors, and collaborators who should not need to understand the Eleventy implementation.

The rule of thumb is simple: write normal Markdown first. Use a custom block only when the content has a clear semantic role, such as a figure, aside, video, panorama, exchange, or credits.

The guardrails

A plain section

This paragraph demonstrates common inline marks: NATO, BFA, highlighted text, deleted text, and inserted text. Use these sparingly. Inline marks are editorial signals, not decoration.

A normal hyperlink should be written as descriptive linked text. Avoid vague links like “click here.” The linked words should describe the destination.

Lists

Use bullets for unordered material:

Use numbered lists when sequence matters:

  1. Gather the source material.
  2. Write the paragraph in plain language.
  3. Add semantic blocks only where they clarify the article structure.

A standard quote

The best time to plant a tree was twenty years ago. The second best time is now.

A Wise Person, Proverb

A normal blockquote is enough for most quotations. For a social post, use the same pattern but make the attribution a link to the source.

A social quote

The project changed once the archival material became visible.

The link text carries the human-readable source information: author, platform, and date. The link target carries the citation. Prefer archived URLs.

A social quote with an original link

This is a quoted post where preserving both the archived and live locations is useful.

Use the original link only when it adds value. The archived link should usually come first.

A simple table

Feature Status Notes
Prose Preferred Write normally.
Tables Simple only Keep cells inline.
Captions One paragraph Longer explanation belongs in body text.
Social links Archival first Prefer Wayback links.

Do not use tables for complex layout. If a table cell needs a list, image, blockquote, or multiple paragraphs, it probably should not be a table.

Definitions

Drop cap
An oversized initial letter that opens a chapter, essay, or section.
Run-in lead
A few opening words set apart typographically to bridge the drop cap into the body text.
Asterism
A typographic mark used to indicate a minor section break or shift in subject.

Figures

Use one media block: figure.

A figure block contains one or more media items, followed by zero or one shared caption paragraph. The site decides the default layout from the number of media items:

Media count Default treatment
1 Single figure
2 Paired figure
3+ Gallery-style figure

Optional figure modifiers can be added after figure when the default needs a hint:

Modifier Use when
compare The media should be read as a comparison, such as before/after, source/reconstruction, or obverse/reverse.
wide The figure should break wider than the normal text measure.
full The figure may use the full page or content width.
sequence The media should be read as ordered steps.
compact The media should use a denser layout, usually for many small images.

Plain image with a plain caption

Use this form for one image with a short, plain caption. Do not put links, footnotes, or complicated quote punctuation inside image-title captions.

A standalone image.
A short, plain caption.

Rich single figure

Use ::: figure when the caption needs Markdown, punctuation, footnotes, or links.

A reconstruction study shown as a single figure.
This caption can contain a source link, emphasis, small caps, quote marks like “this,” and a footnote reference.[2]

The paragraph after a figure is normal body text. Put longer interpretation here instead of turning the caption into a miniature essay.

Two media items

Use the same figure block for two related media items. The renderer can lay them out as a pair by default.

Side A of a comparison.Side B of a comparison.
Two related images with one shared caption.

Explicit comparison

Add the compare modifier when the relationship matters editorially, not merely visually.

Original source image.Reconstruction image.
Original source and reconstruction.

Motion figure

Writers may use the same Markdown image syntax for looping motion clips. The renderer can decide whether a source is an image or a video based on the file extension.

The process involves dripping paint onto a water bath, then dipping the material to transfer the pattern.

Three or more media items

Use the same figure block for three or more related media items. The renderer can treat this as a gallery-style layout by default.

Figure sequence

Use the sequence modifier when order matters.

Wide figure

Use width modifiers only when the figure needs more room than the text measure.

A wide production still.
A wide figure can support a broader image without making the writer choose a visual layout class.

Asides and external references

Use an aside for a related link that is useful but not part of the main argument.

The first line inside the aside is the label. The linked title and deck stay as ordinary Markdown content. Do not use an aside for an ordinary inline citation; most references should remain normal links in body prose.

Embedded media

Panorama

Use pano for an interactive 360° viewer. Put the source after the block name. The caption remains one paragraph.

A 360° panorama caption. Keep it short; explain the larger context in body prose after the block.

Video

Use video for an embedded or linked video. Put the public video URL after the block name. Include poster images only if the implementation later needs them; do not burden the writer by default.

Video thumbnail: YouTube YouTube
A video caption. One paragraph only, with a contextual link if needed.[3]

Code

Use code blocks only when code is the subject of the article. For ordinary prose, prefer inline code such as figure, compare, or url.

Use tilde fences as the house style for code blocks. They are standard Markdown, support language labels, and are less likely than triple backticks to break when copied through chat tools or LLMs.

<!doctype html>
<html lang="en">
  <head>
    <title>Example</title>
  </head>
  <body>
    <p>This is a fenced code block using tildes.</p>
  </body>
</html>

Use md for Markdown examples:

::: figure
![Alt text](/m/image.avif)
Caption.
:::

If a code example itself contains tilde fences, wrap it in a longer tilde fence.

~~~html
<p>A nested fenced example.</p>
~~~

Credits

Use credits for structured production credits. Keep the format plain: role, colon, names.

Directed by
Director Name
Cinematography by
Daniel Voshart
Produced by
Producer One
Producer Two
Starring
Actor One as Character One

Complex material: social sources and exchanges

Social material is still just quoted and cited prose. Do not recreate platform UI unless there is a strong editorial reason. Do not make the article depend on live fetching, sidecar files, or derived metadata.

Quoted social post

This is the quoted Bluesky post. The article preserves the exact text it relies on.

The attribution line should be readable even before the page is built.

Quoted Reddit comment

This is the original comment being discussed. It may contain multiple paragraphs if the original does.

This is the second paragraph of the same quoted comment.

Use multiple blockquoted paragraphs when the source material needs them. Keep the attribution as the final blockquoted line.

Reply exchange

Use prose to explain the relationship. The Markdown grammar does not need to encode every social relationship.

Original poster wrote:

This is the original comment being replied to.

I replied:

This is the response.

This nested quote remains an ordinary nested blockquote inside the response.

The response continues here.

Grouped exchange

Use exchange only when a set of related quotes should be styled as one grouped unit. The block carries no metadata. The citations remain ordinary attribution links.

Social source with images

Do not try to rebuild a platform embed. Cite the post, then use a normal figure.

The post included three reference images:

Nested figure inside an exchange

If an exchange contains another container, use a longer fence outside.

https://litesvr.com
web app
Dashboard view of the application.
A short caption.

Math notation test

Inline dollar math: E=mc2E = mc^2

Inline bracket math: E=mc2E = mc^2

A fraction inline: a+bc\frac{a+b}{c}

Superscripts and subscripts: x12+x22=r2x_1^2 + x_2^2 = r^2

Greek letters: α+β=γ\alpha + \beta = \gamma

Square root: x2+y2\sqrt{x^2 + y^2}

Summation: ∑n=1∞1n2\sum_{n=1}^{\infty} \frac{1}{n^2}

Integral: ∫01x2 dx=13\int_0^1 x^2\,dx = \frac{1}{3}

Display math with dollar delimiters:

E=mc2 E = mc^2

Display math with bracket delimiters:

E=mc2 E = mc^2

A larger display equation:

ddx(∫axf(t) dt)=f(x) \frac{d}{dx}\left(\int_a^x f(t)\,dt\right) = f(x)

Matrix:

A=(1234) A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}

Piecewise function:

f(x)={x2,x≥0−x,x<0 f(x) = \begin{cases} x^2, & x \ge 0 \\ -x, & x < 0 \end{cases}

Aligned equations:

a=b+cd=e−fg=h×i \begin{aligned} a &= b + c \\ d &= e - f \\ g &= h \times i \end{aligned}

Vector notation:

v=[vxvyvz] \mathbf{v} = \begin{bmatrix} v_x \\ v_y \\ v_z \end{bmatrix}

Set notation:

A={x∈R∣x>0} A = \{x \in \mathbb{R} \mid x > 0\}

Probability:

P(A∣B)=P(B∣A)P(A)P(B) P(A \mid B) = \frac{P(B \mid A)P(A)}{P(B)}

Limit:

lim⁡x→0sin⁡xx=1 \lim_{x \to 0} \frac{\sin x}{x} = 1

Complex numbers:

eiπ+1=0 e^{i\pi} + 1 = 0

Units and text inside math:

v=12 m/s v = 12\,\mathrm{m/s}

Text inside an equation:

Area=πr2 \text{Area} = \pi r^2

Currency collision test — these should remain ordinary text:

The object cost $20.

The price increased from $20 to $30.

The budget was approximately $1.5 million.

Code collision test — this should remain code and not render as math:

const price = "$20";

And this fenced block should also remain untouched:

const equation = "$E = mc^2$";
const latex = "\\(x^2 + y^2\\)";

Boxed math

E=mc2 \boxed{E = mc^2}
x=−b±b2−4ac2a \boxed{x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}}
Final Answer \boxed{\text{Final Answer}}

What not to do

Do not put a complex caption in an image title. Use ::: figure instead.

Do not write multi-paragraph captions. Write one caption paragraph, then continue in body prose.

Do not use pair or gallery as author-facing blocks. Use ::: figure and let the renderer decide the layout.

Do not put aside labels after the block name. Use ::: aside, then put the label as the first line inside the block.

Do not model social posts as metadata blocks. Quote them as blockquotes with attribution links.

Do not rely on a build script to fetch social metadata. The article should preserve the quoted text and source link directly.

Do not omit source URLs from social material. Use archived URLs where possible.

Do not use a table for layout.

Do not nest blocks inside captions.

Do not use a short outer fence around a block that contains other fenced containers.

Do not use triple backticks as the house style for code blocks. Use tilde fences instead.

  1. A simple footnote called from a list item. ↩︎

  2. A footnote called from a rich figure caption. The definition stays at document level. ↩︎

  3. A footnote called from a video caption. ↩︎