summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBen Bridle <bridle.benjamin@gmail.com>2026-01-30 19:21:44 +1300
committerBen Bridle <bridle.benjamin@gmail.com>2026-01-30 19:21:44 +1300
commit876809001ebb3b1f39271e714f871af4945c214b (patch)
tree2b586fb706dba9fb7c2712f18ce7192245f0609e /src
parent254e467e7aab826f2d1d929f8781fd742e586c4a (diff)
downloadtoaster-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.
Diffstat (limited to 'src')
-rw-r--r--src/generate_html.rs12
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} &mdash; {site_name}</title>
+<title>{page_name_plain} &mdash; {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>