quillmark-core 0.77.0

Core types and functionality for Quillmark
Documentation

Quillmark

Crates.io PyPI npm CI License

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

Maintained by TongueToQuill.

UNDER DEVELOPMENT — APIs may change.

Features

  • Format-driven: Quills define structure and styling; Markdown provides content.
  • Schema-backed validation: typed coercion, defaults, and constraints via QuillConfig.
  • Typst backend: produces PDF, SVG, and PNG.
  • Structured diagnostics: path-aware errors and warnings.

Documentation

Installation

cargo add quillmark

Quick Start (Rust)

use quillmark::{Document, OutputFormat, Quillmark, RenderOptions};

let engine = Quillmark::new();
let quill = engine.quill_from_path("path/to/quill")?;

let markdown = r#"---
QUILL: my_quill
title: Example
---

# Hello World
"#;

let doc = Document::from_markdown(markdown)?;
let result = quill.render(
    &doc,
    &RenderOptions {
        output_format: Some(OutputFormat::Pdf),
        ..Default::default()
    },
)?;

let pdf_bytes = &result.artifacts[0].bytes;

Examples

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

Project Structure

  • crates/core - Core parsing, schema, and backend traits
  • crates/quillmark - Rust orchestration API
  • crates/backends/typst - Typst backend
  • crates/bindings/python - Python bindings
  • crates/bindings/wasm - WebAssembly bindings
  • crates/bindings/cli - Command-line interface
  • crates/fixtures - Test fixtures and sample Quill templates
  • crates/fuzz - Property-based fuzzing tests

Contributing

See CONTRIBUTING.md.

License

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