diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/generate_html.rs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/generate_html.rs b/src/generate_html.rs index f63614b..dca68f7 100644 --- a/src/generate_html.rs +++ b/src/generate_html.rs @@ -212,8 +212,24 @@ pub fn document_to_html(document: &MarkdownDocument, page: &Page, website: &Webs let thumb = format!("{root}images/thumb/{file}"); html!("<a href='{large}'><img src='{thumb}' /></a>"); }), + "gallery-nav" => wrap!("div", "class='gallery-nav'", for line in content.lines() { + let line = line.trim(); + if let Some((name, image)) = line.split_once("::") { + let name = name.trim(); + let image = image.trim(); + let ParsedLink { path, class, label } = parse_internal_link(name, page, website); + if website.has_image(image) { + let thumb = format!("{root}images/thumb/{image}"); + html!("<a href='{path}' class='{class}'><img src='{thumb}'/><p>{label}</p></a>") + } else { + warn!("Gallery-nav on page {from:?} references nonexistent image {image:?}"); + } + } else { + warn!("Gallery-nav on page {from:?} has line without a '::' separator"); + } + }), _ => { - html!("<pre class='{}'>", language); + html!("<pre class='{language}'>"); html!("{}", sanitize_text(content, false)); html!("</pre>"); }, |