Quillmark
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
- User Guide - Tutorials, concepts, and bindings
- Rust API Reference - Rust crate docs
- Changelog - Release notes and version history (GitHub Releases)
Installation
Quick Start (Rust)
use ;
// A `Quill` is portable, declarative data.
let quill = quill_from_path?;
let engine = new;
let markdown = r#"~~~
$quill: my_quill
$kind: main
title: Example
~~~
# Hello World
"#;
let doc = parse?.document;
let result = engine.render?;
let pdf_bytes = &result.artifacts.bytes;
Examples
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.