Det här är Markdown-syntaxreferensen du kan bokmärka och återvända till. Varje element täckt med ett verkligt exempel — rubriker, betoning, länkar, bilder, listor, kodblock, tabeller, blockcitat och mer. Där en funktion är en del av standard CommonMark märks det som sådant; tillägg från GitHub Flavored Markdown (GFM) kallas ut explicit så att du vet vad som är universellt stödt och vad som beror på renderaren.

Rubriker

Markdown har två rubrikstilar. ATX-stilen använder hash-tecken — ett # för h1 till sex ###### för h6. Setext-stilen använder understreck av = eller - tecken och når bara h1 och h2. ATX är stilen du bör använda överallt — den är explicit, skalas till alla sex nivåer och är vad varje verktyg stöder. Ett vanligt misstag: att glömma mellanslagat efter #. Strängt taget är #Rubrik inte en rubrik i CommonMark — mellanslagat krävs.

markdown
# Page Title (h1)
## Section Heading (h2)
### Subsection (h3)
#### Detail Level (h4)
##### Minor Heading (h5)
###### Smallest Heading (h6)

---

<!-- Setext style — only h1 and h2, rarely used -->
Page Title
==========

Section Heading
---------------

I ett verkligt dokument använder du vanligtvis ett h1 högst upp (dokumenttiteln), h2 för huvudavsnitt och h3 för underavsnitt inom dessa. Att gå djupare än h3 är en signal om att ditt dokument kanske behöver omstruktureras snarare än en annan kapslingsnivå.

Lämna ett mellanslag efter #. #Rubrik behandlas tyst som ett stycke av många strikta parsers. CommonMark-specifikationen kräver minst ett mellanslag mellan #-tecknen och rubriktexten.

Textformatering

Fet text använder dubbelasterisker eller dubbelunderstrecksstreck. Kursiv text använder enkla asterisker eller enkla understrecksstreck. Fet kursiv kombinerar tre av endera. Genomstrykning är ett GFM-tillägg och använder dubbeltilder. Inbäddad kod använder backticks.

markdown
**Bold text** or __Bold text__
*Italic text* or _Italic text_
***Bold and italic*** or ___Bold and italic___
~~Strikethrough~~ (GFM only)
`inline code`

Varianterna * och _ är mestadels utbytbara, men de skiljer sig i ett kantfall: betoning mitt i ord. Asterisker fungerar mitt i ord (un*believe*able renderas som unbelieveable), men understrecksstreck gör det inte — un_believe_able renderas bokstavligen i CommonMark eftersom understrecksstreck inuti ord behandlas som ordtecken, inte betoningsmarkörer. Det spelar roll i teknisk skrivning där understrecksstreck förekommer i identifierare. Som regel: använd * för betoning och reservera _ bara om du har starka stilpreferenser. Blanda inte * och _ inom samma betoning — *text_ stängs inte korrekt.

Länkar och bilder

Det finns tre länkstilar: inbäddade länkar, referenslänkar och autolänkar. Bilder följer samma syntax som inbäddade länkar men med ett !-prefix.

