Differences between Quarto and Markdown
Markdown and Quarto operate at different levels. Markdown is a markup language: plain text with lightweight formatting instructions for elements like headings, lists, and emphasis. It has no support for code execution, metadata, or dynamic output, which makes it ideal for static content like documentation or notes, but not for combining text with live results.
Quarto builds on Markdown to add a document generation and publishing workflow. It extends Markdown’s syntax with tools for executing embedded code, managing metadata, and rendering to multiple output formats such as HTML, PDF, and slides.
In short, Markdown provides the structure, while Quarto provides the workflow that ties narrative, computation, and presentation together.
| Layer | Example | Purpose |
|---|---|---|
| Language layer | Markdown | Provide the text structure, document content, and basic formatting syntax. |
| Processing layer | Quarto | Interpret Markdown, integrate executable code, and render everything into polished output formats such as HTML or PDF. |
| Computation layer | R (and optionally Python, Julia) | Perform analysis, generate tables and plots, and supply dynamic results embedded into the rendered document. |
RStudio ties these three layers together in one environment: Markdown structures the text, Quarto renders it and executes the embedded code, and R supplies the actual computation. This lets you write, analyze, and present your work within a single, seamless workflow.
A colleague asks you to convert your Quarto report into a plain Markdown file, so they can drop it into a different publishing system. Would you lose anything in the process, and if so, what?
Yes. You would lose the computation layer: any embedded code chunks, and the tables, figures, or inline results they generate, since Markdown alone cannot execute code. Only the plain narrative text and static formatting would survive the conversion.