Transform Markdown into stunning, publication-ready PDFs
Quick Start • Features • Theme Gallery • CLI Reference • Custom Themes
# Install from source (requires Rust 1.85+) cargo install --path . # Render a Markdown file to PDF silkprint document.md # Choose a theme silkprint document.md --theme nord # See all 40 themes silkprint --list-themes- 40 built-in themes across 8 aesthetic families — from electric neon to academic serif
- Rich syntax highlighting for 20+ languages via TextMate grammars
- GitHub-style alerts — note, tip, important, warning, caution with themed icons
- Typst-native math — inline and display equations, matrices, Greek letters
- Tables with header styling, alternating row stripes, and column alignment
- YAML front matter — title, subtitle, author, date, theme, TOC control
- Title pages — auto-generated from front matter metadata
- Table of contents — configurable depth and styling
- Footnotes — Typst-native with auto-numbering and page placement
- Task lists, description lists, wikilinks, emoji shortcodes
- Print-safe themes validated with WCAG contrast checks
- Custom themes via TOML with 24 configurable sections
- Color emoji support via bundled Noto Color Emoji
SilkPrint ships with 40 themes across 8 families. Every theme controls typography, colors, syntax highlighting, spacing, and component styling.
![]() | ![]() |
| silk-light — Clean serif elegance | sakura — Cherry blossom pink |
![]() | ![]() |
| silkcircuit-neon — Electric purple + cyan | nord — Arctic blue-grey calm |
![]() | ![]() |
| dracula — Dark purple elegance | catppuccin-mocha — Warm soothing pastels |
| Family | Themes | Variants |
|---|---|---|
| Signature | silk-light, silk-dark, manuscript, monochrome | Light + Dark |
| SilkCircuit | silkcircuit-dawn, neon, vibrant, soft, glow | Dark + Dawn |
| Developer | nord, dracula, solarized-light/dark, catppuccin-latte/mocha, gruvbox-light/dark, tokyo-night, rose-pine | Mixed |
| Classic | academic, typewriter, newspaper, parchment | Light |
| Nature | forest, ocean, sunset, arctic, sakura | Mixed |
| Futuristic | cyberpunk, terminal, hologram, synthwave, matrix | Dark |
| Artistic | noir, candy, blueprint, witch | Mixed |
| Greyscale | greyscale-warm, greyscale-cool, high-contrast | Light |
Use silkprint --list-themes to see descriptions, variants, and print-safe status.
silkprint [OPTIONS] [INPUT] Arguments: [INPUT] Markdown file to render Options: -o, --output <PATH> Output path ("-" for stdout) [default: <input-stem>.pdf] -t, --theme <NAME> Theme name or path to .toml file [default: silkcircuit-dawn] -p, --paper <SIZE> Paper size: a4, letter, a5, legal [default: a4] --list-themes List all available themes --check Validate input + theme without rendering --dump-typst Emit generated Typst markup instead of PDF --open Open PDF in system viewer after rendering --toc Force-enable table of contents --no-toc Force-disable table of contents --no-title-page Suppress title page --font-dir <DIR> Additional font search directory -v, --verbose... Increase verbosity (-v, -vv, -vvv) -q, --quiet Suppress all output except errors # Render with a specific theme and paper size silkprint report.md --theme academic --paper letter -o report.pdf # Preview — render and open in system viewer silkprint notes.md --theme silk-light --open # Validate without rendering (CI-friendly) silkprint document.md --check # Inspect generated Typst markup silkprint document.md --dump-typst > output.typ # Write PDF to stdout (piping) silkprint document.md -o - | lpr--- title: My Document subtitle: A Detailed Analysis author: Jane Doe date: 2025-06-15 theme: nord toc: true paper: letter ---Create a .toml file with 24 configurable sections:
[meta] name = "My Theme" version = "1" variant = "light" print_safe = true [colors] primary = "#4a5dbd" background = "#ffffff" text = "#1a1a2e" [fonts] heading = "Inter" body = "Source Serif 4" mono = "JetBrains Mono" [text] color = "text" line_height = 1.4 paragraph_gap = "0.65em" justification = "justify" [headings] color = "primary" font = "heading" [code_block] background = "#f8f8fc" border = "#e2e2e8" [syntax] background = "#f8f8fc" keyword = { color = "#7c3aed", bold = true } string = { color = "#059669", italic = true } comment = { color = "#9ca3af", italic = true } function = { color = "#2563eb", bold = true } # ... 12 more token typesUse it: silkprint document.md --theme ./my-theme.toml
Full schema reference: see CLAUDE.md or any built-in theme in themes/.
Markdown → comrak AST → Typst markup → World trait compile → PDF | Stage | Component | Technology |
|---|---|---|
| Parse | Markdown → AST | comrak 0.50 (GFM + extensions) |
| Theme | TOML → tokens | serde + two-level color resolution |
| Emit | AST → Typst | Custom emitter with theme-aware styling |
| Compile | Typst → PDF | typst 0.14 via World trait |
cargo check # Type-check cargo clippy # Lint (pedantic) cargo test # Run all tests cargo run -- --help # CLI helpRequires Rust 1.85+ (edition 2024).
✦ Built with obsession by Hyperbliss Technologies ✦





