diff --git a/src/processors/mod.rs b/src/processors/mod.rs index 9b70f2b..a7473ee 100644 --- a/src/processors/mod.rs +++ b/src/processors/mod.rs @@ -3,7 +3,13 @@ use config::Config; mod head_cleanup; mod strip_blank; mod rebrand; +mod references; -pub const PROCESSORS: [fn(Config, String) -> Result; 3] = - [head_cleanup::head_cleanup, rebrand::rebrand, strip_blank::strip_blank]; +pub const PROCESSORS: [fn(Config, String) -> Result; 4] = + [ + head_cleanup::head_cleanup, + rebrand::rebrand, + references::references, + strip_blank::strip_blank, + ]; diff --git a/src/processors/references.rs b/src/processors/references.rs new file mode 100644 index 0000000..8c33faf --- /dev/null +++ b/src/processors/references.rs @@ -0,0 +1,21 @@ +use html::{sciter_start, get_html, get_body, find_first}; +use sciter::{Element, Value}; +use config::Config; + + +fn create_title() -> Element { + let mut references_title = Element::with_text("h1", "References").unwrap(); + references_title.set_attribute("class", "references-title").unwrap(); + return references_title; +} + + +pub fn references(config: Config, input: String) -> Result { + let mut root = sciter_start(input); + let mut body = get_body(&mut root); + let mut possible_references = body.find_first("div#refs").expect("Failed to get refs"); + if possible_references.is_some() { + body.insert(possible_references.unwrap().index(), &create_title()); + } + return Ok(get_html(root)); +}