website/eleventy.config.js

36 lines
1,010 B
JavaScript

import markdownIt from "markdown-it";
import markdownItAnchor from "markdown-it-anchor";
import slugify from "slugify";
import { format } from "date-fns";
export default async function (eleventyConfig) {
const assets = "./_src/assets/";
eleventyConfig.addPassthroughCopy(assets);
eleventyConfig.addWatchTarget(assets);
eleventyConfig.addFilter("sortByFirstDate", (items) =>
items.sort(
(a, b) =>
new Date(b.data.images[0].date) -
new Date(a.data.images[0].date),
),
);
eleventyConfig.addFilter("link", function (text, url) {
return `<a href="${url}"><img src="https://www.google.com/s2/favicons?domain=${url}" alt="" aria-hidden="true"/>${text}</a>`;
});
eleventyConfig.addFilter("ISO", (dateObj) => {
return format(dateObj, "yyyy-LL-dd");
});
eleventyConfig.addFilter("readable", (dateObj) => {
return format(dateObj, "LLLL do, yyyy");
});
eleventyConfig.setBrowserSyncConfig({
open: true,
});
}
export const config = {
dir: {
input: "_src",
output: "_site",
},
};