//! Markdown ↔ [`Document`] conversion for the devup editor.
//!
//! Implements [`DocumentExport`] and [`DocumentImport`] from `devup-editor-core`.
//!
//! Supported block types: paragraph, heading (h1–h3), todo, list (bullet only),
//! quote, code (fenced).
//! Supported marks: bold, italic, code, strike.
//!
//! Round-trip is **not** byte-perfect — Markdown is a lossy intermediate.

mod export;
mod import;

pub use export::Markdown;

use thiserror::Error;

/// Error produced by Markdown import/export.
///
/// The current implementation is infallible — every valid `Document`
/// can be serialised and every byte sequence can be coerced into a
/// document via best-effort parsing. The `Parse` variant is reserved
/// for future strict-mode parsing paths where malformed input should
/// fail fast instead of flattening to paragraphs.
#[derive(Debug, Error)]
pub enum MarkdownError {
    #[error("markdown parse error: {0}")]
    Parse(String),
}
