From 5928661d90407e4097962323460cb066920e1e81 Mon Sep 17 00:00:00 2001 From: viridian Date: Tue, 9 Apr 2024 17:01:21 +0200 Subject: [PATCH] Changed emoji config layout --- src/config.rs | 8 ++++++-- src/emoji.rs | 12 +++++++----- src/main.rs | 3 +-- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/config.rs b/src/config.rs index 79e1812..8bc224d 100644 --- a/src/config.rs +++ b/src/config.rs @@ -6,10 +6,14 @@ pub struct Config { pub output_dir: String, pub src_dir: String, pub templates_dir: String, - pub emoji_web_directory: Option, - pub emoji_local_directory: Option, + pub emoji_config: Option, } +#[derive(Deserialize)] +pub struct EmojiConfig { + pub emoji_web_directory: String, + pub emoji_local_directory: String, +} 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() diff --git a/src/emoji.rs b/src/emoji.rs index a9d8627..c0e2e92 100644 --- a/src/emoji.rs +++ b/src/emoji.rs @@ -1,25 +1,27 @@ use regex::Regex; use std::{ffi::OsString, fs::read_dir}; + +use crate::config; pub fn emoji_pass( markdown: &str, - emoji_web_directory: &Option, - emoji_local_directory: &Option, + emoji_config: &Option, ) -> String { - if emoji_web_directory.is_none() | emoji_local_directory.is_none() { + if emoji_config.is_none() { return markdown.to_string(); } + let mut markdown = markdown.to_owned(); let re_emojis = Regex::new(r":\w+:").unwrap(); for emoji in re_emojis.find_iter(&markdown.clone()) { let emoji_file_name = - get_emoji_file_name(&get_emoji_name(emoji.as_str()), &emoji_local_directory.as_ref().unwrap()); + get_emoji_file_name(&get_emoji_name(emoji.as_str()), &emoji_config.as_ref().unwrap().emoji_local_directory); if emoji_file_name.is_none() { continue; } let html_string = format!( "", - emoji_web_directory.as_ref().unwrap(), + emoji_config.as_ref().unwrap().emoji_web_directory, emoji_file_name.unwrap().to_str().unwrap() ); markdown = markdown.replacen(emoji.as_str(), &html_string, 1); diff --git a/src/main.rs b/src/main.rs index db5666b..5f77294 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,8 +13,7 @@ fn main() { let mut markdown = read_to_string(file.path).expect("File does not exist"); markdown = emoji::emoji_pass( &markdown, - &config.emoji_web_directory, - &config.emoji_local_directory, + &config.emoji_config, ); let (html, index_content) = generate_blog_entry(markdown, &config.templates_dir);