MARKDOWN PRIMER

for the cps4706-ref pipeline
Headings
Heading levels use # symbols — one per level
Markdown
# Heading 1
## Heading 2
### Heading 3
#### Heading 4
Renders as

Heading 1

Heading 2

Heading 3

Heading 4

In the cps4706-ref pipeline, # headings become tabs and ## headings become section headers within a tab. Don't use # for anything other than tab names.
Text Formatting
Bold wrap in ** or __
**bold text**
__also bold__

bold text

Italic wrap in * or _
*italic text*
_also italic_

italic text

Bold + italic wrap in ***
***bold and italic***

bold and italic

Strikethrough wrap in ~~
~~strikethrough~~

strikethrough

Line breaks blank line = new paragraph; two spaces at end = line break
First paragraph.

Second paragraph.

Line one.  ← two spaces here
Line two.

First paragraph.

Second paragraph.

Line one.
Line two.

Lists
Unordered list use - or * or +
- First item
- Second item
- Third item
  • First item
  • Second item
  • Third item
Ordered list use numbers — the actual number doesn't matter
1. First item
2. Second item
3. Third item
  1. First item
  2. Second item
  3. Third item
Nested list indent with 2–4 spaces
- Item one
  - Nested item
  - Another nested
- Item two
  • Item one
    • Nested item
    • Another nested
  • Item two
Tables
Basic table pipes and dashes — columns don't need to align
| Column A | Column B | Column C |
|----------|----------|----------|
| Cell 1   | Cell 2   | Cell 3   |
| Cell 4   | Cell 5   | Cell 6   |
Column AColumn BColumn C
Cell 1Cell 2Cell 3
Cell 4Cell 5Cell 6
Column alignment colons in the separator row control alignment
| Left | Center | Right |
|:-----|:------:|------:|
| A    |   B    |     C |
LeftCenterRight
ABC
The separator row (dashes) only needs one dash per column minimum. Padding with extra dashes is optional and cosmetic only.
Blockquotes
Blockquote prefix lines with >
> This is a blockquote.
> It can span multiple lines.
>
> Even multiple paragraphs.

This is a blockquote. It can span multiple lines.

Even multiple paragraphs.

Code
Inline code wrap in backticks
Use `pandoc` to convert files.

Use pandoc to convert files.

Code block three backticks before and after; optional language name
```bash
bash build.sh
pandoc notes.md -o notes.html
```
bash build.sh
pandoc notes.md -o notes.html
Horizontal Rule
Horizontal rule three or more dashes, asterisks, or underscores on their own line
---

or

***

Images
Basic image ![alt text](path/to/image.png) — same as a link but with ! prefix
![A sunset](photos/sunset.jpg)

![](photos/sunset.jpg)
← alt text is optional

[image renders here]

Image with title title shows on hover
![Sunset](photos/sunset.jpg "Golden hour")

[image with hover title]

Clickable image nest image inside a link
[![Alt text](image.png)](https://example.com)

[clickable image]

Paths are relative to the markdown file location. If your .md is in aviation/ and images are in aviation/photos/, use photos/sunset.jpg — not ../aviation/photos/sunset.jpg.
SVG Icons
SVG as image same syntax as any image — SVGs scale perfectly at any size
![](../icons/warning.svg)

![](../icons/checklist.svg) Text after icon

Inline ![](../icons/note.svg) in a sentence
warning icon alone
checklist icon + text
In the pipeline, icons in aviation/ docs use ../icons/filename.svg (one level up). Icons in sub-sub-folders would use ../../icons/. The path is always relative to the .md file being built.
Available icons in cps4706-ref: warning.svg · checklist.svg · emergency.svg · note.svg · memorize.svg — all in the /icons/ folder at the repo root.
Pipeline — Tabs

How # headings become tabs

In your .md files, each # heading becomes a tab in the rendered HTML. The tab name is the heading text. Everything under that heading until the next # heading is the tab's content.

# Pre-flight          ← Tab 1: "PRE-FLIGHT"

## Flight Planning    ← Section header within Tab 1
Content here...

## Required Documents ← Another section in Tab 1
More content...

# Emergencies         ← Tab 2: "EMERGENCIES"

## Engine Out         ← Section header within Tab 2

Use ## for section headers within a tab. Use ### for sub-headings if needed. Never use # except for tab names.

Pipeline — Tags

How #tagname works

Write #tagname anywhere in your prose. The tag renders as a colored pill inline, and a Tags tab is auto-generated grouping all mentions with links back to source.

Quorum rules worth discussing with #Angela before spring meeting.

The amendment procedure is unclear. #followup #townCounsel

Know the spin recovery procedure cold. #memorize #askCFI
Tags must start with a letter and contain only letters, numbers, hyphens, and underscores. No spaces. #follow-up works. #follow up does not.

Tag naming conventions in use

These are the tags used across cps4706-ref docs — no rules, just convention:

#memorize      → things to know cold, no reference needed
#askCFI        → questions or items to verify with instructor
#followup      → action items, things to come back to
#Angela        → person-specific — anything to discuss with Angela
#townCounsel   → items needing legal/counsel review
#unclear       → things you're not sure about yet
Pipeline — Front Matter

YAML front matter

Every .md file in the pipeline should start with a front matter block between --- lines. This sets the page title.

---
title: "Flying Notes"
---

# Pre-flight

Content starts here...
The title appears in the browser tab and in the header bar. Without it, the page title will be blank or default to the filename.
Pipeline — Using Icons

Icon path convention

All icons live at the repo root in /icons/. From a file in a subfolder (aviation/, town-moderator/, facilitation/), the relative path is always ../icons/.

![](../icons/warning.svg) Don't launch with marginal factors in 2+ categories.

![](../icons/checklist.svg) Work through this before every flight.

![](../icons/emergency.svg) Memory items — know these cold. #memorize

![](../icons/note.svg) Background context or a reminder.

![](../icons/memorize.svg) Must know without reference.

Icon usage guide

Use icons at the start of a paragraph or section intro — not mid-sentence (they render inline but look best leading a block).

## Go / No-Go — PAVE

![](../icons/warning.svg) Don't launch with marginal factors in 2+ categories.

| Letter | Category |
|--------|----------|
| P | Pilot |
...
Pandoc Notes

What Pandoc does differently from standard Markdown

Pandoc uses its own flavor of Markdown with a few additions worth knowing:

Footnotes:
Text with a footnote.[^1]
[^1]: The footnote content.

Definition lists:
Term
:   Definition text here

Superscript / subscript:
H~2~O     ← subscript
x^2^      ← superscript

Smart quotes: Pandoc converts "quotes" to "curly quotes" automatically.

build.sh — the one command you run

From the repo root, any time you want to publish changes:

bash build.sh

This runs Pandoc on every .md file and outputs .html. Hand-crafted HTML files are never touched. Then push to GitHub:

git add .
git commit -m "update flying notes"
git push

Netlify rebuilds automatically in ~30 seconds.

Adding a new .md document

Three steps:

1. Create the file:
   aviation/instrument-notes.md

2. Add a build block in build.sh:
   pandoc aviation/instrument-notes.md \
     --template=templates/tabbed.html \
     --variable css=../styles/main.css \
     --standalone \
     -o aviation/instrument-notes.html

3. Add a card in aviation/index.html pointing to instrument-notes.html