Markdown to Typst
Paste Markdown or upload a .md file and this Markdown to Typst converter writes Typst markup as you type. Headings, lists, tables, links and code carry over, and every LaTeX formula in the Markdown is rewritten in Typst's own math syntax.
Typst
= Gaussian integrals
The integral of $e^(-x^2)$ over the real line is a classic result.
== Result
$ integral_(-infinity)^infinity e^(-x^2) thin d x = sqrt(pi) $
- Square it and switch to #strong[polar coordinates].
- See #link("https://en.wikipedia.org/wiki/Gaussian_integral")[Wikipedia].
#figure(
table(
columns: 2,
align: (left, right),
stroke: none,
table.hline(),
table.header([*Method*], [*Steps*]),
table.hline(stroke: 0.5pt),
[Polar], [3],
[Series], [5],
table.hline(),
),
)
It costs \$5 to print, and it appears in statistics.#footnote[The normal density integrates to 1 because of it.]
Notes on paper or in a PDF? Convert them to LaTeX first, then on to Typst.
Convert a fileHow to convert Markdown to Typst
Paste or upload the Markdown
Paste text or upload a .md file from Obsidian, Notion, Typora, a GitHub README or a Jupyter export. The Markdown to Typst conversion runs in your browser on every keystroke, so you see the Typst at once and nothing is sent anywhere. Files up to 2 MB are accepted, which covers even long theses written in Markdown.
Choose markup or a complete document
Markup only gives Typst content to paste into an existing file or template. Complete document adds #set rules for an A4 page, 11 pt text and justified paragraphs, plus a bibliography call when the Markdown cites sources. You can also turn the first # into a centered title and number the headings.
Copy, then compile
Copy the result or download it as a .typ file, then open it in the Typst web app or compile it with typst compile notes.typ. Put any images next to the file, and a refs.bib file when you use citations. If something looks off in the PDF, edit the Markdown and the Markdown to Typst output updates right away, so you can fix the source instead of the result.
What converts, and how
Text, headings and lists
# headings become =, == and so on. Bold and italics become #strong[…] and #emph[…], strikethrough #strike[…], links #link("…")[…], and inline code stays in backticks. Bullet lists use -, numbered lists keep their numbers, and task items get ☐ and ☒ boxes. Nested lists keep their indentation, and a line break inside a paragraph stays a soft break, as it would in Markdown.
LaTeX math becomes Typst math
Markdown math is LaTeX, but Typst has its own math syntax. Each $…$ and $$…$$ formula is converted, so \frac{a}{b} becomes a/b, \alpha becomes alpha, \mathbb{R} becomes RR and pmatrix becomes mat(…). Display formulas are written with spaces inside the dollars, which is how Typst marks block equations.
Tables, figures, code and notes
Pipe tables become #table with each column's alignment and a header row, styled with three horizontal rules. An image on its own line becomes a #figure with its alt text as caption. Code fences stay as raw blocks, footnotes become #footnote[…], and [@key] citations become @key. A horizontal rule becomes #line(length: 100%), and a blockquote becomes #quote(block: true)[…].
Typst details worth knowing
Why some characters get a backslash
In Typst, #, $, *, _, @, <, [, ] and ~ all mean something, and // starts a comment. The Markdown to Typst converter escapes them in plain text so a price like $5 or an address like @handle prints as written, while links stay clickable.
Citations and the bibliography
Typst reports an error for a citation with no bibliography, unlike LaTeX's warning. In a complete document a #bibliography("refs.bib") line is added for you; with markup only, make sure your main file has one. Keys are kept exactly as written, so the same refs.bib used with Pandoc or LaTeX works after the Markdown to Typst step.
Coming from LaTeX instead?
If your source is a .tex file rather than Markdown, the LaTeX to Typst converter reads sections, environments, theorem blocks and citations directly, using the same math conversion. Going the other way, the Typst to LaTeX converter turns a .typ file back into LaTeX for journals that only accept .tex.
LaTeX to TypstOfficial references: Typst documentation · CommonMark

Markdown and Typst questions
- How to bold Typst?
- Wrap the text in asterisks, *like this*, or use the function form #strong[like this]. Markdown's **double asterisks** become #strong[…] in the Markdown to Typst output, which also works next to other characters.
- Is there a free Markdown to Typst converter online?
- Yes, this one. This Markdown to Typst converter is free, needs no account, converts as you type and keeps your file in the browser.
- How do I convert Markdown to Typst with Pandoc?
- Run pandoc notes.md -t typst -o notes.typ. Pandoc keeps LaTeX math in its own way, while this page converts each formula to native Typst math.
- Can it convert Markdown tables to Typst?
- Yes. Pipe tables become #table calls with the right number of columns, the column alignment from the separator row, a bold header and horizontal rules. Inline math and formatting inside cells are converted too.
- How is Markdown math converted to Typst math?
- Each formula is parsed as LaTeX and rewritten in Typst math, for example x^{2} as x^2, \sqrt{x} as sqrt(x) and \sum_{i=1}^n as sum_(i=1)^n. Anything that cannot be converted is listed under the output.
- Can I make a PDF from Markdown with Typst?
- Yes. Convert with Complete document, save the .typ file and run typst compile, or paste it into the Typst web app and export the PDF. A Markdown to Typst workflow like this compiles in well under a second, far faster than LaTeX.
- Can Typst read Markdown directly?
- With a package such as cmarker, Typst can render Markdown inside a document, but math and styling stay limited. Converting gives you editable Typst you can fully control.
- Should I write in Markdown or Typst?
- Markdown is quicker for notes and web content; Typst gives page layout, numbering, references and precise math. Many people draft in Markdown and finish in Typst after a Markdown to Typst pass.
- How are citations and footnotes converted?
- [@key] becomes @key and a page locator such as [@key, p. 3] becomes @key[p. 3]. Footnotes written as [^1] become #footnote[…] at the place they were cited.
- What happens to images and code blocks?
- An image on its own line becomes #figure(image(…), caption: […]); an inline image becomes #image(…). Code fences keep their language and stay raw.
- Why are some characters escaped with a backslash?
- They are Typst syntax. Without the backslash, # would start code, $ math, @ a reference and // a comment, so the converter escapes them in ordinary text.
Have a whole page of notes, a scan or a PDF? Convert it to LaTeX that compiles.
Convert a file