pub mod args;
pub mod formatter;
use formatter::{
character::remove_white_space_around_enclosed_url,
markdown::preamble::split_preamble,
punctuation::{convert_colon, convert_parenthesis, convert_semicolon},
};
pub fn format(args: &args::Args, content: String) -> String {
let (preamble_content, mut content) = split_preamble(&content);
if args.flag_colon {
content = convert_colon(content, true);
}
if args.flag_strip_enclosed_url {
content = remove_white_space_around_enclosed_url(content);
}
if args.flag_semicolon {
content = convert_semicolon(content, true);
}
if args.flag_parenthesis {
content = convert_parenthesis(content, true);
}
content = formatter::character::add_space_between_words_and_chinese_symbols(content, true);
content = formatter::markdown::markdown_pipeline(content, &args);
if let Some(preamble_content) = preamble_content {
let mut result = String::from(format!("---\n{}\n---\n\n", preamble_content.trim()));
result.push_str(content.trim());
content = result;
} else {
content = content.trim().to_string();
}
content
}