use crate::*;
use markdown::*;
use recipe::*;
pub fn generate_html(page: &Page, website: &Website) -> String {
let root = page.root();
let mut page_name = sanitize_text(&page.name, true);
for block in &page.document.blocks {
if let Block::Fragment { language, content } = block {
if language == "override-title" {
page_name = sanitize_text(content.trim(), true);
}
}
}
let site_name = sanitize_text(&website.name, true);
let mut parent_url = String::new();
for segment in &page.parents {
parent_url.push_str(&make_url_safe(segment)); parent_url.push('/');
}
parent_url.pop();
let head = get_html_head(page, website); let head = head.trim();
let home_link = format!("{site_name}");
let parent_link = match page.parents.last() {
Some(name) => format!("{name}", make_url_safe(name)),
None => String::new(),
};
let toc = get_table_of_contents(page);
let toc_main = if page.headings.len() >= 3 {
format!("\n{toc}