MarkBloom

Beautiful PDFs from Markdown

MarkBloom

Create beautiful PDFs from Markdown, styled with Tailwind CSS. Write in the editor, preview instantly, and export to PDF with a single click.

Headings

Heading Level 3

Each heading level has distinct sizing and weight to create a clear visual hierarchy. Headings support bold, italic, and inline code too.

Lists

Unordered List

  • Live preview with instant rendering
  • One-click PDF export
  • Nested items are supported:
    • Multiple page sizes: A4, Letter, Legal
    • Syntax highlighting for 100+ languages
      • TypeScript, Python, Rust, Go, and more
  • Clean, modern typography

Ordered List

  1. Write your content in Markdown
  2. Preview the formatted output in real-time
  3. Nested ordered lists work too:
    1. Adjust the page size if needed
    2. Customize the theme
  4. Click Export PDF to generate your document

Checklist

  • Markdown editor with syntax support
  • Live preview panel
  • PDF export functionality
  • Page size selection
  • Custom theme support
  • Template library

Code Blocks

Syntax highlighting uses Shiki with the GitHub Dark theme.

interface Document {
  title: string;
  content: string;
  createdAt: Date;
}

function createDocument(title: string, content: string): Document {
  return {
    title,
    content,
    createdAt: new Date(),
  };
}

const doc = createDocument("My Report", "# Hello World");
console.log(doc.title); // "My Report"
fn main() {
    let numbers: Vec<i32> = (1..=10).collect();
    let sum: i32 = numbers.iter().sum();
    println!("Sum of 1 to 10: {sum}");
}

Code blocks without a language are also rendered:

$ npm install markbloom
$ markbloom serve --port 3000
Server running at http://localhost:3000

Tables

FeatureDescriptionStatus
Markdown ParsingFull CommonMark + GFM supportReady
Live PreviewReal-time rendered outputReady
PDF ExportOne-click document generationReady
Syntax HighlightShiki with GitHub Dark themeReady
Mermaid DiagramsFlowcharts, sequences, and moreReady
Math / LaTeXKaTeX-powered equation renderingReady
HTML SupportInline HTML like GitHubReady
Custom ThemesUser-defined color schemesComing Soon

Blockquotes

"Simplicity is the ultimate sophistication." -- Leonardo da Vinci

Tip: You can nest any Markdown syntax inside blockquotes, including bold text, and links.

Nested blockquotes are also supported.

HTML Support

Inline HTML is supported, just like on GitHub.

HTML Example

Centered headings and images work out of the box.

Click to expand

This content is hidden by default and revealed when the user clicks the summary. Markdown inside HTML blocks works too: bold, italic, code.

Diagrams

Mermaid diagrams are rendered automatically from fenced code blocks.

Flowchart

Rendering diagram…

Sequence Diagram

Rendering diagram…

Math & LaTeX

Inline math works with single dollar signs: E=mc2E = mc^2 and i=1ni=n(n+1)2\sum_{i=1}^{n} i = \frac{n(n+1)}{2}.

Block equations use double dollar signs:

ex2dx=π\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi} f(x)=1σ2πexp((xμ)22σ2)f(x) = \frac{1}{\sigma\sqrt{2\pi}} \exp\left(-\frac{(x - \mu)^2}{2\sigma^2}\right)

Matrix

A=[123456789]A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix}

Aligned Equations

(a+b)2=a2+2ab+b2(ab)2=a22ab+b2(a+b)(ab)=a2b2\begin{aligned} (a + b)^2 &= a^2 + 2ab + b^2 \\ (a - b)^2 &= a^2 - 2ab + b^2 \\ (a + b)(a - b) &= a^2 - b^2 \end{aligned}

Images

Placeholder

Created with MarkBloom