marcus/core/
inline_ignore.rs1use crate::helpers::{id, re};
2use regex::Captures;
3use std::collections::HashMap;
4
5pub fn hide(html: &mut String) -> HashMap<i32, String> {
6 let mut ignore: HashMap<i32, String> = HashMap::new();
8
9 re::parse(html, re::from(re::INLINE_SCRIPT), | capture: Captures | {
11 let mut id: i32 = id::random_10_digit();
13 while ignore.contains_key(&id) {
14 id = id::random_10_digit();
15 }
16 let text_id: String = format!("?{}?", &id);
18 ignore.insert(id, capture[0].to_string());
19 text_id
21 });
22
23 re::parse(html, re::from(re::INLINE_STYLE), | capture: Captures | {
25 let mut id: i32 = id::random_10_digit();
27 while ignore.contains_key(&id) {
28 id = id::random_10_digit();
29 }
30 let text_id: String = format!("?{}?", &id);
32 ignore.insert(id, capture[0].to_string());
33 text_id
35 });
36
37 ignore
39}
40
41pub fn show(html: &mut String, ignore: HashMap<i32, String>) {
42 for (id, original) in ignore {
43 *html = html.replace(&format!("?{}?", id), &original);
44 }
45}