commit 2a2abf3e2d6e5b39cac3fa9123569690b36de8a6
parent a311cad71173ef1ba74ef2b37e96d300696b2be7
Author: Hunter
Date: Fri, 19 Dec 2025 23:02:05 -0500
allow case-insensitive matching of stock images
Diffstat:
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/index.html b/index.html
@@ -242,25 +242,26 @@
const preview = document.getElementById('preview');
// Stock images loaded from manifest - can be referenced by bare filename
- let stockImages = new Set();
+ let stockImages = new Map(); // lowercase -> original filename
// Load stock image list from manifest
const stockImagesReady = fetch('resource-manifest.json')
.then(r => r.json())
.then(manifest => {
manifest.images.forEach(path => {
- const filename = path.split('/').pop().toLowerCase();
- stockImages.add(filename);
+ const filename = path.split('/').pop();
+ stockImages.set(filename.toLowerCase(), filename);
});
})
.catch(() => console.log('Could not load resource manifest'));
- // Rewrite bare image filenames to use images/ prefix
+ // Rewrite bare image filenames to use images/ prefix (case-insensitive, uses correct case)
function rewriteBareImageSrcs(html) {
return html.replace(/(<img\s[^>]*\bsrc\s*=\s*["'])([^"'/:]+\.(gif|png|jpg|jpeg|svg|webp))(["'])/gi,
(match, before, filename, ext, after) => {
- if (stockImages.has(filename.toLowerCase())) {
- return before + 'images/' + filename + after;
+ const original = stockImages.get(filename.toLowerCase());
+ if (original) {
+ return before + 'images/' + original + after;
}
return match;
});
@@ -269,7 +270,7 @@
// Expand <images> tags into gallery table
function expandImagesTag(html) {
return html.replace(/<images\s*\/?>/gi, () => {
- const images = Array.from(stockImages).sort();
+ const images = Array.from(stockImages.values()).sort();
if (images.length === 0) return '<p>No images available</p>';
const rows = images.map(filename =>
`<tr><td>${filename}</td><td style="text-align:center;"><img src="images/${filename}"></td></tr>`