Quillmark
A format-first Markdown rendering system that converts Markdown with YAML frontmatter into PDF, SVG, PNG, and other output formats.
Maintained by TTQ.
UNDER DEVELOPMENT
Features
- Format-driven design: Quills define structure and styling; Markdown provides content
- Schema-backed validation: Strong field coercion and validation via
QuillConfig - Multiple backends: Typst backend supports PDF/SVG/PNG output
- Structured diagnostics: Path-aware errors and warnings
- Dynamic workflow path: Add runtime assets/fonts through
Workflow
Documentation
- User Guide - Tutorials, concepts, and bindings
- Rust API Reference - Rust crate docs
Installation
Quick Start (Rust)
use ;
let engine = new;
let quill = engine.quill_from_path?;
let markdown = r#"---
QUILL: my_quill
title: Example
---
# Hello World
"#;
let result = quill.render?;
let pdf_bytes = &result.artifacts.bytes;
# Ok::
For dynamic asset/font injection at render time:
# use ;
# let engine = new;
# let quill = engine.quill_from_path?;
let mut workflow = engine.workflow?;
workflow.add_asset?;
let parsed = from_markdown?;
let result = workflow.render?;
# Ok::
Examples
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
License
Licensed under the Apache License, Version 2.0. See LICENSE.