markdown
<!-- Inline link: [text](url) or [text](url "title") -->
Read the [CommonMark spec](https://spec.commonmark.org/current/ "CommonMark Specification")
Format Markdown with the [Markdown Formatter](/markdown-formatter)

<!-- Reference link: define the URL separately — cleaner in long documents -->
Check the [GFM spec][gfm] for GitHub-specific extensions.

[gfm]: https://github.github.com/gfm/

<!-- Autolink: angle brackets make a URL or email clickable -->
<https://commonmark.org>
<[email protected]>

<!-- Image: same as inline link but with ! prefix -->
![Project screenshot](./docs/screenshot.png "Dashboard view")
![Alt text for accessibility](https://example.com/logo.png)
Bilder i Markdown har inga width- eller height-attribut. Syntaxen ![alt](url) mappar till en vanlig <img>-tagg utan storleksangivelse. Om du behöver kontrollera bildmått måste du gå ner till råa HTML: <img src="url" alt="text" width="400">. Det här är en känd begränsning — Markdown Guide täcker lösningen.

Listor

Osorterade listor använder -, * eller + som punktmarkörer. Sorterade listor använder siffror följda av en punkt. Kapsla listor genom att dra in två eller fyra mellanslag. Uppgiftslistor (GFM) använder [ ] för omarkerade och [x] för markerade objekt.

markdown
<!-- Unordered list -->
- Install dependencies
- Configure environment variables
- Run the dev server

<!-- Ordered list -->
1. Clone the repository
2. Run `npm install`
3. Copy `.env.example` to `.env` and fill in values
4. Run `npm run dev`

<!-- Nested list (indent 2 or 4 spaces) -->
- Backend
  - Set up PostgreSQL
  - Configure connection string
- Frontend
  - Install Tailwind
  - Configure PostCSS

<!-- Task list (GFM) — great for README checklists -->
## Release Checklist

- [x] Unit tests passing
- [x] End-to-end tests passing
- [ ] Changelog updated
- [ ] Docker image tagged
- [ ] Deployment approved
Vanligt misstag: om ett stycke direkt föregår en lista utan en tom rad mellan dem kommer vissa parsers inte att rendera listan korrekt. Vid osäkerhet, lägg en tom rad före din lista. CommonMark-listspecifikationen har de exakta reglerna — de är förvånansvärt nyanserade för något som ser enkelt ut.

Kod — inbäddad och inhägnad

Inbäddad kod använder en enda backtick på varje sida. För block, använd trippla backticks (inhägnade kodblock) och ange valfritt språkidentifieraren direkt efter den öppnande inhägnaden — detta möjliggör syntaxmarkering på GitHub, VS Code-förhandsvisningar och de flesta statiska webbplatsgeneratorer. Du kan också använda indragna kodblock (4 mellanslags indragning), men föredra inhägnade block: de stöder språktips, de är explicita och de fungerar även när det omgivande innehållet också har indragning.

markdown
<!-- Inline code -->
Use the `fetch()` API to make HTTP requests.
Set the `Content-Type` header to `application/json`.

<!-- Fenced code block with language hint -->
```python
import json

with open("config.json") as f:
    config = json.load(f)

print(config["database"]["host"])
```

```typescript
interface ApiResponse<T> {
  data: T;
  status: number;
  message: string;
}

async function fetchUser(id: string): Promise<ApiResponse<User>> {
  const res = await fetch(`/api/users/${id}`);
  return res.json();
}
```

```bash
# Install dependencies and start the dev server
npm install
npm run dev
```

```json
{
  "name": "my-project",
  "version": "1.0.0",
  "scripts": {
    "dev": "vite",
    "build": "tsc && vite build"
  }
}
```

```yaml
name: CI
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci && npm test
```

Vanliga språkidentifierare: python, js eller javascript, ts eller typescript, bash eller sh, json, yaml, html, css, sql, go, rust, java. Förhandsgranska hur din Markdown renderas med verktyget Markdown-förhandsvisning.

Tabeller (GFM)

Tabeller är ett GitHub Flavored Markdown-tillägg — de är inte en del av CommonMark-standarden. De fungerar på GitHub, GitLab, de flesta statiska webbplatsgeneratorer och VS Code, men inte i alla Markdown-processorer. Syntaxen använder pipe-tecken för att separera kolumner och en separatorrow av bindestreck för att markera rubriken. Kolon i separatorraden styr kolumnjustering.

markdown
| Feature              | CommonMark | GFM       |
| -------------------- | :--------: | :-------: |
| Headings             | ✅         | ✅        |
| Bold / Italic        | ✅         | ✅        |
| Fenced code blocks   | ✅         | ✅        |
| Tables               | ❌         | ✅        |
| Task lists           | ❌         | ✅        |
| Strikethrough        | ❌         | ✅        |
| Autolinks            | ✅         | ✅ (ext.) |

Kolumnjustering ställs in i separatorraden. :--- justerar vänster (standard). ---: justerar höger. :---: centrerar. Du behöver inte fylla kolumner med mellanslag för att göra dem visuellt justerade i källan — det är kosmetiskt och har ingen effekt på den renderade utdatan. Pipe-tecknen i början och slutet av varje rad är tekniskt valfria i GFM men att inkludera dem är den tydligare stilen.

Blockcitat

Blockcitat förser varje rad med >. Kapslade blockcitat använder >>. Du kan inkludera andra Markdown-element — rubriker, listor, kodblock — inuti ett blockcitat, vilket gör dem användbara för callout-rutor i dokumentation.

markdown
> **Note:** As of Node.js 18, the `fetch` API is available globally
> without importing anything. No more `node-fetch` dependency.

> This is a quote that spans
> multiple lines.
>
> And has a second paragraph.

> Outer quote.
>
> > Nested quote — useful for "quoting a quote" in changelogs
> > or spec discussions.

<!-- Blockquote containing a code block — useful for quoting error messages -->
> The migration failed with:
>
> ```
> ERROR: relation "users" already exists
> ```

Horisontella linjer, radbrytningar och escaping

Dessa tre funktioner snubblar folk för att deras beteende ser ut som en bugg tills du känner till reglerna. Horisontella linjer, hårda radbrytningar och bakstreck-escaping har alla specifik syntax som inte är uppenbar.

markdown
<!-- Horizontal rules: three or more of ---, ***, or ___ on their own line -->
---
***
___

<!-- All three render as <hr>. Most common style is --- -->

<!-- Hard line breaks: end a line with two trailing spaces, or use backslash -->
First line with two trailing spaces
Second line (rendered as a new line, not a new paragraph)

First line with backslash\
Second line (same result)

<!-- A single newline in Markdown source is NOT a line break — it's a space.
     Two newlines = a paragraph break. -->

<!-- Backslash escaping: put  before any Markdown character to render it literally -->
*This is not italic*
# This is not a heading
[Not a link](not-a-url)
`Not inline code`

<!-- Characters that can be escaped -->
\ ` * _ { } [ ] ( ) # + - . !
Fällan med avslutande mellanslag för radbrytning: många editors tar bort avslutande blanksteg vid sparning, vilket tyst tar bort dina hårda radbrytningar. Bakstreck (\)-metoden är mer robust om din editor eller CI-pipeline tar bort avslutande mellanslag. Alternativt, omstrukturera ditt innehåll så att du behöver färre hårda radbrytningar — de behövs oftast i poesi eller adresser, inte i dokumentation.

HTML i Markdown

De flesta Markdown-processorer passerar råa HTML oförändrat, vilket låser upp en handfull användbara mönster som ren Markdown-syntax inte kan uttrycka. Det vanligaste användningsfallet i GitHub README-filer är det hopfällbara <details>/<summary>-avsnittet. Andra användbara: <kbd> för tangentbordsgenvägar och anpassade id-attribut på rubriker för precisa ankarlänkar.

html
<!-- Collapsible section — very common in GitHub READMEs -->
<details>
<summary>Click to expand: Advanced configuration options</summary>

You can override the defaults by creating a `config.local.json` file
in the project root. Supported keys:

| Key        | Default | Description             |
| ---------- | ------- | ----------------------- |
| `port`     | 3000    | Dev server port         |
| `logLevel` | `info`  | One of debug/info/warn  |

</details>

<!-- Keyboard shortcuts -->
Press <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> to open the command palette.

<!-- Custom heading ID for anchor links -->
<h2 id="configuration-reference">Configuration Reference</h2>

<!-- Link to that heading from anywhere -->
See the [Configuration Reference](#configuration-reference).

En viktig varning: <details>-blocket kräver en tom rad mellan den avslutande </summary>-taggen och brödtextinnehållet om det innehållet innehåller Markdown. Utan den tomma raden kommer Markdown inuti inte att parsas — det renderas som råtext. Du kan rensa och formatera dina Markdown-filer med verktyget Markdown-formaterare.

Sammanfattning

Det täcker hela syntaxen — standard CommonMark och GFM-tilläggen som utvecklare använder dagligen. För det auktoritativa ordet om kantfall är CommonMark-specifikationen och GFM-specifikationen båda läsbara dokument, inte bara referensdumpar. CommonMark snabbreferens är en praktisk ensidessummering. Sidorna Markdown Guide grundläggande syntax och utökad syntax är också välorganiserade om du vill ha mer prosaförklaring vid sidan av exempel. När du behöver se exakt hur din Markdown kommer att se ut innan du committar, renderar verktyget Markdown-förhandsvisning det live i din webbläsare. För att rensa inkonsekvent formatering i ett dokument normaliserar Markdown-formateraren rubrikstilar, listmarkörer och avstånd. Och för att producera ren HTML från Markdown-utdata prettifierar HTML-formateraren vad Markdown-processorn matar ut.