← Back to Notes

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:

IdentifierLanguage
bashBash / Shell
js / jsxJavaScript / JSX
ts / tsxTypeScript / TSX
pythonPython
cssCSS
htmlHTML
jsonJSON
yamlYAML
sqlSQL
plaintextNo highlighting

Lists

Unordered

- First item
- Second item
  - Nested item (2 spaces indent)
  - Another nested item

Ordered

1. First step
2. Second step
3. Third step

Links

[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:

![Alt text describing the image](/images/blog/my-image.png)

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  |
W
WARN

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:

TypeUse for
tipBest practices, shortcuts, recommended approaches
noteExtra context, definitions, good-to-know information
warnDestructive commands, common mistakes, things that can break
bugKnown issues, limitations, workarounds
N
NOTE

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 |