Content Markdown

# Page content — Markdown

Markdown rendering for the **plain-text content type (type 1)**. Types 2
(HTML) and 3 (PHP) are unchanged.

**Two audiences, two parts. Read the one you need:**

| | |
|---|---|
| **[Part 1 — Writing content](#part-1--writing-content)** | For anyone typing into the Page Editor. Syntax, the HTML rule, what changes on existing pages. |
| **[Part 2 — Enabling it on a site](#part-2--enabling-it-on-a-site)** | For whoever operates the site. The flag, the render path, the adoption checklist. |

*Written 2026-08-08. Parser: Parsedown, CommonMark with hard-breaks on.*

---

# Part 1 — Writing content

> **Is it on?** Markdown is **opt-in per site**
> (`$ENABLE_MARKDOWN_CONTENT` in the site's `conf/`). Until a site sets
> it, type 1 renders exactly as before. Preview either way on any page with
> **`?md=1`** (force markdown) or **`?md=0`** (force the old rendering) —
> the query parameter overrides the site setting in both directions.

## The short version

- **Blank line = new paragraph.** You never write `

` again.
- **Single newline = line break.** Same as before. You never write `
` in
prose.
- **Your existing HTML still works.** Tags, attributes, `style=`, classes —
all pass through untouched. Nothing is stripped or escaped.
- **Markdown keeps its hands off block HTML.** No stray breaks inside your
`