Skip to main content

Crate markplus_render

Crate markplus_render 

Source
Expand description

§markplus_render

Renderer for the MarkPlus ecosystem. Consumes a markplus_core::json::SiteAsset (schema + meta + AST) and produces:

  • HTML — via Tera template (*.html.tera)
  • Typst source — via Tera template (*.typ.tera); compile with typst compile
  • PDF bytes — Typst source compiled in-process:
    • Native: typst-as-lib + system font discovery
    • Wasm (--features wasm): embedded WasmWorld + Liberation fonts (~30 MB bundle)

§Quick start

use markplus_core::parse_document;
use markplus_render::{RenderEngine, RenderError};

let asset = parse_document("# Hello\n\nWorld.")?;
let engine = RenderEngine::builder().build()?;
let html = engine.render_html(&asset, "default/article.html.tera")?;
let typ_src = engine.render_typst_string(&asset, "default/article.typ.tera")?;
let pdf_bytes = engine.compile_pdf(&typ_src)?;

Re-exports§

pub use context::ast_to_template_context;
pub use engine::RenderEngine;
pub use engine::RenderEngineBuilder;
pub use error::RenderError;

Modules§

context
Converts a markplus_core::json::SiteAsset into a template-friendly serde_json::Value that Tera templates can consume directly.
engine
Tera-based render engine for MarkPlus.
error
Error type for markplus_render.
filters
Custom Tera filters for MarkPlus templates.
render
Core rendering methods on RenderEngine.