Crate quillmark_core

Crate quillmark_core 

Source
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: Quill type 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 support
  • templating: Template composition using MiniJinja
  • backend: Backend trait for output format implementations
  • error: 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.
FileEntry
A file entry in the in-memory file system
Quill
A quill template bundle. See module docs for examples.
QuillIgnore
Simple gitignore-style pattern matcher for .quillignore
RenderOptions
Internal rendering options. See module docs for examples.

Enums§

OutputFormat
Output formats supported by backends. See module docs for examples.