crisp-theme/eleventy.config.js
2025-05-01 12:20:48 -04:00

57 lines
1.3 KiB
JavaScript

import { feedPlugin } from "@11ty/eleventy-plugin-rss";
import metadata from "./_data/metadata.js";
import pluginFilters from "./_config/filters.js";
export default async function(eleventyConfig) {
eleventyConfig.setUseGitIgnore(false);
eleventyConfig.addPlugin(pluginFilters);
eleventyConfig.addPlugin(feedPlugin, {
type: "atom",
outputPath: "/feed.xml",
collection: {
name: "posts",
limit: 10
},
metadata: {
title: metadata.title,
subtitle: metadata.description,
base: metadata.url,
author: {
name: metadata.author.name
}
}
})
eleventyConfig.addCollection("series", collectionsApi => {
const seriesNames = collectionsApi.
getFilteredByTag("posts").
filter(post => post.data.series != null).
map(post => post.data.series.name).
sort();
return [...new Set(seriesNames)];
});
eleventyConfig.addCollection("site_nav", collectionsApi => {
return collectionsApi.
getAll().
filter(page => page.data.nav_order).
sort((a, b) => a.data.nav_order - b.data.nav_order);
});
eleventyConfig.addPassthroughCopy({
"./content/resources/": "/"
});
};
export const config = {
dir: {
input: 'content',
includes: '../_includes',
data: '../_data',
output: 'dist'
}
};