Markdown and embeds for an EdgePress article
Most recent changes
Previously
Markdown Syntax Guide
Now
Markdown and embeds for an EdgePress article
Previously
This guide shows the Markdown features supported by EdgePress posts. The source stays readable, and the renderer sanitizes the resulting HTML before it reaches a page.
Now
An EdgePress article has YAML metadata followed by Markdown. Use the CLI to create the file, then edit the body below the second ---. This example collects the syntax I use for a practical note:
Previously
Headings and paragraphs
Now
## What I noticed
Previously
Start a heading with one or more hash marks. A blank line starts a new paragraph.
Now
A paragraph with emphasis, a link and inline code.
Previously
Heading level three
Now
- A short list
- Another point
Previously
Heading level four
Now
A quoted observation.
Previously
Heading level five
Heading level six
Setext heading level two
A backslash at the end of a line creates a hard line break.
This line stays in the same paragraph.
Thematic breaks
Three common rules create a horizontal divider:
Emphasis and code
Use emphasis, strong emphasis, and strikethrough. Inline code looks like npm run build.
const greeting = "Hello, Markdown.";
Tilde fences also mark code blocks:
This block uses a tilde fence.
Four leading spaces create an indented block:
const indented = "four spaces";
Use ` to include a literal backtick in a code span.
Write \* in a code span to show an escaped asterisk. Character references such as < and & display punctuation as text.
Links and images
An inline link points to the projects page. A reference link points to the about page.
Now
| Step | Result |
|---|---|
| Build | Static HTML |
Previously
GFM turns a bare address into a link: https://www.markdownguide.org/ . Angle-bracket, www, and email forms work too: https://commonmark.org www.example.com team@example.com.
Now
- ✓ Draft
- □ Preview
Previously
Diagram showing a Markdown document becoming a static page<img src="/edgepress/revisions/image.a33c96a36cc3638b.svg" alt="Diagram showing a Markdown document becoming a static page" loading="lazy" width="1200" height="360" />
Now
A photograph
Previously
An image-shaped link to an MP4 file becomes a video player:
Now
Report
Previously

Now
!embedishare
Previously
Lists and quotations
Keep formatting inside list items.
- Nest an ordered list under an unordered item.
- Add another nested item.
✓ Completed tasks receive an accessible status label.
□ Incomplete tasks receive a different status label.
Now
The site renders headings, paragraphs, emphasis, links, lists, quotations, fenced code, GFM tables and task lists. Put code inside triple backticks with a language name. The page already displays the article title; body sections start at ##.
Previously
A block quote can contain a list:
- First quoted item.
- Second quoted item.
Now
Copy media into content/assets/ before referencing its site-root path. A picture opens the shared image viewer; an explicit original URL is requested on activation. A local document is previewed automatically by the reusable document viewer. External documents need a registered service, current consent and CORS.
Previously
A second quote can be nested inside the first.
This is the nested quote.
Tables and safe HTML
| Syntax | Rendered form |
|---|---|
# Heading |
A heading |
**text** |
Strong emphasis |
Now
!embed[ishare](URL) is a standalone line, using the real published share URL instead of EXAMPLE. Register the service in plugins.consent.services before using it; requests wait for consent and demand. The same extension can be used in a Pages text element. Do not put embeds into article front matter.
Previously
Use semantic inline HTML such as Ctrl when it adds useful meaning. Active markup such as is removed by the sanitizer.
Now
Pages use structured elements, so a whole Markdown article should not be pasted into a Pages text field. Use the complete Pages example for layout. Preview with npm run dev and build before publication.
An EdgePress article has YAML metadata followed by Markdown. Use the CLI to create the file, then edit the body below the second ---. This example collects the syntax I use for a practical note:
## What I noticed
A paragraph with **emphasis**, a [link](https://example.org/) and `inline code`.
- A short list
- Another point
> A quoted observation.
| Step | Result |
| --- | --- |
| Build | Static HTML |
- [x] Draft
- [ ] Preview

!document[Report](/documents/report.pdf)
!embed[ishare](https://ishare.js.gripe/s/EXAMPLE)
The site renders headings, paragraphs, emphasis, links, lists, quotations, fenced code, GFM tables and task lists. Put code inside triple backticks with a language name. The page already displays the article title; body sections start at ##.
Copy media into content/assets/ before referencing its site-root path. A picture opens the shared image viewer; an explicit original URL is requested on activation. A local document is previewed automatically by the reusable document viewer. External documents need a registered service, current consent and CORS.
!embed[ishare](URL) is a standalone line, using the real published share URL instead of EXAMPLE. Register the service in plugins.consent.services before using it; requests wait for consent and demand. The same extension can be used in a Pages text element. Do not put embeds into article front matter.
Pages use structured elements, so a whole Markdown article should not be pasted into a Pages text field. Use the complete Pages example for layout. Preview with npm run dev and build before publication.