This commit is contained in:
@ -2,6 +2,8 @@ use std::fs;
|
||||
|
||||
use risp::law::{Content, Heading, HeadingContent, Law, Section};
|
||||
|
||||
use crate::part::Parts;
|
||||
|
||||
fn print_content(content: Content) -> String {
|
||||
let mut ret = String::new();
|
||||
|
||||
@ -114,6 +116,8 @@ pub(crate) fn create_law_files() -> String {
|
||||
.replace("{{content}}", &content)
|
||||
.replace("{{title}}", &lawname);
|
||||
|
||||
let site = Parts::new().perform(site);
|
||||
|
||||
li_of_files.push_str(&format!(
|
||||
"<li><a href='./{law_name}' title='{law_name}' class='contrast'>{lawname}</a></li>"
|
||||
));
|
||||
|
@ -1,6 +1,9 @@
|
||||
use std::{fs, path::Path};
|
||||
|
||||
use part::Parts;
|
||||
|
||||
mod law;
|
||||
mod part;
|
||||
|
||||
fn main() {
|
||||
fs::create_dir_all("./output").unwrap();
|
||||
@ -15,6 +18,7 @@ fn main() {
|
||||
fn create_index(content: &str) {
|
||||
let mut index = fs::read_to_string("templates/index.html").unwrap();
|
||||
index = index.replace("{{content}}", content);
|
||||
let index = Parts::new().perform(index);
|
||||
fs::write("output/index.html", &index).expect("Unable to write file");
|
||||
}
|
||||
|
||||
|
33
src/part.rs
Normal file
33
src/part.rs
Normal file
@ -0,0 +1,33 @@
|
||||
use std::{collections::HashMap, fs, path::Path};
|
||||
|
||||
pub(crate) struct Parts {
|
||||
parts: HashMap<String, String>,
|
||||
}
|
||||
|
||||
impl Parts {
|
||||
pub(crate) fn new() -> Self {
|
||||
let mut parts = HashMap::new();
|
||||
let parts_path = Path::new("templates/parts");
|
||||
for part in fs::read_dir(parts_path).expect("No templates/parts folder") {
|
||||
let part = part.unwrap();
|
||||
let filename = format!("{}", part.file_name().into_string().unwrap());
|
||||
let filename = filename.replace(".html", "");
|
||||
let path = format!("{}", part.path().display());
|
||||
|
||||
let template = fs::read_to_string(path).unwrap();
|
||||
|
||||
parts.insert(filename, template);
|
||||
}
|
||||
Self { parts }
|
||||
}
|
||||
|
||||
pub(crate) fn perform(&self, input: String) -> String {
|
||||
let mut input = input;
|
||||
for (key, value) in &self.parts {
|
||||
let replace = format!("{{{{{}}}}}", key);
|
||||
println!("{replace}");
|
||||
input = input.replace(&replace, value);
|
||||
}
|
||||
input
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user