summaryrefslogtreecommitdiff
path: root/src/generate_html.rs
diff options
context:
space:
mode:
authorBen Bridle <ben@derelict.engineering>2025-12-12 20:21:57 +1300
committerBen Bridle <ben@derelict.engineering>2025-12-12 20:22:08 +1300
commitdd0aff0b170a71ef2962fcd38b710c581d90f9da (patch)
treecf969477d6209cad053821b0aaf7ab9e1b930190 /src/generate_html.rs
parent50df287852367d3e50779155c6e92b6e2a388c9d (diff)
downloadtoaster-dd0aff0b170a71ef2962fcd38b710c581d90f9da.zip
Allow using regular images in galleriesHEADmain
Galleries previously required images to be placed in /images/large/.. and /images/thumb/.., but this was a chore if there was only a single average-quality version of the image to display. The path /images/.. is now used as a fallback if these more specialised paths do not exist.
Diffstat (limited to 'src/generate_html.rs')
-rw-r--r--src/generate_html.rs26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/generate_html.rs b/src/generate_html.rs
index 306892b..2b979ea 100644
--- a/src/generate_html.rs
+++ b/src/generate_html.rs
@@ -257,27 +257,27 @@ pub fn document_to_html(page: &Page, website: &Website) -> String {
html!("</div>");
},
"gallery" => wrap!("div", "class='gallery'", for line in content.lines() {
- let file = line.trim();
- if !website.has_image(file) {
- warn!("Gallery on page {from:?} references nonexistent image {file:?}");
- continue;
+ let file_name = line.trim();
+ if let Some(image_paths) = website.has_image(file_name, &root) {
+ let large = sanitize_text(&image_paths.large, false);
+ let thumb = sanitize_text(&image_paths.thumb, false);
+ html!("<a href='{large}'><img src='{thumb}' /></a>");
+ } else {
+ warn!("Gallery on page {from:?} references nonexistent image {file_name:?}");
}
- let large = sanitize_text(&format!("{root}images/large/{file}"), false);
- // let small = sanitize_text(&format!("{root}images/small/{file}"), false);
- let thumb = sanitize_text(&format!("{root}images/thumb/{file}"), false);
- 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("::") {
+ if let Some((name, file_name)) = line.split_once("::") {
let name = name.trim();
- let image = image.trim();
+ let file_name = file_name.trim();
let ParsedLink { path, class, label } = parse_internal_link(name, page, website);
- if website.has_image(image) {
- let thumb = sanitize_text(&format!("{root}images/thumb/{image}"), false);
+ if let Some(image_paths) = website.has_image(file_name, &root) {
+ let thumb = sanitize_text(&image_paths.thumb, false);
html!("<a href='{path}' class='{class}'><img src='{thumb}'/><p>{label}</p></a>")
} else {
- warn!("Gallery-nav on page {from:?} references nonexistent image {image:?}");
+ warn!("Gallery on page {from:?} references nonexistent image {file_name:?}");
+ warn!("Gallery-nav on page {from:?} references nonexistent image {file_name:?}");
}
} else {
warn!("Gallery-nav on page {from:?} has line without a '::' separator");