53 lines
1.9 KiB
JavaScript
53 lines
1.9 KiB
JavaScript
import { inspect } from "util";
|
|
import pluginIcons from 'eleventy-plugin-icons';
|
|
import pluginPDF from "./_config/eleventy-plugin-pdf.js";
|
|
import pluginTokens from "./_config/eleventy-plugin-tokens.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("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/favicon.ico')
|
|
|
|
eleventyConfig.addPlugin(pluginTokens, { tokens: "./src/_data/tokens.json", destination: "./src/css/theme.css" });
|
|
eleventyConfig.addPlugin(pluginPDF);
|
|
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'
|
|
}
|
|
};
|
|
}; |