Docs menu
MarkdownWhat renders
What renders
The converter's markdown dialect: CommonMark plus the GitHub extensions people actually use, typeset natively.
The dialect supports CommonMark and GitHub extensions, with paragraph-wide line breaking and font shaping. Automatic hyphenation uses your document language. Every feature below has a runnable example you can download as-is or open in the editor.
Blocks#
- Headings
#through######plus setext (===/---), auto-bookmarked in the PDF outline. - Paragraphs with typographic quotes, dashes, and ellipsis (opt-out:
smart_typography) and hard line breaks (two trailing spaces or a backslash). - Blockquotes with nesting, including GitHub alert syntax (
> [!NOTE],[!TIP],[!IMPORTANT],[!WARNING],[!CAUTION]). - Fenced code blocks with syntax highlighting for fourteen languages, among them c, json, bash, python, javascript, rust, swift, go, java, html, css, sql, yaml, toml.
- Lists: bullets (two-space nesting), ordered (auto-renumbered), task lists (
- [ ]/- [x]→ clickable PDF checkboxes), definition lists. - Tables with column alignment (
|:---:|) and headers that repeat across page breaks. - Horizontal rules (
---). - YAML front matter, stripped from the body and mapped to PDF document metadata (
title:,author:).theme: darkortheme: lightsets the page theme for every render of the document.
Inline#
- Bold, italic,
code,strikethrough, ==highlight==, kbd, sup, sub; they nest freely. - Links: inline
[text](url), reference[text][label], autolinks<https://…>. Internal anchors ([text](#heading)) become real PDF GoTo jumps. - Footnotes:
[^1]references collect as numbered footnotes at the end of the document. - Emoji: color emoji from a bundled COLR font, plus
:rocket:-style shortcodes for ~140 common names (opt-out:emoji). - Images: base64 data-URI
render inline (opt-out:images). Images linked from the web are loaded for signed-in accounts with documents left, each time you convert, and never stored; see how we load images. - Minimal inline HTML:
<b> <i> <u> <s> <sup> <sub> <kbd> <mark> <br>.
Math#
Math is written in LaTeX notation and typeset natively, as vector glyphs: $…$ inline and $$…$$ on its own line (opt-out: math). Fractions, radicals, sums and integrals, matrices (pmatrix, bmatrix, vmatrix), piecewise cases, aligned derivations, arrays, delimiters that grow to fit, and braces over and under terms. Formulas work in headings, lists, tables, quotes and footnotes; see the math examples.
Diagrams and charts#
```mermaid fences render as native vector drawings where they are written, scaled into the text column. The first line of the fence selects one of 33 kinds:
- Flow and structure:
flowchart,swimlane,block,architecture,agentflow. - Software:
sequenceDiagram,zenuml,classDiagram,stateDiagram,erDiagram,C4Context,requirementDiagram,packet,gitGraph,usecase,eventmodeling,railroad. - Planning and analysis:
gantt,timeline,journey,kanban,mindmap,treeView,ishikawa,cynefin,wardley. - Charts:
pie,xychart,quadrantChart,radar,sankey,treemap,venn.
graph is the same as flowchart; the C4 family also takes C4Container, C4Component, C4Dynamic and C4Deployment; railroad diagrams take a grammar in ABNF, EBNF or PEG (railroad-abnf, railroad-ebnf, railroad-peg). A fence that does not parse prints as a code block, so a typo never breaks the document. With mermaid off, every fence prints as code.
Diagram pages are opt-in (mermaid_appendix). Each diagram then gets a page of its own after the document body, an A size from A4 to A0, landscape or portrait, whichever fits it at natural scale. In the text the fence leaves a link (Diagram 3: Pipeline Overview →); the page is captioned with a link back to that spot, and each diagram is a bookmark in the PDF outline. A diagram without a title is named after its kind. This keeps a very wide flowchart readable instead of squeezing it into the text column. See the diagram and chart examples.
Barcodes and QR codes#
A ```barcode fence becomes a native vector barcode (opt-out: barcode). The body is key: value lines; type and data are required.
```barcode
type: qr
data: https://example.com/menu
module-shape: rounded
ec: H
width: 220
```21 types: QR, Micro QR, rectangular Micro QR, EAN-13, EAN-8, UPC-A, UPC-E, Code 128 (GS1-128 with gs1: true), Code 39, Code 93, Codabar, ITF, ITF-14, MSI, GS1 DataBar (omnidirectional, limited, expanded), Data Matrix, PDF417, Aztec and MaxiCode. QR codes take module and corner shapes, colors, gradients, a logo and the error-correction level; linear codes take label position, text, colors and size. An option a type cannot use is ignored with a warning; data the type rejects prints as a code block with the reason. See the barcode examples.
SVG graphics#
A ```svg fence renders as native vector art (opt-out: svg). The body is a full SVG document, bare path data that takes the text color, or key: value lines (d, fill, stroke, stroke-width, width, …). Gradients, clip paths, markers, <use> symbols and text on a path are drawn. A body that is not valid SVG prints as a code block. See the SVG examples.
Typography#
Lines are broken across the whole paragraph, not one line at a time, so the spacing stays even. Mixed-direction scripts, such as Hebrew and Arabic, and Japanese and Chinese line breaking are supported. Fonts cover Latin, Greek, Cyrillic, Devanagari, Chinese, Japanese, Korean, Arabic, Hebrew, Thai, Khmer, Myanmar, Bengali, Gurmukhi, Gujarati, Oriya, Tamil, Telugu, Kannada, Malayalam, Georgian, Armenian, Ethiopic, Coptic and color emoji. Chinese takes simplified shapes for a zh-CN document and traditional shapes for a zh-TW one; without a Chinese language, characters shared with Japanese take Japanese shapes. Choose light or dark pages with the editor's theme control, or with theme: in front matter, which wins over the control.
Language and hyphenation#
Automatic hyphenation is enabled by default. It works only when a document language is specified and matching language rules are available. Without a language, words wrap as before, without automatic hyphenation. Language is never guessed from the text or your browser settings.
Set language in the JSON render request or in Markdown front matter. Use a language tag such as en-US, en-GB, de or ro. The editor's output settings provide the same controls.
---
language: en-GB
hyphenation: true
---
Your document starts here.To disable automatic hyphenation, set features.hyphenation to false in JSON, or hyphenation: false in front matter. Existing hyphens and author-inserted soft hyphens remain available. Code and literal URLs are excluded from automatic hyphenation.
{
"markdown": "# Report\n\nYour document starts here.",
"language": "en-GB",
"features": { "hyphenation": false }
}Each explicit request setting overrides its front-matter value. An omitted setting uses front matter, then the default. An unsupported language leaves automatic hyphenation inactive when the setting is omitted. Explicitly enabling it for an unsupported language returns 400 invalid_request. A missing language always leaves automatic hyphenation inactive.
Supported hyphenation language tags
Tags are case-insensitive. Use a listed tag or alias; other regional variants do not automatically select a dictionary.
af, as, be, bg, ca, cop, cs, cu, cy, da, de-1901, de-1996, de-CH-1901, el-monoton, el-polyton, en-GB, en-US, eo, es, et, eu, fi-x-school, fi, fr, fur, ga, gl, grc, gu, hr, hsb, hu, hy, ia, id, is, it, ka, kmr, kn, la-x-classic, la-x-liturgic, la, lt, lv, mk, ml, mn-Cyrl, mr, mul-Ethi, nl, nn, oc, or, pa, pi, pl, pms, pt, rm, ro, ru, sa, sh-Cyrl, sh-Latn, sk, sl, sq, sr-Cyrl, sv, ta, te, th, tk, tr, uk, zh-Latn-pinyin
Aliases: en uses en-US; en-UK uses en-GB; de, de-DE and de-AT use de-1996. fr-FR and fr-CA use fr; es-ES and es-MX use es; pt-PT and pt-BR use pt. ro-RO, ru-RU and uk-UA use ro, ru and uk respectively.