punkfairie-site/.eleventy.js
2023-06-08 18:01:48 -07:00

49 lines
1.4 KiB
JavaScript

const esbuild = require('esbuild')
module.exports = function (eleventyConfig) {
// Process SCSS
eleventyConfig.addPlugin(require('eleventy-sass'), {
postcss: require('postcss')([
require('postcss-preset-env'),
require('cssnano'),
]),
})
// Copy CSS assets
eleventyConfig.addPassthroughCopy('src/style/assets')
// Copy collections & links
eleventyConfig.addPassthroughCopy('src/collections/images/**/*')
eleventyConfig.addPassthroughCopy('src/images')
// Process JS
eleventyConfig.addTemplateFormats('js')
eleventyConfig.addExtension('js', {
outputFileExtension: 'js',
compile: async (content, path) => {
if (path !== './src/js/main.js') {
return
}
return async () => {
const output = await esbuild.build({
target: 'es2020',
entryPoints: [path],
minify: true,
bundle: true,
write: false,
})
return output.outputFiles[0].text
}
},
})
// Convert img filename to alt text
eleventyConfig.addFilter('toAlt', (text) => {
const basename = text.split('.')
return basename[0].replace(/-/g, ' ')
})
return {dir: {input: 'src', output: 'dist'}}
}