Extensions

In this section, we'll look at at the Markdown extensions and components available to you when writing documentation.

Header Anchors

Header tags such as # Heading 1, ## Heading 2, and so on will automatically include anchor tags. When clicked the browser will jump to that heading. Try hovering over any heading on this page and clicking the #.

Links

Links will be mapped to the correct slug and can be set in any of the following ways:

[home](/index.html)
[foo index](/foo/)
[heading](#heading)
[relative file with .md ext](../foo/bar.md)
[relative file with .html ext](../foo/bar.html)
[external](https://kitdocs.vercel.app)

Frontmatter

YAML frontmatter is supported.

---
title: Page Title
description: My awesome page description.
---

Access it via the store: {$frontmatter.description}

...

Table of Contents

The following will output a list containing all the headings on the page.

[[toc]]

GitHub Tables

| Column 1     | Column 2 |      Column 3 |
| ------------ | :------: | ------------: |
| left-aligned | centered | right-aligned |
| left-aligned | centered | right-aligned |
| left-aligned | centered | right-aligned |
Column 1Column 2Column 3
left-alignedcenteredright-aligned
left-alignedcenteredright-aligned
left-alignedcenteredright-aligned

Admonitions

Note

:::admonition type="note"
This is a note.
:::

:::admonition type="note" This is a note. :::

Info

:::admonition type="info"
This is informational.
:::

:::admonition type="info" This is informational. :::

Tip

:::admonition type="tip"
This is a tip.
:::

:::admonition type="tip" This is a tip. :::

Warning

:::admonition type="warning"
This is a warning.
:::

:::admonition type="warning" This is a warning. :::

Danger

:::admonition type="danger"
This is dangerous.
:::

:::admonition type="danger" This is dangerous. :::

Experimental

:::admonition type="experimental"
This is experimental.
:::

:::admonition type="experimental" This is experimental. :::

Emojis

You can find a list of all available emojis here.

Emojis are awesome :tada:

Emojis are awesome πŸŽ‰

Yes/No

:::yes
You should do this.
:::

:::no
You should NOT do this.
:::

You should do this.

You should NOT do this.

Steps

:::steps

!!!step title="Step 1"|description="This is a description for step 1."

```js
const step = 1
```

!!!

!!!step title="Step 2"|(slot=description)=This is a description for step 2 with markdown `code`.

```js
const step = 2
```

!!!

:::

!!!step title="Step 1"|description="This is a description for step 1."

const step = 1

!!!

!!!step title="Step 2"|(slot=description)=This is a description for step 2 with markdown syntax code.

const step = 2

!!!

Vertical Orientaton

:::steps

!!!step title="Step 1"|description="This is a description for step 1."|orientation="vertical"

```js
const step = 1
```

!!!

:::

!!!step title="Step 1"|description="This is a description for step 1."|orientation="vertical"

const step = 1

!!!

Code Fence

You can find all supported languages here.

Default

```js
const foo = 1
```
const foo = 1

Title

```js title="file.js"
const foo = 1
```
const foo = 1

Slot

```js slot="usage"
const foo = 1
```

```js slot="example"
const bar = 1
```

Terminal

```bash
npm create svelte docs
cd docs
```
npm create svelte docs
cd docs

Copy

```js copy
const foo = 1
```
const foo = 1

Line Numbers

```js lineNumbers
const foo = 1

function bar() {
	// ...
}
```
const foo = 1

function bar() {
	// ...
}

Line Highlights

You can highlight specified lines of your code blocks by adding line markers to your fenced code blocks.

  • Single Line: {1}
  • Line Ranges: {2-6}
  • Multiple Lines: {2,4-10,12,14,16-20}
```js {1,3-5}
const foo = 1

function bar() {
	// ...
}
```
const foo = 1

function bar() {
	// ...
}

Copy Highlight

```js copyHighlight{3-5}
const foo = 1

function bar() {
	// ...
}
```
const foo = 1

function bar() {
	// ...
}

Copy Steps

This will step through the code line by line, highlight it and copy it. Each time you tap the copy button it'll move to the next line.

```bash copySteps
npm create svelte docs
cd docs
npm i
```
npm create svelte docs
cd docs
npm i

Copy Highlight Steps

This will step through each of the highlighted ranges and copy them one by one. Each time you tap the copy button it'll move to the next highlighted range.

```js copySteps{1,3-5}
const foo = 1

function bar() {
	// ...
}
```
const foo = 1

function bar() {
	// ...
}

Multiple Options

Provide multiple options by separating them with a vertical bar |:

```js title="file.js"|copy|lineNumbers{1,3-5}
const foo = 1

function bar() {
	// ...
}
```
const foo = 1

function bar() {
	// ...
}

Imported Code Fence

You can import code blocks from files with the following syntax:

@[code](../foo.js)

If you want to partially import the file:

@[code{1-10}](../foo.js)

The code language is inferred from the file extension, however, you can specify it like so:

@[code js](../foo.js)

In fact, the second part inside the [] will be treated as the mark of the code fence, so it supports all the syntax mentioned above:

@[code js|title=file.js|copy{2,4-5}](../foo.js)