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' } }; };