Markdoc is a powerful, flexible, Markdown-based authoring framework.
From personal blogs to massive documentation sites, Markdoc is a content authoring system that grows with you.
What is Markdoc?
Markdoc is a Markdown-based syntax and toolchain for creating custom documentation sites. Stripe created Markdoc to power our public docs.
Markdoc is open-source—check out its source to see how it works.
How is Markdoc different?
Markdoc uses a fully declarative approach to composition and flow control, where other solutions… Read more.
Next steps
Open sourceMaintain full control over your code and content. Markdoc is open-source and fully extensible. | Developer & writer friendlyMarkdoc delivers a powerful, flexible, developer experience (DX) with an equally capable authoring experience (AX). | Adopt anywhereUse Markdoc to create interactive documentation experiences, static content sites, authoring tooling, and more. |
Get started quickly
Markdoc core is a lightweight package containing everything you need to get started. If you want to get going even faster, check out our Next.js plugin and deploy a Markdoc documentation site with zero boilerplate.
npm install @markdoc/markdoc
import Markdoc from '@markdoc/markdoc'; const doc = ` # Hello world. > My first Markdoc page `; const ast = Markdoc.parse(doc); const content = Markdoc.transform(ast); const html = Markdoc.renderers.html(content);
Markdoc powers Stripe documentation
Stripe created Markdoc to power its largest and most detailed content site. Since then, we have adopted it across the company, writing hundreds of thousands of lines of Markdoc to create thousands of pages of expressive, custom documentation.
Familiar syntax
Markdoc is a syntactic extension of Markdown, so you can keep using all the syntax and tooling you are used to.
Easily extensible
Markdoc lets you customize all aspects of the system, from custom tags and nodes to entirely new renderers.
Built-in validation
You can add custom validation throughout your content system, ensuring nothing breaks and your content remains consistent.