Expand description
Mdbook’s configuration system.
The main entrypoint of the config
module is the Config
struct. This acts
essentially as a bag of configuration information, with a couple
pre-determined tables (BookConfig
and BuildConfig
) as well as support
for arbitrary data which is exposed to plugins and alternative backends.
§Examples
use std::path::PathBuf;
use std::str::FromStr;
use mdbook::Config;
use toml::Value;
let src = r#"
[book]
title = "My Book"
authors = ["Michael-F-Bryan"]
[build]
src = "out"
[other-table.foo]
bar = 123
"#;
// load the `Config` from a toml string
let mut cfg = Config::from_str(src)?;
// retrieve a nested value
let bar = cfg.get("other-table.foo.bar").cloned();
assert_eq!(bar, Some(Value::Integer(123)));
// Set the `output.html.theme` directory
assert!(cfg.get("output.html").is_none());
cfg.set("output.html.theme", "./themes");
// then load it again, automatically deserializing to a `PathBuf`.
let got: Option<PathBuf> = cfg.get_deserialized_opt("output.html.theme")?;
assert_eq!(got, Some(PathBuf::from("./themes")));
Structs§
- Configuration options which are specific to the book and required for loading it from disk.
- Configuration for the build procedure.
- Configuration for tweaking how the HTML renderer handles code blocks.
- The overall configuration object for MDBook, essentially an in-memory representation of
book.toml
. - Configuration for how to fold chapters of sidebar.
- Configuration for the HTML renderer.
- Configuration for tweaking how the HTML renderer handles the playground.
- Configuration for how to render the print icon, print.html, and print.css.
- Configuration for the Rust compiler(e.g., for playground)
- Configuration of the search functionality of the HTML renderer.
Enums§
- Rust edition to use for the code.
- Text direction to use for HTML output