Rust Library

mdBook is not only a command line tool, it can be used as a crate. You can extend it, integrate it in current projects. Here is a short example:

extern crate mdbook;

use mdbook::MDBook;
use std::path::Path;

# #[allow(unused_variables)]
fn main() {
    let mut book =  MDBook::new("my-book")        // Path to root
                        .with_source("src")       // Path from root to source directory
                        .with_destination("book") // Path from root to output directory
                        .read_config()            // Parse book.toml or book.json configuration file
                        .expect("I don't handle configuration file error, but you should!");

    book.build().unwrap();                        // Render the book
}

Check here for the API docs generated by rustdoc.