11ty-resume/eleventy.config.js

61 lines
2.3 KiB
JavaScript

import { inspect } from "util";
import eleventyPluginPDF from "eleventy-plugin-pdf";
import pluginIcons from 'eleventy-plugin-icons';
import pluginTokens from "./_config/eleventy-plugin-tokens.js";
import shortcodes from "./_config/shortcodes.js";
export default async function (eleventyConfig) {
eleventyConfig.setUseGitIgnore(false);
eleventyConfig.addLayoutAlias('base', 'layouts/base.html');
eleventyConfig.addLayoutAlias('pdf', 'layouts/pdf.html');
eleventyConfig.addCollection("sections", (collectionApi) => {
const sections = collectionApi.getFilteredByGlob("./src/pages/sections/**")
.sort((a, b) => a.data.order - b.data.order);
process.env.DEBUG && console.log(inspect(sections));
return sections;
});
eleventyConfig.addCollection("pdfSections", (collectionApi) => {
const sections = collectionApi.getFilteredByGlob("./src/pages/sections/**")
.sort((a, b) => (a.data?.pdf?.order ?? a.data.order) - (b.data?.pdf?.order ?? b.data.order));
process.env.DEBUG && console.log(inspect(sections));
return sections;
});
eleventyConfig.addCollection("projects", (collectionApi) => {
const projects = collectionApi.getFilteredByGlob("./src/projects/**")
.sort((a, b) => a.data.order - b.data.order);
process.env.DEBUG && console.log(inspect(projects));
return projects;
});
eleventyConfig.addCollection('experiences', collection => {
return [...collection.getFilteredByGlob('./src/experiences/*.md')]
.sort((a, b) => a.data.dates.start - b.data.dates.start).reverse();
});
eleventyConfig.addPassthroughCopy({'src/assets': '/'})
eleventyConfig.addPlugin(shortcodes);
eleventyConfig.addPlugin(pluginTokens, { tokens: "./src/_data/tokens.json", destination: "./src/css/theme.css" });
eleventyConfig.addPlugin(eleventyPluginPDF);
eleventyConfig.addPlugin(pluginIcons, {
sources: [
{ name: 'lucide', path: 'node_modules/lucide-static/icons', default: true },
{ name: 'simple-icons', path: 'node_modules/simple-icons/icons', default: false }
]
});
eleventyConfig.addBundle("css");
eleventyConfig.addBundle("js");
return {
markdownTemplateEngine: 'liquid',
dataTemplateEngine: 'liquid',
htmlTemplateEngine: 'liquid',
dir: {
input: 'src',
output: 'dist'
}
};
};