Skip to content

Instantly share code, notes, and snippets.

@kilmc
Created June 3, 2021 18:00
Show Gist options
  • Select an option

  • Save kilmc/41d6772614e0981946a41dca7f66900d to your computer and use it in GitHub Desktop.

Select an option

Save kilmc/41d6772614e0981946a41dca7f66900d to your computer and use it in GitHub Desktop.
class AnnualLists {
data() {
const hasTags = (tags) => tags.flat().length > 0;
const tagsToObject = (tags) =>
Object.fromEntries(tags.map((tag) => tag.split(":")));
return {
pagination: {
data: "lists.annual",
size: 1,
alias: "list",
addAllPagesToCollections: true,
},
eleventyComputed: {
title: (data) => {
if (hasTags(data.list.tags)) {
const { year, cat, subCat } = tagsToObject(data.list.tags);
return `${cat}: ${year} ${subCat}`;
}
},
tags: (data) => {
data.list.tags.push("dynamic");
return data.list.tags;
},
permalink: (data) => {
if (hasTags(data.list.tags)) {
const { year, cat, subCat } = tagsToObject(data.list.tags);
return `lists/${cat}/${year}/${subCat}/index.html`;
}
},
},
};
}
render(data) {
return `
<h2>${data.title}</h2>
<ol>
${data.list.list
.map((item) => {
return `<li>${item.title}</li>`;
})
.join("\n")}
</ol>
`;
}
}
module.exports = AnnualLists;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment