Markdown Reference

Complete reference for every Markdown element supported in Papersmith, with side-by-side syntax and rendered output for each.

ℹ️
Papersmith uses markdown-it with GitHub Flavored Markdown (GFM) extensions — tables, strikethrough, and fenced code blocks are all supported. Raw HTML passthrough, smart punctuation, and URL auto-linking are also enabled.

Headings#

Create headings using one to six # characters followed by a space. The number of # symbols maps directly to the HTML heading level (H1–H6).

MarkdownRendered output
# Heading 1Heading 1
## Heading 2Heading 2
### Heading 3Heading 3
#### Heading 4Heading 4
##### Heading 5Heading 5
###### Heading 6Heading 6
💡
PDF tip: H1 is best used once per document as the title. H2 and H3 are ideal for sections and subsections. Using the Table of Contents option in the toolbar auto-generates a TOC from your headings.

Text Formatting#

Wrap text in special characters to apply inline formatting. All of these work anywhere within a paragraph, heading, list item, or table cell.

MarkdownRendered output
**bold text**bold textAlso: __bold text__
*italic text*italic textAlso: _italic text_
***bold and italic***bold and italicAlso: ___bold and italic___
~~strikethrough~~strikethrough
`inline code`inline code
💡
Shortcuts: Select text and press Ctrl+B for bold, Ctrl+I for italic, Ctrl+` for inline code. Or use the floating toolbar that appears on selection.

Blockquotes#

Prefix a line with > to create a blockquote. Add more > symbols to nest blockquotes.

MarkdownRendered output
> This is a blockquote.
This is a blockquote.
> First level >> Nested quote
First level
Nested quote
> **Bold** inside a quote > with *italic* too
Bold inside a quote with italic too

Lists#

Unordered lists#

Use -, *, or + followed by a space to create bullet list items. Indent with two or four spaces to create nested lists.

- First item
- Second item
  - Nested item
  - Another nested
    - Deeply nested
- Third item

Ordered lists#

Use a number followed by a period and a space. The actual numbers you use don't matter — the renderer increments automatically.

1. First item
2. Second item
   1. Nested ordered
   2. Another nested
3. Third item

Task lists#

Use - [ ] for an unchecked item and - [x] for a checked item (case-insensitive). This is a GFM extension.

MarkdownRendered output
- [ ] Unchecked task☐ Unchecked task
- [x] Completed task☑ Completed task
ℹ️
Task list items render as interactive checkboxes in the preview pane via the github-markdown-css stylesheet. In the exported PDF, they render as standard bullet list items with [ ] or [x] text.

Code Blocks#

Inline code#

Wrap code in single backticks for inline code. This is rendered in a monospace font and is ideal for referencing variable names, commands, or short snippets.

MarkdownRendered output
Use `npm install` to install.Use npm install to install.
Set `const x = 42` in your file.Set const x = 42 in your file.

Fenced code blocks#

Use triple backticks to open and close a code block. Add a language identifier immediately after the opening backticks to enable syntax highlighting.

```typescript
function greet(name: string): string {
  return `Hello, ${name}!`
}

console.log(greet('World'))
```

Papersmith uses Prism.js for syntax highlighting. The following language identifiers are supported:

typescriptjavascriptpythonbashjsonhtmlcssmarkupccppjavagorustsqlyamlmarkdowndiffshell
💡
Use the /codeblock slash command (or /cb) to insert a fenced code block. The cursor is placed inside so you can type the language identifier immediately.

Horizontal Rules#

Create a horizontal rule (a thematic break) using three or more dashes, asterisks, or underscores on their own line.

MarkdownRendered output
---
***
Same output as ---
___
Same output as ---
ℹ️
Leave a blank line before and after the --- to avoid it being interpreted as a Setext-style heading underline.
MarkdownRendered output
[Link text](https://example.com)Link text
[Link text](https://example.com "Tooltip")Link text(with tooltip on hover)
https://example.comhttps://example.comAuto-linked (linkify is enabled)
[ref link][my-ref] [my-ref]: https://example.comref link(reference-style)
💡
Press Ctrl+K with text selected to wrap it in a link template automatically. The cursor is placed inside the URL parentheses.

Images#

Images use the same syntax as links, prefixed with !. The text in brackets becomes the alt attribute.

MarkdownRendered output
![Alt text](https://example.com/img.png)🖼 image
![Alt text](./local-image.png)🖼 local imageLocal file paths work in PDF export
![Alt](url "Optional title")🖼 with titleTitle shown as tooltip on hover
ℹ️
PDF image notes: Images loaded from external URLs are included in the PDF automatically. For best results, use absolute URLs (starting with https://). Base64-encoded images embedded in the Markdown also work reliably in PDF output.

Tables#

Tables use pipe characters (|) to separate columns and a row of dashes to separate the header from the body. Column alignment is controlled by colons in the separator row.

| Name     | Role      | Status  |
|----------|-----------|---------|
| Alice    | Developer | Active  |
| Bob      | Designer  | Away    |

Column alignment#

MarkdownRendered output
|:---------|Left-aligned (default)
|---------:|Right-aligned
|:--------:|Center-aligned
| Left     | Center   | Right    |
|:---------|:--------:|---------:|
| Apple    | Banana   | Cherry   |
| 1        | 2        | 3        |
💡
Use the /table slash command to insert a pre-formatted 3-column table template. The column widths don't need to be padded — just the pipes and at least one dash per column are required.

Typographer (Smart Punctuation)#

Papersmith enables markdown-it's typographer option, which automatically converts certain ASCII sequences into typographically correct Unicode characters.

MarkdownRendered output
"double quotes"“double quotes”
'single quotes'‘single quotes’
(c) (r) (tm)©   ®   ™
--– (en dash)
---— (em dash)
...… (ellipsis)
ℹ️
Smart punctuation applies to regular paragraph text. It does not apply inside code blocks or inline code, where characters are always literal. If you need a literal -- in text, escape it: \-\-.

HTML in Markdown#

Raw HTML is enabled. You can embed any HTML element directly in your Markdown and it will be passed through to the rendered output and PDF.

<!-- Page break hint for PDF -->
<div style="page-break-after: always"></div>

<!-- Centered text -->
<p style="text-align: center">Centered paragraph</p>

<!-- Custom color -->
<span style="color: #e74c3c">Red text</span>
💡
HTML is your escape hatch for anything Markdown can't express — custom colors, centered text, special spacing, or PDF page break control.

PDF Export Notes#

Most Markdown renders identically in the preview and the exported PDF. A few things behave differently or require special handling.

Page breaks PRO#

Use <!-- pagebreak --> on its own line to force a new PDF page at that position. In the live preview it appears as a dashed indicator line. You can also insert one via the /Page Break slash command. Page breaks require a Pro account — the syntax is ignored in the free plan.

## Chapter One

Content here...

<!-- pagebreak -->

## Chapter Two

This starts on a new page.

External links (https://) are fully clickable in the exported PDF. Internal anchor links (#section) are not currently navigable within the PDF — this is a known limitation.

Code block wrapping#

Long lines in fenced code blocks are clipped at the PDF page margin and do not wrap automatically. Break long lines manually, or reduce the font size via the toolbar before exporting.

Themes affect rendering#

The selected PDF theme controls typography, heading colors, blockquote styles, and code block appearance. Switch themes from the THEME dropdown in the toolbar — the live preview updates immediately so you can compare before exporting.