diff options
| author | Ben Bridle <bridle.benjamin@gmail.com> | 2026-01-30 19:21:44 +1300 |
|---|---|---|
| committer | Ben Bridle <bridle.benjamin@gmail.com> | 2026-01-30 19:21:44 +1300 |
| commit | 876809001ebb3b1f39271e714f871af4945c214b (patch) | |
| tree | 2b586fb706dba9fb7c2712f18ce7192245f0609e | |
| parent | 254e467e7aab826f2d1d929f8781fd742e586c4a (diff) | |
| download | toaster-876809001ebb3b1f39271e714f871af4945c214b.zip | |
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.
| -rw-r--r-- | src/generate_html.rs | 12 |
1 files 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!("\ <!DOCTYPE html> <head> -<title>{page_name} — {site_name}</title> +<title>{page_name_plain} — {site_name}</title> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, initial-scale=1'> {head} @@ -53,7 +57,7 @@ pub fn generate_html(page: &Page, website: &Website) -> String { {home_link} {parent_link} </nav> -<h1 id='title'>{page_name}</h1> +<h1 id='title'>{page_name_html}</h1> <nav id='toc'> {toc_main} </nav> |
