diff --git a/index.html b/index.html index c21d3e4..d13e714 100644 --- a/index.html +++ b/index.html @@ -40,28 +40,23 @@ }); for (var p = 0; p < peoplelist.length; p++) { - var displayname = peoplelist[p]["displayname"]; + var displayname = String(peoplelist[p]["displayname"] || ""); var file = peoplelist[p]["filename"]; - var card; + var $card; if (file == "") { - card = - '
No information has been submitted for this person. Help us by submitting here.
", + $("").append( + "No information has been submitted for this person. Help us by submitting ", + helpLink(), + ), ); } else { + // maintext is intentionally rendered as HTML for formatted bios. + // Residual XSS risk is mitigated by PR review; track follow-up + // to integrate DOMPurify for defense-in-depth. $("#memorial-text").append(data.maintext); } @@ -103,17 +117,18 @@ !data.socialmedialinks.length ) { $("#social-media").append( - "
No social media links have been submitted for this person. Help us by submitting here.
", + $("").append(
+ "No social media links have been submitted for this person. Help us by submitting ",
+ helpLink(),
+ ),
);
} else {
for (var s = 0; s < data.socialmedialinks.length; s++) {
var sitename = data.socialmedialinks[s]["sitename"];
var siteurl = data.socialmedialinks[s]["siteurl"];
- var social =
- '' + sitename + "";
- $("#social-media").append(social);
+ $("#social-media").append(
+ $("").attr("href", safeUrl(siteurl)).text(sitename),
+ );
}
}
@@ -121,7 +136,7 @@
$("#references").append(
$(" ").append(
"No references have been submitted for this person. Help us by submitting ",
- $("").attr("href", safeUrl(data.issue)).text("here."),
+ helpLink(),
),
);
} else {
@@ -139,52 +154,50 @@
!data.contributions.length
) {
$("#contributions-list").append(
- " No images have been submitted for this person yet. Help us by submitting here. ").append(
+ "No images have been submitted for this person yet. Help us by submitting ",
+ helpLink(),
+ ),
);
} else {
for (var i = 0; i < data.gallery.length; i++) {
var imgurl = safeUrl(data.gallery[i]["url"]);
var imgtitle = data.gallery[i]["title"];
var caption = data.gallery[i]["caption"];
- var image =
- "")
+ .attr("src", imgurl)
+ .attr("alt", imgtitle)
+ .attr("loading", "lazy"),
+ $("