52 lines
1.3 KiB
JavaScript
52 lines
1.3 KiB
JavaScript
|
import markdownIt from "markdown-it";
|
||
|
import markdownItAnchor from "markdown-it-anchor";
|
||
|
import { format } from "date-fns";
|
||
|
import pluginInlineLinkFavicon from "eleventy-plugin-inline-link-favicon"
|
||
|
|
||
|
export default async function (eleventyConfig) {
|
||
|
|
||
|
const markdownItOptions = {
|
||
|
html: true
|
||
|
};
|
||
|
|
||
|
const markdownItAnchorOptions = {
|
||
|
permalink: true, permalinkBefore: true, permalinkSymbol: '#'
|
||
|
};
|
||
|
|
||
|
const markdownLib = markdownIt(markdownItOptions).use(
|
||
|
markdownItAnchor,
|
||
|
markdownItAnchorOptions
|
||
|
);
|
||
|
|
||
|
eleventyConfig.setLibrary("md", markdownLib);
|
||
|
|
||
|
const assets = "./_src/assets/";
|
||
|
eleventyConfig.addPassthroughCopy(assets);
|
||
|
eleventyConfig.addWatchTarget(assets);
|
||
|
|
||
|
eleventyConfig.addPlugin(pluginInlineLinkFavicon);
|
||
|
|
||
|
eleventyConfig.addFilter("firstSegment", url => (typeof url === 'string' ? url.split('/')[1] || '' : ''));
|
||
|
|
||
|
eleventyConfig.addFilter("sortByFirstDate", items => items.sort((a, b) => new Date(b.data.images[0].date) - new Date(a.data.images[0].date)));
|
||
|
|
||
|
eleventyConfig.addFilter("ISO", (dateObj) => {
|
||
|
return format(dateObj, ("yyyy-LL-dd"));
|
||
|
});
|
||
|
eleventyConfig.addFilter("readable", (dateObj) => {
|
||
|
return format(dateObj, ("LLLL d, yyyy"));
|
||
|
});
|
||
|
|
||
|
eleventyConfig.setBrowserSyncConfig({
|
||
|
open: true,
|
||
|
});
|
||
|
};
|
||
|
|
||
|
export const config = {
|
||
|
dir: {
|
||
|
input: "_src",
|
||
|
output: "_site"
|
||
|
}
|
||
|
};
|
||
|
|