mdbook-plotly 0.1.7-alpha

An mdbook preprocessor that renders plot code blocks (e.g., ```plot) into interactive or static charts during book build.
Documentation
use plotly::{ImageFormat, Plot};
use pulldown_cmark::{CowStr, Event};
use rand::Rng;
use std::path::Path;

fn rand_name(len: usize) -> String {
    rand::thread_rng()
        .sample_iter(&rand::distributions::Alphanumeric)
        .take(len)
        .map(char::from)
        .collect()
}

pub fn handle(code: Plot, book_path: &Path) -> Event<'static> {
    let name = rand_name(10);
    let path = book_path.join(format!("{}/{}.svg", "book", name));
    code.write_image(path, ImageFormat::SVG, 800, 600, 1.0)?;
    Event::Html(CowStr::from(format!(
        "<img src=\"/{}.svg\" alt=\"{}\"/>",
        name, name
    )))
}