---
layout: 'page'
uri: '/getting-started/markdown-showcase'
position: 2
slug: 'getting-started-markdown-showcase'
parent: 'getting-started'
navTitle: 'Showcase'
title: 'Markdown showcase'
description: 'Complete demonstration of all supported markdown features and rendering capabilities.'
---

# Markdown showcase

## Overview

- **Headings** (all 6 levels)
- **Text formatting** (bold, italic, strikethrough, inline code)
- **Links** (internal, external, autolinks)
- **Images** (with alt text and titles)
- **Code blocks** (with syntax highlighting for 70+ languages)
- **Lists** (ordered, unordered, nested, task lists)
- **Blockquotes** (including nested)
- **Tables** (with column alignment)
- **Horizontal rules**

---

## Headings

```markdown
# Heading Level 1
## Heading Level 2
### Heading Level 3
#### Heading Level 4
##### Heading Level 5
###### Heading Level 6
```

# Heading Level 1
## Heading Level 2
### Heading Level 3
#### Heading Level 4
##### Heading Level 5
###### Heading Level 6

---

## Text Formatting

```markdown
This is a regular paragraph with **bold text**, *italic text*, and ***bold italic text***.

You can also use ~~strikethrough~~ for deleted text.

Inline `code` can be highlighted with backticks.
```

This is a regular paragraph with **bold text**, *italic text*, and ***bold italic text***.

You can also use ~~strikethrough~~ for deleted text.

Inline `code` can be highlighted with backticks.

---

## Links

### External Links

```markdown
Visit [Anthropic](https://www.anthropic.com) to learn more about Claude.

Check out [GitHub](https://github.com "GitHub Homepage") with a title attribute.

Automatic link detection: https://www.example.com
```

