46 lines
1.2 KiB
Rust
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()
|
|
}
|