Markdown Guide for The Default Gateway
A complete reference for writing and formatting content on The Default Gateway — covering frontmatter, headings, code blocks, callouts, tables, and every supported element.
This guide covers everything you need to write and publish content on The Default Gateway. All formatting shown here is fully supported and renders correctly on the site.
Frontmatter
Every Markdown file must start with a frontmatter block between ---
markers. The fields differ slightly per section.
Blog Posts
---
title: "Your Post Title"
date: "MM-DD-YYYY"
tags: ["tag1", "tag2", "tag3"]
summary: "A one or two sentence description shown on index pages and in search results."
---Notes
---
title: "Your Note Title"
date: "MM-DD-YYYY"
tags: ["tag1", "tag2"]
summary: "A one or two sentence description."
---Projects
---
title: "Your Project Title"
date: "MM-DD-YYYY"
tags: ["tag1", "tag2"]
summary: "A one or two sentence description."
status: "In Progress"
---status accepts: "In Progress", "Complete", or "Archived"
File Naming
Use lowercase letters and hyphens only — no spaces or special characters:
✅ getting-started-with-linux.md
✅ ssh-keys-reference.md
✅ rpi5-home-server.md
❌ Getting Started With Linux.md
❌ ssh_keys.md
❌ rpi5 home server.md
The filename becomes the URL:
getting-started-with-linux.md → /notes/getting-started-with-linux
Headings
Only use h2 and h3 inside post content. The h1 is reserved for
the post title which is generated automatically from frontmatter. Both
heading levels appear automatically in the sidebar table of contents.
## Section Heading (h2)
### Subsection Heading (h3)Paragraphs
Write text normally and leave a blank line between paragraphs:
This is the first paragraph. Keep writing until the thought is complete.
This is the second paragraph. The blank line creates the separation.Bold and Italic
**This text is bold**
*This text is italic*
**_This is bold and italic_**Code
Inline code
Wrap in single backticks for commands, file names, variable names, and short code references:
Run `npm install` to install dependencies.
The file lives at `src/app/page.js`.Code blocks
Wrap in triple backticks and specify the language for syntax highlighting:
```bash
npm run dev
git commit -m "your message"
```
```js
const posts = getPostsBySection("blog");
console.log(posts);
```
```python
def greet(name):
return f"Hello, {name}!"
```Supported language identifiers:
| Identifier | Language |
|---|---|
bash | Bash / Shell |
js / jsx | JavaScript / JSX |
ts / tsx | TypeScript / TSX |
python | Python |
css | CSS |
html | HTML |
json | JSON |
yaml | YAML |
sql | SQL |
plaintext | No highlighting |
Lists
Unordered
- First item
- Second item
- Nested item (2 spaces indent)
- Another nested itemOrdered
1. First step
2. Second step
3. Third stepLinks
[Link text](https://example.com)
[Internal link to blog](/blog)
[Link to a specific post](/notes/ssh-keys-reference)Images
Place images in public/images/ and reference them with an absolute path:
For a specific display size use an HTML img tag:
<img src="/images/projects/my-project/screenshot.png" alt="Screenshot" width="600" />Image folder structure:
public/images/
+-- blog/
+-- notes/
+-- projects/
+-- project-name/Blockquotes
> This is a blockquote. Use for notable quotes or excerpts.Renders with a green left border matching the accent color.
Tables
| Column 1 | Column 2 | Column 3 |
|----------|----------|----------|
| Value 1 | Value 2 | Value 3 |
| Value 4 | Value 5 | Value 6 |Never put <kbd> tags inside table cells — they break the table
rendering. Use backtick inline code inside tables instead.
Horizontal Rule
Use to separate major sections:
---Keyboard Shortcuts
Wrap keyboard keys in <kbd> tags for visual keycap styling:
Press <kbd>Ctrl</kbd> + <kbd>C</kbd> to cancel.
Use <kbd>Esc</kbd> to exit insert mode in Vim.Renders as: Press Ctrl + C to cancel.
Callouts
Four types available: tip, note, warn, bug
<Callout type="tip">
A helpful tip or best practice worth highlighting.
</Callout>
<Callout type="note">
Additional context or information the reader should know.
</Callout>
<Callout type="warn">
A warning about something that could go wrong.
</Callout>
<Callout type="bug">
A known bug, limitation, or gotcha to watch out for.
</Callout>When to use each type:
| Type | Use for |
|---|---|
tip | Best practices, shortcuts, recommended approaches |
note | Extra context, definitions, good-to-know information |
warn | Destructive commands, common mistakes, things that can break |
bug | Known issues, limitations, workarounds |
Always leave a blank line between a closing </Callout> tag and any
Markdown that follows it — especially tables. Missing blank lines cause
rendering issues.
Complete Example
---
title: "SSH Keys — A Complete Guide"
date: "09-09-2026"
tags: ["ssh", "linux", "security"]
summary: "Everything you need to know about generating and managing SSH keys."
---
## What is an SSH Key?
An SSH key is a matched pair of cryptographic files used for secure
authentication without passwords.
- **Private key** — stays on your machine, never shared
- **Public key** — given to remote servers or services like GitHub
<Callout type="note">
SSH keys are more secure than passwords because they cannot be
brute-forced.
</Callout>
## Generating a Key
```bash
ssh-keygen -t ed25519 -C "your@email.com"
```
Hit <kbd>Enter</kbd> to accept the default location.
<Callout type="warn">
Never share your private key (`id_ed25519`). Only the public key
(`id_ed25519.pub`) is meant to be shared.
</Callout>
## Quick Reference
| Command | What it does |
|---------|--------------|
| `ssh-keygen` | Generates a new key pair |
| `ssh-add` | Adds a key to the SSH agent |
| `ssh -T` | Tests an SSH connection |