Visit [Anthropic](https://www.anthropic.com) to learn more about Claude.

Check out [GitHub](https://github.com "GitHub Homepage") with a title attribute.

Automatic link detection: https://www.example.com

### Internal Links

Absolute URI links are the preferred way to link between pages.

```markdown
Absolute URI: [Roadmap](/roadmap)

Relative path: [Roadmap](./roadmap)

Nested path: [Configuration](./configuration/general)

With anchor: [Roadmap section](/roadmap#mcp-server)
```

Absolute URI: [Roadmap](/roadmap)

Relative path: [Configuration](/configuration/general)

With anchor: [Roadmap section](/roadmap#mcp-server)

---

## Images

Images support both external URLs and local files. Relative paths are resolved automatically.

```markdown
![Claude AI Logo](https://jz.strategio.dev/temp/assets/strategio-CBNG4yxB.svg)

![Image with title](https://jz.strategio.dev/temp/assets/strategio-CBNG4yxB.svg "Placeholder Image")

![Local test image](./files/test-image.png "Test image served from filesystem")

![Large image 2000x2000](./files/large-test-image.png "Large 2000x2000 image for responsivity testing")
```

External image from URL:

![Claude AI Logo](https://jz.strategio.dev/temp/assets/strategio-CBNG4yxB.svg)

External image with title attribute:

![Image with title](https://jz.strategio.dev/temp/assets/strategio-CBNG4yxB.svg "Placeholder Image")

Local image served from filesystem (200x50):

![Local test image](./files/test-image.png "Test image served from filesystem")

Large local image for responsivity testing (2000x2000):

![Large image 2000x2000](./files/large-test-image.png "Large 2000x2000 image for responsivity testing")

---

## Files

Links to static files open in a new browser tab. Relative paths are resolved automatically.

```markdown
[Download example document](./files/example-document.txt)

[Download empty archive](./files/empty-archive.zip)

[Open image in new tab](./files/test-image.png)
```

[Download example document](./files/example-document.txt)

[Download empty archive](./files/empty-archive.zip)

[Open image in new tab](./files/test-image.png)

---

## Code Blocks

Use triple backticks with optional language identifier for syntax highlighting:

~~~markdown
```go
// your code here
```
~~~

### Supported Languages

apache, asm, bash, batch, c, clojure, cmake, cpp, csharp, css, dart, diff, dockerfile, elixir, erlang, fish, git-commit, gitignore, go, graphql, haskell, html, ini, java, javascript, json, json5, jsonc, jsx, kotlin, latex, less, lua, makefile, markdown, mdx, nginx, objective-c, perl, php, plaintext, plsql, powershell, protobuf, python, r, regex, ruby, rust, sass, scala, scss, sql, svelte, swift, toml, tsx, typescript, viml, vue, wasm, xml, yaml, zsh

### Plain Text

```
This is a code block without syntax highlighting.
Just plain monospace text.
```

### Go

```go
package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}
```

### JavaScript

```javascript
const greeting = (name) => {
    return `Hello, ${name}!`;
};

console.log(greeting('World'));
```

### Python

```python
def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

print([fibonacci(i) for i in range(10)])
```

### SQL

```sql
SELECT u.id, u.username, COUNT(p.id) as post_count
FROM users u
LEFT JOIN posts p ON u.id = p.user_id
WHERE u.active = true
GROUP BY u.id, u.username
HAVING COUNT(p.id) > 5;
```

### Bash

```bash
#!/bin/bash
for file in *.md; do
    echo "Processing $file..."
done
```

---

## Unordered List

```markdown
- First item
- Second item
- Third item
  - Nested item 1
  - Nested item 2
    - Deeply nested item
- Fourth item
```

- First item
- Second item
- Third item
  - Nested item 1
  - Nested item 2
    - Deeply nested item
- Fourth item

---

## Ordered List

```markdown
1. First step
2. Second step
3. Third step
   1. Sub-step A
   2. Sub-step B
4. Fourth step
```

1. First step
2. Second step
3. Third step
   1. Sub-step A
   2. Sub-step B
4. Fourth step

---

## Task List

```markdown
- [ ] Unchecked task
- [x] Completed task
- [ ] Another pending task
  - [x] Nested completed subtask
  - [ ] Nested pending subtask
```

- [ ] Unchecked task
- [x] Completed task
- [ ] Another pending task
  - [x] Nested completed subtask
  - [ ] Nested pending subtask

---

## Blockquotes

```markdown
> This is a simple blockquote.
> It can span multiple lines.

> **Nested formatting** works inside blockquotes.
>
> You can have multiple paragraphs.
>
> > Even nested blockquotes!
> >
> > - And lists inside quotes
> > - Another item
```

> This is a simple blockquote.
> It can span multiple lines.

> **Nested formatting** works inside blockquotes.
>
> You can have multiple paragraphs.
>
> > Even nested blockquotes!
> >
> > - And lists inside quotes
> > - Another item

---

## Simple Table

```markdown
| Name    | Age | Role      |
|---------|-----|-----------|
| Alice   | 30  | Developer |
| Bob     | 25  | Designer  |
| Charlie | 35  | Manager   |
```

| Name    | Age | Role      |
|---------|-----|-----------|
| Alice   | 30  | Developer |
| Bob     | 25  | Designer  |
| Charlie | 35  | Manager   |

---

## Table with Alignment

```markdown
| Left Aligned | Center Aligned | Right Aligned |
|:-------------|:--------------:|--------------:|
| Apple        | 100            |         $1.50 |
| Banana       | 200            |         $0.75 |
| **Total**    | **300**        |     **$2.25** |
```

| Left Aligned | Center Aligned | Right Aligned |
|:-------------|:--------------:|--------------:|
| Apple        | 100            |         $1.50 |
| Banana       | 200            |         $0.75 |
| **Total**    | **300**        |     **$2.25** |

---

## Horizontal Rules

```markdown
Content above the rule.

---

Content below the rule.
```

Content above the rule.

---

Content below the rule.

Alternative syntax: `***` or `___`

---

## Combined Example

````markdown
The `ParseMarkdown()` function accepts a **file path** and returns parsed content:

```go
func ParseMarkdown(path string) (*Ast, error) {
    content, err := os.ReadFile(path)
    if err != nil {
        return nil, err
    }
    return parser.Parse(content)
}
```

> **Note:** Make sure the file exists before calling this function.

**Steps to use:**

1. Import the package
2. Call the function
3. Handle the result

| Parameter | Type     | Description          |
|-----------|----------|----------------------|
| `path`    | `string` | Path to markdown file |
````

The `ParseMarkdown()` function accepts a **file path** and returns parsed content:

```go
func ParseMarkdown(path string) (*Ast, error) {
    content, err := os.ReadFile(path)
    if err != nil {
        return nil, err
    }
    return parser.Parse(content)
}
```

> **Note:** Make sure the file exists before calling this function.

**Steps to use:**

1. Import the package
2. Call the function
3. Handle the result

| Parameter | Type     | Description           |
|-----------|----------|-----------------------|
| `path`    | `string` | Path to markdown file |

---

[← Frontmatter guide](/getting-started/markdown-frontmatter.md) | [Commands →](/getting-started/commands.md)