function makeZine({ name, blurb, format, site, title }) {
let zine = document.createElement("li");
let h2 = document.createElement("h2");
if (site) {
let a = document.createElement("a");
a.innerHTML = name;
a.href = site;
h2.append(a);
} else {
h2.innerHTML = name;
}
zine.append(h2);
let p = document.createElement("p");
if (title) {
p.innerHTML = " made a " + format + " zine called
" + title + "
";
} else {
p.innerHTML = " is making a " + format + " zine:";
let bq = document.createElement("blockquote");
let bqP = document.createElement("p");
bqP.innerHTML = blurb;
bq.append(bqP);
zine.append(bq);
}
zine.append(p);
return zine;
}
function makeZinePage(zines) {
for (let i = 0; i < zines.length; i++) {
zineContainer.append(makeZine(zines[i]));
}
let zineCounter = document.getElementById("zine-count");
let total = zines.length;
let physical = zines.filter(
(zine) => zine.format == "physical" || zine.format == "physical/digital"
).length;
let digital = zines.filter(
(zine) => zine.format == "digital" || zine.format == "physical/digital"
).length;
let p = document.createElement("p");
p.innerHTML =
total +
" artists. " +
physical +
" physical zines. " +
digital +
" digital zines.";
zineCounter.append(p);
}
let zineContainer = document.getElementById("zine-container");
let script = document.currentScript;
let zinefile = script.dataset.zinefile;
fetch(zinefile)
.then((response) => {
if (!response.ok) {
throw new Error(`HTTP error, status = ${response.status}`);
}
return response.json();
})
.then((zines) => makeZinePage(zines))
.catch((error) => {
console.log(`Error: ${error.message}`);
});