From 876809001ebb3b1f39271e714f871af4945c214b Mon Sep 17 00:00:00 2001 From: Ben Bridle Date: Fri, 30 Jan 2026 19:21:44 +1300 Subject: Support markdown line elements in page titles Page titles are now treated as markdown and rendered as HTML. The URL for a page will be the plain-text version of the title, with markdown syntax stripped out. --- src/generate_html.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/generate_html.rs b/src/generate_html.rs index 2b979ea..fe81710 100644 --- a/src/generate_html.rs +++ b/src/generate_html.rs @@ -6,15 +6,19 @@ use recipe::*; pub fn generate_html(page: &Page, website: &Website) -> String { let root = page.root(); - let mut page_name = sanitize_text(&page.name, true); + let mut page_name_plain = page.name.clone(); + let mut page_name_html = sanitize_text(&page_name_plain, 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 line = Line::from_str(content); + page_name_plain = line.to_string(); + page_name_html = line_to_html(&line, page, website); } } } let site_name = sanitize_text(&website.name, true); + page_name_plain = sanitize_text(&page_name_plain, true); let mut parent_url = String::new(); for segment in &page.parents { parent_url.push_str(&make_url_safe(segment)); parent_url.push('/'); @@ -37,7 +41,7 @@ pub fn generate_html(page: &Page, website: &Website) -> String { format!("\ -{page_name} — {site_name} +{page_name_plain} — {site_name} {head} @@ -53,7 +57,7 @@ pub fn generate_html(page: &Page, website: &Website) -> String { {home_link} {parent_link} -

{page_name}

+

{page_name_html}

-- cgit v1.2.3-70-g09d2