quillmark 0.0.23

Quillmark engine API
Documentation

Quillmark

Crates.io Documentation CI License

A template-first Markdown rendering system that converts Markdown with YAML frontmatter into PDF, SVG, and other output formats.

Features

  • Template-first design: Quill templates control structure and styling, Markdown provides content
  • YAML frontmatter support: Extended YAML metadata with inline sections
  • Multiple backends: PDF and SVG output via Typst backend
  • Structured error handling: Clear diagnostics with source locations
  • Dynamic asset loading: Fonts, images, and packages resolved at runtime

Installation

Add Quillmark to your Cargo.toml:

cargo add quillmark

Quick Start

use quillmark::{Quillmark, OutputFormat};
use quillmark_core::Quill;

// Create engine with Typst backend
let mut engine = Quillmark::new();

// Load a quill template
let quill = Quill::from_path("path/to/quill")?;
engine.register_quill(quill);

// Render markdown to PDF
let workflow = engine.load("quill_name")?;
let markdown = "---\ntitle: Example\n---\n\n# Hello World";
let result = workflow.render(markdown, OutputFormat::Pdf)?;

// Access the generated PDF
let pdf_bytes = &result.artifacts[0].bytes;

Examples

Run the included examples:

cargo run --example appreciated_letter
cargo run --example usaf_memo
cargo run --example taro

Documentation

Project Structure

This workspace contains:

  • quillmark-core - Core parsing, templating, and backend traits
  • quillmark - High-level orchestration API
  • quillmark-typst - Typst backend for PDF/SVG output
  • quillmark-fixtures - Test fixtures and utilities

License

Licensed under the Apache License, Version 2.0. See LICENSE for details.