quillmark-core 0.92.1

Core types and functionality for Quillmark
Documentation
//! # Quillmark Core Overview
//!
//! Core types and functionality for the Quillmark format-first Markdown rendering system.
//!
//! ## Features
//!
//! This crate provides the foundational types and traits for Quillmark:
//!
//! - **Parsing**: card-yaml block extraction (`~~~` metadata blocks)
//! - **Format model**: [`Quill`] type for managing format 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
//!
//! ```no_run
//! use quillmark_core::Document;
//!
//! // Parse markdown with a card-yaml metadata block
//! let markdown = "~~~\n$quill: my_quill\n$kind: main\ntitle: Example\n~~~\n\n# Content";
//! let doc = Document::from_markdown(markdown).unwrap();
//! let title = doc.main()
//!     .payload()
//!     .get("title")
//!     .and_then(|v| v.as_str())
//!     .unwrap_or("Untitled");
//! assert_eq!(title, "Example");
//! ```
//!
//! ## Architecture
//!
//! The crate is organized into modules:
//!
//! - [`document`]: Markdown parsing with card-yaml block support
//! - [`backend`]: Backend trait for output format implementations
//! - [`error`]: Structured error handling and diagnostics
//! - [`types`]: Core rendering types (OutputFormat, Artifact, RenderOptions)
//! - [`quill`]: Quill bundle and related types
//!
//! ## Further Reading
//!
//! - [markdown-spec.md](https://github.com/quillmark-org/quillmark/blob/main/prose/references/markdown-spec.md) - Quillmark Markdown parsing specification
//! - [Examples](https://github.com/quillmark-org/quillmark/tree/main/crates/core/examples) - Working examples

pub mod document;
pub use document::{
    Card, CardWire, Document, EditError, ParseOutput, Payload, PayloadItem, PayloadItemWire,
    SeedOverlay, WireError,
};

pub mod backend;
pub use backend::Backend;

pub mod error;
pub use error::{Diagnostic, Location, ParseError, RenderError, RenderResult, Severity};

pub mod types;
pub use types::{Artifact, OutputFormat, RenderOptions};

pub mod session;
pub use session::RenderSession;

pub mod quill;
pub use quill::{zero_value, FileTreeNode, Quill, QuillIgnore, STANDARD_METADATA_KEYS};

pub mod value;
pub use value::{json_depth_exceeds, PathSegment, QuillValue};

pub mod normalize;

pub mod version;
pub use version::{quill_ref_hint, QuillReference, Version, VersionSelector};