quillmark-typst 0.95.1

Typst backend for Quillmark
Documentation

Quillmark

Crates.io PyPI npm CI License

In a nutshell: quills define document presentation and schema. Use quills to generate fully formatted documents from markdown or code.

Maintained by borb-sh.

UNDER DEVELOPMENT — APIs may change.

Documentation

Installation

cargo add quillmark

Quick Start (Rust)

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

// A `Quill` is portable, declarative data.
let quill = quill_from_path("path/to/quill")?;
let engine = Quillmark::new();

let markdown = r#"~~~
$quill: my_quill
$kind: main
title: Example
~~~

# Hello World
"#;

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

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

Examples

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/quillmark-pdf - Typst-free AcroForm PDF-stamping spine
  • crates/backends/pdfform - Typst-free PDF-form backend (built on quillmark-pdf)
  • 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
  • prose/canon - Design documentation

Contributing

See CONTRIBUTING.md.

License

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