import pugPlugin from '@11ty/eleventy-plugin-pug' import rssPlugin from '@11ty/eleventy-plugin-rss' import brokenLinksPlugin from 'eleventy-plugin-broken-links' import { eleventyImageTransformPlugin } from '@11ty/eleventy-img' import syntaxHighlight from '@11ty/eleventy-plugin-syntaxhighlight' import footnote from 'markdown-it-footnote' import { EleventyRenderPlugin, IdAttributePlugin } from '@11ty/eleventy' import { setupBlogCollections } from './scripts/eleventy/blog.js' import { setupFeedCollections } from './scripts/eleventy/feed.js' const setupDirectories = eleventyConfig => { eleventyConfig.setInputDirectory('src') eleventyConfig.addPassthroughCopy('src/assets/**') eleventyConfig.addPassthroughCopy('src/favicon.ico') } const setupPlugins = eleventyConfig => { eleventyConfig.addPlugin(brokenLinksPlugin) eleventyConfig.addPlugin(pugPlugin) eleventyConfig.addPlugin(rssPlugin) eleventyConfig.addPlugin(syntaxHighlight) eleventyConfig.addPlugin(IdAttributePlugin) eleventyConfig.addPlugin(EleventyRenderPlugin) eleventyConfig.amendLibrary('md', md => md.use(footnote)) eleventyConfig.addPlugin(eleventyImageTransformPlugin, { htmlOptions: { imgAttributes: { alt: '', }, }, }) } export default function (eleventyConfig) { setupPlugins(eleventyConfig) setupDirectories(eleventyConfig) setupBlogCollections(eleventyConfig) setupFeedCollections(eleventyConfig) }