joshua.seigler.net/eleventy.config.js
2024-06-06 01:32:55 -04:00

39 lines
968 B
JavaScript

const fs = require("fs");
const path = require("path");
module.exports = (config) => {
const slugify = config.getFilter("slugify");
const url = config.getFilter("url");
config.addPassthroughCopy("assets");
// collection from music folder
config.addPassthroughCopy("site/music", {
rename: (filename) => {
const ext = path.extname(filename);
const base = path.basename(filename, ext);
return `${slugify(base)}${ext}`;
},
});
config.addCollection("music", () => {
const musicFiles = fs.readdirSync("./site/music/").map((filename) => {
const ext = path.extname(filename);
const base = path.basename(filename, ext);
const absUrl = `/music/${slugify(base)}${ext}`;
return {
data: {
title: base,
tags: ['music'],
},
url: url(absUrl),
};
});
return musicFiles;
});
return {
dir: {
input: "site",
output: "dist",
},
};
};