mini-docs 0.7.0

A minimal, secure build-time Markdown to HTML generator for the mini-* family.
Documentation
//! Adapter for integrating mini-litmus as a MarkdownAnalyzer extension for mini-docs.

use crate::error::DocError;
use crate::extension::MarkdownAnalyzer;
use serde_json::Value;

#[cfg(feature = "litmus")]
pub struct LitmusAnalyzer;

#[cfg(feature = "litmus")]
impl MarkdownAnalyzer for LitmusAnalyzer {
    fn analyze(&self, body: &str, _frontmatter: &Value) -> Result<Value, DocError> {
        let analysis = mini_litmus::analyze_markdown(body).map_err(|e| {
            DocError::Extension(format!("litmus: failed to analyze markdown: {}", e))
        })?;

        serde_json::to_value(&analysis).map_err(|e| {
            DocError::Extension(format!("litmus: failed to serialize analysis: {}", e))
        })
    }

    fn name(&self) -> &str {
        "litmus"
    }
}