use serde::{Deserialize, Serialize}; use std::fs::read_to_string; #[derive(Deserialize, Serialize, Debug)] pub struct Config { pub output_dir: String, pub src_dir: String, pub templates_dir: String, pub emoji_config: Option, pub syndication: Option, } #[derive(Deserialize, Serialize, Debug)] pub struct Syndication { pub title: String, pub link: String, pub icon: Option, pub subtitle: Option, pub atom: Option, } #[derive(Deserialize, Serialize, Debug)] pub struct AtomConfig { pub enabled: bool, } #[derive(Deserialize, Serialize, Debug)] pub struct EmojiConfig { pub emoji_web_directory: String, pub emoji_local_directory: String, } impl Default for Config { fn default() -> Self { Config { output_dir: "output".to_string(), src_dir: "md_src".to_string(), templates_dir: "templates".to_string(), emoji_config: None, syndication: None, } } } pub fn read_config() -> Config { let config_string = read_to_string("mlem.toml").expect("mlem.toml config not found"); toml::from_str(&config_string).unwrap() }