30 lines
821 B
JavaScript
30 lines
821 B
JavaScript
|
|
export default function (eleventyConfig) {
|
||
|
|
|
||
|
|
/* Create a single alt string from a multi-string alt object */
|
||
|
|
eleventyConfig.addFilter("createAlt", (altObject) => {
|
||
|
|
let alt;
|
||
|
|
|
||
|
|
if (altObject.length > 1)
|
||
|
|
alt = `a ${altObject.length} picture collage.`;
|
||
|
|
for (let i = 0; i < altObject.length; i++)
|
||
|
|
alt += ` Image ${i + 1} is ${altObject[i]}`;
|
||
|
|
|
||
|
|
return alt;
|
||
|
|
});
|
||
|
|
|
||
|
|
/* What it says on the tin */
|
||
|
|
eleventyConfig.addFilter("randomize", function(array) {
|
||
|
|
// Create a copy of the array to avoid modifying the original
|
||
|
|
let shuffledArray = array.slice();
|
||
|
|
|
||
|
|
// Fisher-Yates shuffle algorithm
|
||
|
|
for (let i = shuffledArray.length - 1; i > 0; i--) {
|
||
|
|
const j = Math.floor(Math.random() * (i + 1));
|
||
|
|
[shuffledArray[i], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i]];
|
||
|
|
}
|
||
|
|
|
||
|
|
return shuffledArray;
|
||
|
|
});
|
||
|
|
|
||
|
|
};
|