Changed emoji config layout
This commit is contained in:
parent
3e56c1e557
commit
5928661d90
|
@ -6,10 +6,14 @@ pub struct Config {
|
|||
pub output_dir: String,
|
||||
pub src_dir: String,
|
||||
pub templates_dir: String,
|
||||
pub emoji_web_directory: Option<String>,
|
||||
pub emoji_local_directory: Option<String>,
|
||||
pub emoji_config: Option<EmojiConfig>,
|
||||
}
|
||||
|
||||
#[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()
|
||||
|
|
12
src/emoji.rs
12
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<String>,
|
||||
emoji_local_directory: &Option<String>,
|
||||
emoji_config: &Option<config::EmojiConfig>,
|
||||
) -> 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!(
|
||||
"<img class=\"emoji\" src=\"{}/{}\"><img>",
|
||||
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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue