Skip to main content

Markdown Reference

Evidence supports most markdown syntax. Below are some of the most common markdown features. For more details, check out Markdown Guide.

Text Paragraphs

This is a paragraph. It can be as long as you want.

Add line breaks by leaving a blank line between paragraphs.

Text Styles

**Bold** text is wrapped in double asterisks
_Italic_ text is wrapped in single asterisks
~~Strikethrough~~ text is wrapped in double tildes
`Inline code` is wrapped in backticks

Lists

- This is a unordered list
- It uses dashes
- To indicate items

1. This is an ordered list
1. It uses numbers to indicate order
1. The numbers you type don't matter, they will be automatically numbered

Headers

# H1 Header

## H2 Header

### H3 Header

#### H4 Header

##### H5 Header

###### H6 Header
[External link](https://google.com)

[Internal link](another/page/)

Images

![An online image](https://i.imgur.com/xyI27iZ.gif)

![An image stored in the project's static folder](/my-image.png)

Storing Images and Static Files

Evidence looks for images in the /static folder in the root of your project. Create it if it doesn't exist.

+-- pages/
| `-- index.md
`-- static/
`-- my-image.png

Code Fences

In Evidence, most code fences execute SQL queries and display the results in a table.

This code fence will execute a SQL query and display the results:

```sql orders
SELECT *
FROM needful_things.orders
WHERE category = 'Sinister Toys'
```

The exception is if you use one of the reserved language names, which will render the code in a code block.

```python
names = ["Alice", "Bob", "Charlie"]

for name in names:
print("Hello, " + name)
```

```r
names <- c("Alice", "Bob", "Charlie")

for (name in names) {
print(paste("Hello, ", name))
}
```

Tables

| Column 1 | Column 2 | Column 3 |
| -------- | -------- | -------- |
| Row 1 | Row 1 | Row 1 |
| Row 2 | Row 2 | Row 2 |

To display data in a table, use a Data Table instead.

Blockquotes

> This is a blockquote
>
> It can span multiple lines
>
> > And can be nested

Frontmatter

note

Frontmatter does not support Javascript statements at this time; and things may behave unexpectedly if wrapped in {}

To attach metadata (e.g. a title) to your page, you can use Frontmatter. Note that frontmatter must appear as the first thing in your page; no content can come before it, or it won't be loaded properly.

Frontmatter is formatted like this:

---
title: Evidence Docs
---

You can put whatever data you would like here, and it uses a yaml syntax, but some properties are special:

PropertyEffect
titlechanges the name of the tab, and also adds a header to your page
hide_titleif true, the title will not show as a header on the page
descriptionis used for search engines
ogchanges how your link shows up when shared on things like Slack, Facebook, Twitter, Discord, etc
og.titlechanges the title that appears in the embed; if this is not specified, but title is, then title is used (and vice versa)
og.descriptionchanges the body of the embed
og.imagewill appear in the embed if specified, but it is not required.
queriesreferences SQL queries stored in the /queries directory.

Anything outside of these values won't do anything on their own, but they will be accessible as variables on the page.

Partials

note

Partials do not support live reload, or hot module replacement. You will need to refresh the page when you change a partial.

./pages/index.md

{@partial "my-first-partial.md"}

And some content specific to this page.

./partials/my-first-partial.md

# This is my first partial

This is some content in the partial.

Evidence supports re-using chunks of Evidence markdown using Partials.

Partials are placed in the ./partials folder, and can be referenced in your project with {@partial "path/to/partial.md"} (do not include the /partial folder in the path).