pub struct Config {
pub book: BookConfig,
pub build: BuildConfig,
pub rust: RustConfig,
/* private fields */
}
Expand description
The overall configuration object for MDBook, essentially an in-memory
representation of book.toml
.
Fields
book: BookConfig
Metadata about the book.
build: BuildConfig
Information about the build environment.
rust: RustConfig
Information about Rust language support.
Implementations
sourceimpl Config
impl Config
sourcepub fn from_disk<P: AsRef<Path>>(config_file: P) -> Result<Config>
pub fn from_disk<P: AsRef<Path>>(config_file: P) -> Result<Config>
Load the configuration file from disk.
sourcepub fn update_from_env(&mut self)
pub fn update_from_env(&mut self)
Updates the Config
from the available environment variables.
Variables starting with MDBOOK_
are used for configuration. The key is
created by removing the MDBOOK_
prefix and turning the resulting
string into kebab-case
. Double underscores (__
) separate nested
keys, while a single underscore (_
) is replaced with a dash (-
).
For example:
MDBOOK_foo
->foo
MDBOOK_FOO
->foo
MDBOOK_FOO__BAR
->foo.bar
MDBOOK_FOO_BAR
->foo-bar
MDBOOK_FOO_bar__baz
->foo-bar.baz
So by setting the MDBOOK_BOOK__TITLE
environment variable you can
override the book’s title without needing to touch your book.toml
.
Note: To facilitate setting more complex config items, the value of an environment variable is first parsed as JSON, falling back to a string if the parse fails.
This means, if you so desired, you could override all book metadata when building the book with something like
$ export MDBOOK_BOOK='{"title": "My Awesome Book", "authors": ["Michael-F-Bryan"]}' $ mdbook build
The latter case may be useful in situations where mdbook
is invoked
from a script or CI, where it sometimes isn’t possible to update the
book.toml
before building.
sourcepub fn get(&self, key: &str) -> Option<&Value>
pub fn get(&self, key: &str) -> Option<&Value>
Fetch an arbitrary item from the Config
as a toml::Value
.
You can use dotted indices to access nested items (e.g.
output.html.playground
will fetch the “playground” out of the html output
table).
sourcepub fn get_mut(&mut self, key: &str) -> Option<&mut Value>
pub fn get_mut(&mut self, key: &str) -> Option<&mut Value>
Fetch a value from the Config
so you can mutate it.
sourcepub fn get_deserialized<'de, T: Deserialize<'de>, S: AsRef<str>>(
&self,
name: S
) -> Result<T>
👎 Deprecated: use get_deserialized_opt instead
pub fn get_deserialized<'de, T: Deserialize<'de>, S: AsRef<str>>(
&self,
name: S
) -> Result<T>
use get_deserialized_opt instead
Deprecated, use get_deserialized_opt instead.
sourcepub fn get_deserialized_opt<'de, T: Deserialize<'de>, S: AsRef<str>>(
&self,
name: S
) -> Result<Option<T>>
pub fn get_deserialized_opt<'de, T: Deserialize<'de>, S: AsRef<str>>(
&self,
name: S
) -> Result<Option<T>>
Convenience function to fetch a value from the config and deserialize it into some arbitrary type.
sourcepub fn set<S: Serialize, I: AsRef<str>>(
&mut self,
index: I,
value: S
) -> Result<()>
pub fn set<S: Serialize, I: AsRef<str>>(
&mut self,
index: I,
value: S
) -> Result<()>
Set a config key, clobbering any existing values along the way.
The only way this can fail is if we can’t serialize value
into a
toml::Value
.
Trait Implementations
sourceimpl<'de> Deserialize<'de> for Config
impl<'de> Deserialize<'de> for Config
sourcefn deserialize<D: Deserializer<'de>>(de: D) -> Result<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(de: D) -> Result<Self, D::Error>
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for Config
Auto Trait Implementations
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnwindSafe for Config
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more