Skip to content

Markdown Support

Runbooks use GitHub-flavored Markdown (GFM) with full support for common markdown elements.

# Header 1
## Header 2
### Header 3
#### Header 4
##### Header 5
###### Header 6
**Bold text**
*Italic text*
***Bold and italic***
~~Strikethrough~~
`Inline code`

Unordered lists:

- Item 1
- Item 2
- Nested item
- Another nested item
- Item 3

Ordered lists:

1. First item
2. Second item
3. Third item
1. Nested numbered item

Task lists:

- [x] Completed task
- [ ] Incomplete task
- [ ] Another task
[Link text](https://example.com)
[Link with title](https://example.com "Title text")
![Alt text](./assets/image.png)
![Image with title](./assets/image.png "Image title")

Images are resolved relative to the runbook file location.

Inline code:

Use the `npm install` command to install dependencies.

Code blocks with syntax highlighting:

```bash
echo "Hello, world!"
```
```python
def hello():
print("Hello, world!")
```
```javascript
console.log("Hello, world!");
```

Supported languages include: bash, sh, shell, python, javascript, typescript, go, rust, java, terraform, hcl, yaml, json, and many more.

> This is a blockquote.
> It can span multiple lines.
>
> And have multiple paragraphs.
---
***
___
| Header 1 | Header 2 | Header 3 |
|----------|----------|----------|
| Cell 1 | Cell 2 | Cell 3 |
| Cell 4 | Cell 5 | Cell 6 |

With alignment:

| Left-aligned | Center-aligned | Right-aligned |
|:-------------|:--------------:|--------------:|
| Left | Center | Right |

Since runbooks use MDX, you can also:

The special blocks (<Check>, <Command>, etc.) are React components that are automatically available without imports.

# My Runbook
Regular markdown text here.
<Admonition type="info" title="Note" description="This is a React component!" />
More markdown text.
Today's date: {new Date().toLocaleDateString()}

If you need to display special characters literally, escape them with a backslash:

\* This won't be italic
\# This won't be a header
\`This won't be code\`

When embedding YAML or other code in special blocks, use proper fencing:

<BoilerplateInputs id="my-form">
```yaml
variables:
- name: Example
type: string
\```
</BoilerplateInputs>

Note: Use a backslash before the closing triple backticks to escape them within the outer code block.

You can use HTML directly in markdown:

<div style="color: red;">
This text will be red.
</div>

The runbook frontend uses:

  • react-markdown for parsing markdown
  • remark-gfm for GitHub-flavored markdown features
  • rehype-highlight for syntax highlighting
  • Custom React components for special blocks

This ensures consistent rendering across different browsers and platforms.