Markdown Cheat Sheet
2026-08-18This post serves as a living document detailing the Markdown syntax supported by our custom Caddy rendering engine.
Frontmatter (Post Metadata)
Every blog post needs this block at the very top. Our layout engine reads this to automatically generate the <h1> title and the date on the page, and to sort the posts on the Blog Index.
---
title: Your Post Title
date: "YYYY-MM-DD"
---
Headers
To create a header, add one to six # symbols before your heading text.
# H1 Header
## H2 Header
### H3 Header
#### H4 Header
##### H5 Header
###### H6 Header
H1 Header
H2 Header
H3 Header
H4 Header
H5 Header
H6 Header
Text Formatting
Basic Styles
You can format text using asterisks * or underscores _.
**Bold Text** or __Bold Text__
*Italic Text* or _Italic Text_
***Bold and Italic*** or ___Bold and Italic___
~Strikethrough~~
Bold Text or Bold Text
Italic Text or Italic Text
Bold and Italic or Bold and Italic
Strikethrough~
Line Breaks
To force a line break without starting a whole new paragraph, simply end a line with two blank spaces, or drop in an HTML <br> tag.
Escaping Characters
If you need to type a Markdown symbol (like an asterisk) without triggering the formatting, put a backslash \ in front of it.
\*This text is surrounded by asterisks, but is not italicized.\*
*This text is surrounded by asterisks, but is not italicized.*
Lists
Unordered Lists
Use asterisks *, pluses +, or minuses - for unordered lists.
* Item 1
* Item 2
* Sub-item A
* Sub-item B
- Item 1
- Item 2
- Sub-item A
- Sub-item B
Ordered Lists
Use numbers followed by periods.
1. First item
2. Second item
1. Sub-item 1
2. Sub-item 2
- First item
- Second item
- Sub-item 1
- Sub-item 2
Task Lists
Create checkboxes by using brackets.
- [x] Completed task
- [ ] Incomplete task
- Completed task
- Incomplete task
Links and Images
Links
Enclose the link text in brackets [ ] and the URL in parentheses ( ).
[Brannigan's Law](/)
Images
Similar to links, but add an exclamation mark ! in front.

Blockquotes
Use a greater-than sign > for blockquotes.
> This is a blockquote.
> It spans multiple lines.
>> And can be nested.
This is a blockquote. It spans multiple lines.
And can be nested.
Code
Inline Code
Use a single backtick to format inline code.
To print a string in Python, use the `print()` function.
To print a string in Python, use the print() function.
Code Blocks
Use three backticks to create a code block. To demonstrate this in Markdown, you indent with 4 spaces:
```python
def hello_world():
print("Hello, World!")
```
def hello_world():
print("Hello, World!")
Tables
Use pipes | to separate columns and hyphens - to create the header row. Colons : align the text.
| Syntax | Description | Test Text |
| :--- | :----: | ---: |
| Header | Title | Here's this |
| Paragraph | Text | And more |
| Syntax | Description | Test Text |
|---|---|---|
| Header | Title | Here's this |
| Paragraph | Text | And more |
Horizontal Rules
Use three or more asterisks ***, dashes ---, or underscores ___.
---
Raw HTML Injection
Because the layout engine allows raw HTML, you can drop HTML tags directly into the Markdown when you need complex layouts or elements Markdown doesn't support natively (like video embeds, custom styled <div>s, or specific form inputs).
<div style="background-color: #333; padding: 10px; border-radius: 5px; text-align: center;">
<strong>Raw HTML Div:</strong> <span style="color: #8ab4f8;">This is highly customizable.</span>
</div>