Expand description
§Quillmark Core Overview
Core types and functionality for the Quillmark template-first Markdown rendering system.
§Features
This crate provides the foundational types and traits for Quillmark:
- Parsing: YAML frontmatter extraction with Extended YAML Metadata Standard support
- Templating: MiniJinja-based template composition with stable filter API
- Template model:
Quilltype for managing template bundles with in-memory file system - Backend trait: Extensible interface for implementing output format backends
- Error handling: Structured diagnostics with source location tracking
- Utilities: TOML⇄YAML conversion helpers
§Quick Start
use quillmark_core::{decompose, Quill};
// Parse markdown with frontmatter
let markdown = "---\ntitle: Example\n---\n\n# Content";
let doc = decompose(markdown).unwrap();
// Load a quill template
let quill = Quill::from_path("path/to/quill").unwrap();§Architecture
The crate is organized into four main modules:
parse: Markdown parsing with YAML frontmatter supporttemplating: Template composition using MiniJinjabackend: Backend trait for output format implementationserror: Structured error handling and diagnostics
§Further Reading
Re-exports§
pub use parse::decompose;pub use parse::ParsedDocument;pub use parse::BODY_FIELD;pub use templating::Glue;pub use templating::TemplateError;pub use backend::Backend;pub use error::Diagnostic;pub use error::Location;pub use error::RenderError;pub use error::RenderResult;pub use error::Severity;
Modules§
- backend
- Backend Trait
- error
- Error Handling
- parse
- Parsing Module
- templating
- Templating Module
Structs§
- Artifact
- An artifact produced by rendering. See module docs for examples.
- File
Entry - A file entry in the in-memory file system
- Quill
- A quill template bundle. See module docs for examples.
- Quill
Ignore - Simple gitignore-style pattern matcher for .quillignore
- Render
Options - Internal rendering options. See module docs for examples.
Enums§
- Output
Format - Output formats supported by backends. See module docs for examples.