mlem/src/config.rs

46 lines
1.2 KiB
Rust

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<EmojiConfig>,
pub syndication: Option<Syndication>,
}
#[derive(Deserialize, Serialize, Debug)]
pub struct Syndication {
pub title: String,
pub link: String,
pub icon: Option<String>,
pub subtitle: Option<String>,
pub atom: Option<AtomConfig>,
}
#[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()
}