diff --git a/.eleventy.js b/.eleventy.js
index ec9e323..ba14893 100644
--- a/.eleventy.js
+++ b/.eleventy.js
@@ -21,7 +21,8 @@ const {
stripHtml,
minifyCss,
minifyJs,
- mdInline
+ mdInline,
+ splitlines
} = require('./config/filters/index.js');
// module import shortcodes
@@ -34,6 +35,9 @@ const {
// module import collections
const {getAllPosts} = require('./config/collections/index.js');
+// module import events
+const {svgToJpeg} = require('./config/events/index.js');
+
// plugins
const markdownLib = require('./config/plugins/markdown.js');
const {EleventyRenderPlugin} = require('@11ty/eleventy');
@@ -70,6 +74,7 @@ module.exports = eleventyConfig => {
eleventyConfig.addFilter('cssmin', minifyCss);
eleventyConfig.addNunjucksAsyncFilter('jsmin', minifyJs);
eleventyConfig.addFilter('md', mdInline);
+ eleventyConfig.addFilter('splitlines', splitlines);
eleventyConfig.addFilter('keys', Object.keys);
eleventyConfig.addFilter('values', Object.values);
eleventyConfig.addFilter('entries', Object.entries);
@@ -91,6 +96,9 @@ module.exports = eleventyConfig => {
// --------------------- Custom collections -----------------------
eleventyConfig.addCollection('posts', getAllPosts);
+ // --------------------- Events ---------------------
+ eleventyConfig.on('afterBuild', svgToJpeg);
+
// --------------------- Plugins ---------------------
eleventyConfig.addPlugin(EleventyRenderPlugin);
eleventyConfig.addPlugin(syntaxHighlight);
diff --git a/.prettierignore b/.prettierignore
index fc997d8..ff34a9c 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1,2 +1,3 @@
src/assets/helperfiles/*
-src/feed.njk
\ No newline at end of file
+src/feed.njk
+src/social-preview.njk
\ No newline at end of file
diff --git a/config/events/index.js b/config/events/index.js
new file mode 100644
index 0000000..cc09d84
--- /dev/null
+++ b/config/events/index.js
@@ -0,0 +1,32 @@
+// https://bnijenhuis.nl/notes/automatically-generate-open-graph-images-in-eleventy/
+// concerts SVG to JPEG for open graph images
+
+const fs = require('fs');
+const Image = require('@11ty/eleventy-img');
+
+const svgToJpeg = function () {
+ const socialPreviewImagesDir = 'dist/assets/images/social-preview/';
+ fs.readdir(socialPreviewImagesDir, (err, files) => {
+ if (!!files && files.length > 0) {
+ files.forEach(fileName => {
+ if (fileName.endsWith('.svg')) {
+ let imageUrl = socialPreviewImagesDir + fileName;
+ Image(imageUrl, {
+ formats: ['jpeg'],
+ outputDir: './' + socialPreviewImagesDir,
+ filenameFormat: function (id, src, width, format, options) {
+ let outputFileName = fileName.substring(0, fileName.length - 4);
+ return `${outputFileName}.${format}`;
+ }
+ });
+ }
+ });
+ } else {
+ console.log('⚠ No social images found');
+ }
+ });
+};
+
+module.exports = {
+ svgToJpeg
+};
diff --git a/config/filters/index.js b/config/filters/index.js
index 40ee326..0424a54 100644
--- a/config/filters/index.js
+++ b/config/filters/index.js
@@ -99,6 +99,28 @@ const mdInline = (content, opts) => {
return inline ? md.renderInline(content) : md.render(content);
};
+// source: https://github.com/bnijenhuis/bnijenhuis-nl/blob/main/.eleventy.js
+const splitlines = (input, maxCharLength) => {
+ const parts = input.split(' ');
+ const lines = parts.reduce(function (acc, cur) {
+ if (!acc.length) {
+ return [cur];
+ }
+
+ let lastOne = acc[acc.length - 1];
+
+ if (lastOne.length + cur.length > maxCharLength) {
+ return [...acc, cur];
+ }
+
+ acc[acc.length - 1] = lastOne + ' ' + cur;
+
+ return acc;
+ }, []);
+
+ return lines;
+};
+
module.exports = {
limit,
toHtml,
@@ -109,5 +131,6 @@ module.exports = {
stripHtml,
minifyCss,
minifyJs,
- mdInline
+ mdInline,
+ splitlines
};
diff --git a/package-lock.json b/package-lock.json
index 1dc80e1..5f7c5d9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "eleventy-excellent",
- "version": "1.2.3",
+ "version": "1.2.4",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "eleventy-excellent",
- "version": "1.2.3",
+ "version": "1.2.4",
"license": "ISC",
"dependencies": {
- "@11ty/eleventy": "^2.0.0-canary.30",
+ "@11ty/eleventy": "^2.0.0-beta.1",
"@11ty/eleventy-fetch": "^3.0.0",
"@11ty/eleventy-img": "^2.0.1",
"@11ty/eleventy-plugin-syntaxhighlight": "^4.1.0",
@@ -58,9 +58,9 @@
"integrity": "sha512-5R+DsT9LJ9tXiSQ4y+KLFppCkQyXhzAm1AIuBWE/sbU0hSXY5pkhoqQYEcPJQFg/nglL+wD55iv2j+7O96UAvg=="
},
"node_modules/@11ty/eleventy": {
- "version": "2.0.0-canary.30",
- "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-2.0.0-canary.30.tgz",
- "integrity": "sha512-kYszNYX1sEjNEDSoFD3Ez7RjXe2NeoDg+XauhOyrprN5EPa4k54t4F/dqBUup7Izm6IzqXr6wAkbKEPaly/URQ==",
+ "version": "2.0.0-beta.1",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-2.0.0-beta.1.tgz",
+ "integrity": "sha512-j/V73NWO3i8VnVBWHytDbHxyexomKwrbHiDOLs3LyNaaB3MYZIvGYYf10NVLDO37Zq9CacIfP6a69Njjg9rJDg==",
"dependencies": {
"@11ty/dependency-tree": "^2.0.1",
"@11ty/eleventy-dev-server": "^1.0.1",
@@ -249,9 +249,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz",
- "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==",
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz",
+ "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==",
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -273,9 +273,9 @@
}
},
"node_modules/@esbuild/android-arm": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.2.tgz",
- "integrity": "sha512-Art7v3xYfqH1gEMUSP0Nx67pNAlC/Y3qSg3mOw8Wg7MP9bJLXL0DrmJaV1Qz1o4FwagtvDgkVOeBDpZgxdj13Q==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.4.tgz",
+ "integrity": "sha512-R9GCe2xl2XDSc2XbQB63mFiFXHIVkOP+ltIxICKXqUPrFX97z6Z7vONCLQM1pSOLGqfLrGi3B7nbhxmFY/fomg==",
"cpu": [
"arm"
],
@@ -289,9 +289,9 @@
}
},
"node_modules/@esbuild/android-arm64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.2.tgz",
- "integrity": "sha512-QSkmYISXr2uFoR+NdmmKyR5svYb0cXDCfzwNblLsrC8wTpx/I1L7u/zrjrf4aLoHoRTycZFIewJwBiUrO5DWtQ==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.4.tgz",
+ "integrity": "sha512-91VwDrl4EpxBCiG6h2LZZEkuNvVZYJkv2T9gyLG/mhGG1qrM7i5SwUcg/hlSPnL/4hDT0TFcF35/XMGSn0bemg==",
"cpu": [
"arm64"
],
@@ -305,9 +305,9 @@
}
},
"node_modules/@esbuild/android-x64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.2.tgz",
- "integrity": "sha512-5VOaFBI0RK8jJVDHdeU1YJmpxXoOf1RPoiOBhk/Tvpulw7R1SwCsxHvC3eDQcoF0gV7YM4V2wJO0PR9tem6gCQ==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.4.tgz",
+ "integrity": "sha512-mGSqhEPL7029XL7QHNPxPs15JVa02hvZvysUcyMP9UXdGFwncl2WU0bqx+Ysgzd+WAbv8rfNa73QveOxAnAM2w==",
"cpu": [
"x64"
],
@@ -321,9 +321,9 @@
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.2.tgz",
- "integrity": "sha512-iQJu1Zn1Wi91D5x/sslEn/jwae1tgSAEHK0R/kYzIr5jO992IJwDDuWhSGll23jHt18RECxahhGG0BWY/bVUTw==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.4.tgz",
+ "integrity": "sha512-tTyJRM9dHvlMPt1KrBFVB5OW1kXOsRNvAPtbzoKazd5RhD5/wKlXk1qR2MpaZRYwf4WDMadt0Pv0GwxB41CVow==",
"cpu": [
"arm64"
],
@@ -337,9 +337,9 @@
}
},
"node_modules/@esbuild/darwin-x64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.2.tgz",
- "integrity": "sha512-j750nyrwoRZd3VnPo5sd12/5U27TxFGmvmoDv93G2jiaGJPYKJ/+5IfRAvHahGePTUIRPyOlE5YLFw9MlzuBnw==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.4.tgz",
+ "integrity": "sha512-phQuC2Imrb3TjOJwLN8EO50nb2FHe8Ew0OwgZDH1SV6asIPGudnwTQtighDF2EAYlXChLoMJwqjAp4vAaACq6w==",
"cpu": [
"x64"
],
@@ -353,9 +353,9 @@
}
},
"node_modules/@esbuild/freebsd-arm64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.2.tgz",
- "integrity": "sha512-ti7GU+/KUQQXEPmSUep7efZpA3KR2SkKsVuSL2FE7Yxka9apuqKfymAgQmVPMxstzAgCRBIu8uEu0KFmTfs3/Q==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.4.tgz",
+ "integrity": "sha512-oH6JUZkocgmjzzYaP5juERLpJQSwazdjZrTPgLRmAU2bzJ688x0vfMB/WTv4r58RiecdHvXOPC46VtsMy/mepg==",
"cpu": [
"arm64"
],
@@ -369,9 +369,9 @@
}
},
"node_modules/@esbuild/freebsd-x64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.2.tgz",
- "integrity": "sha512-NgooSKWSnrNKRuiumY1dg7KAGpsyXIMcwyOXN9imnqe8VFjqqrEOMqZRik0C1wlfLjiSCuMsj+YUSmBMAJMt0A==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.4.tgz",
+ "integrity": "sha512-U4iWGn/9TrAfpAdfd56eO0pRxIgb0a8Wj9jClrhT8hvZnOnS4dfMPW7o4fn15D/KqoiVYHRm43jjBaTt3g/2KA==",
"cpu": [
"x64"
],
@@ -385,9 +385,9 @@
}
},
"node_modules/@esbuild/linux-arm": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.2.tgz",
- "integrity": "sha512-8dfrRTd39n+THdAetwQKNwK6zBPR5oPjMtgRNXvRq8gsn/J5o69zTaOWVi3QO09BljqdShxU2dxDA09lDhdIqQ==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.4.tgz",
+ "integrity": "sha512-S2s9xWTGMTa/fG5EyMGDeL0wrWVgOSQcNddJWgu6rG1NCSXJHs76ZP9AsxjB3f2nZow9fWOyApklIgiTGZKhiw==",
"cpu": [
"arm"
],
@@ -401,9 +401,9 @@
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.2.tgz",
- "integrity": "sha512-jcJ4cxwQyqEqgDwkqj7820nKx9cM5WBPCCU4oUXvTeG+DkkJE6/P75od0VPHmItFfEJu+/2vV85ebvFVomZcBg==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.4.tgz",
+ "integrity": "sha512-UkGfQvYlwOaeYJzZG4cLV0hCASzQZnKNktRXUo3/BMZvdau40AOz9GzmGA063n1piq6VrFFh43apRDQx8hMP2w==",
"cpu": [
"arm64"
],
@@ -417,9 +417,9 @@
}
},
"node_modules/@esbuild/linux-ia32": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.2.tgz",
- "integrity": "sha512-dXZ3m++zaRVD2fqOUPP8QTh1Lfg6WO6uZDo/QJ3KdfnIR7dDToDtaA12AgKYvCed9Nuzf/gpKs/7/f6I02b/sg==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.4.tgz",
+ "integrity": "sha512-3lqFi4VFo/Vwvn77FZXeLd0ctolIJH/uXkH3yNgEk89Eh6D3XXAC9/iTPEzeEpsNE5IqGIsFa5Z0iPeOh25IyA==",
"cpu": [
"ia32"
],
@@ -433,9 +433,9 @@
}
},
"node_modules/@esbuild/linux-loong64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.2.tgz",
- "integrity": "sha512-/vntXkzSe9TUp0Rh35Wgye1EOhDtmIMjwC4rtahHcALmDXL+iuQGvwGFvXrP+sBigia/ltLryMAvCiqGV6plqw==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.4.tgz",
+ "integrity": "sha512-HqpWZkVslDHIwdQ9D+gk7NuAulgQvRxF9no54ut/M55KEb3mi7sQS3GwpPJzSyzzP0UkjQVN7/tbk88/CaX4EQ==",
"cpu": [
"loong64"
],
@@ -449,9 +449,9 @@
}
},
"node_modules/@esbuild/linux-mips64el": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.2.tgz",
- "integrity": "sha512-guYcNHjMRO1BMxWAeb8LDfgQaU8oeUO65xtlclwBD+hX3163KBifEHyao1hK96J10BP9n0UmZug6GhtGZaNm2Q==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.4.tgz",
+ "integrity": "sha512-d/nMCKKh/SVDbqR9ju+b78vOr0tNXtfBjcp5vfHONCCOAL9ad8gN9dC/u+UnH939pz7wO+0u/x9y1MaZcb/lKA==",
"cpu": [
"mips64el"
],
@@ -465,9 +465,9 @@
}
},
"node_modules/@esbuild/linux-ppc64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.2.tgz",
- "integrity": "sha512-fzHTnIGIVqgUGZcFnnisguKD4UneF4uwWwkG+i8kBspMDdU1wJ0jha1VdtxWP7Ob1KGxuXcoUlrQkCVO+Z5iOw==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.4.tgz",
+ "integrity": "sha512-lOD9p2dmjZcNiTU+sGe9Nn6G3aYw3k0HBJies1PU0j5IGfp6tdKOQ6mzfACRFCqXjnBuTqK7eTYpwx09O5LLfg==",
"cpu": [
"ppc64"
],
@@ -481,9 +481,9 @@
}
},
"node_modules/@esbuild/linux-riscv64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.2.tgz",
- "integrity": "sha512-Sa+z7csvNVeAsTD83tVSggOb8CAU7EdDuihC8WhtoJfuDVkF5+Vi0imaiCjXQ7Ci5rz/a8IJ1H1MWX3eI9AmuQ==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.4.tgz",
+ "integrity": "sha512-mTGnwWwVshAjGsd8rP+K6583cPDgxOunsqqldEYij7T5/ysluMHKqUIT4TJHfrDFadUwrghAL6QjER4FeqQXoA==",
"cpu": [
"riscv64"
],
@@ -497,9 +497,9 @@
}
},
"node_modules/@esbuild/linux-s390x": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.2.tgz",
- "integrity": "sha512-jUFCO+/VA1Y/oeauSNBubp2UtGu4xjBUEFVgMPm0qLuw6xw18yOagKwBOPVmyE3ZSFqGd9BAPZM/JrtadgBryA==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.4.tgz",
+ "integrity": "sha512-AQYuUGp50XM29/N/dehADxvc2bUqDcoqrVuijop1Wv72SyxT6dDB9wjUxuPZm2HwIM876UoNNBMVd+iX/UTKVQ==",
"cpu": [
"s390x"
],
@@ -513,9 +513,9 @@
}
},
"node_modules/@esbuild/linux-x64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.2.tgz",
- "integrity": "sha512-naygxkSmr6x9tuvpa8iGefnXo3Rc3Noz7c4+Dn0MSfSWJwLaN2YR686e7HkI09irfjDdU5UAq9wcxUwjkYQNUA==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.4.tgz",
+ "integrity": "sha512-+AsFBwKgQuhV2shfGgA9YloxLDVjXgUEWZum7glR5lLmV94IThu/u2JZGxTgjYby6kyXEx8lKOqP5rTEVBR0Rw==",
"cpu": [
"x64"
],
@@ -529,9 +529,9 @@
}
},
"node_modules/@esbuild/netbsd-x64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.2.tgz",
- "integrity": "sha512-Hagbdq4EpiG9XXJY6Ozfrl2RN5jkXZXd6BD39f43tWz0d8yyOrRZlofM1eA6JYQbdv6c8BUsUOcgopavIqwx4Q==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.4.tgz",
+ "integrity": "sha512-zD1TKYX9553OiLS/qkXPMlWoELYkH/VkzRYNKEU+GwFiqkq0SuxsKnsCg5UCdxN3cqd+1KZ8SS3R+WG/Hxy2jQ==",
"cpu": [
"x64"
],
@@ -545,9 +545,9 @@
}
},
"node_modules/@esbuild/openbsd-x64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.2.tgz",
- "integrity": "sha512-Pkby+VEXY7+aWP8J2RUCfqWbbZz2M1GavRGGnE2kEPzwarba/BOk3B45PSaKwc3iKdK2rgCPCTjC/p9JoKNejA==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.4.tgz",
+ "integrity": "sha512-PY1NjEsLRhPEFFg1AV0/4Or/gR+q2dOb9s5rXcPuCjyHRzbt8vnHJl3vYj+641TgWZzTFmSUnZbzs1zwTzjeqw==",
"cpu": [
"x64"
],
@@ -561,9 +561,9 @@
}
},
"node_modules/@esbuild/sunos-x64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.2.tgz",
- "integrity": "sha512-WAyg4dBTUsAPJ9cRnuQ23cwJWYRhP4e4y0M/l2+EpRjWW+g1MNAXKQQNNhRQ71zc8UixRVrqj+43ReHeZC8mJQ==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.4.tgz",
+ "integrity": "sha512-B3Z7s8QZQW9tKGleMRXvVmwwLPAUoDCHs4WZ2ElVMWiortLJFowU1NjAhXOKjDgC7o9ByeVcwyOlJ+F2r6ZgmQ==",
"cpu": [
"x64"
],
@@ -577,9 +577,9 @@
}
},
"node_modules/@esbuild/win32-arm64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.2.tgz",
- "integrity": "sha512-rMbO3gPpxuENd+AnZLgo4J/g+BkwxT3NK7nYpSZ0KlYtSdlxYMIMG5pznX7a1ISZKo67aGStne+K41jdkBywpA==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.4.tgz",
+ "integrity": "sha512-0HCu8R3mY/H5V7N6kdlsJkvrT591bO/oRZy8ztF1dhgNU5xD5tAh5bKByT1UjTGjp/VVBsl1PDQ3L18SfvtnBQ==",
"cpu": [
"arm64"
],
@@ -593,9 +593,9 @@
}
},
"node_modules/@esbuild/win32-ia32": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.2.tgz",
- "integrity": "sha512-73dWKDMhFk+4owS19OjEVbEDGFPRS1fyga3qOu5HPd5eTxJTjtlVTT/fG/S7AchA0vXS7hOqY70AAir1CkmICg==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.4.tgz",
+ "integrity": "sha512-VUjhVDQycse1gLbe06pC/uaA0M+piQXJpdpNdhg8sPmeIZZqu5xPoGWVCmcsOO2gaM2cywuTYTHkXRozo3/Nkg==",
"cpu": [
"ia32"
],
@@ -609,9 +609,9 @@
}
},
"node_modules/@esbuild/win32-x64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.2.tgz",
- "integrity": "sha512-QFJlhf73HCBjTqAWWSIlD8JQBtmue0Dd6UV+KGccycJ3HKj1dCkXdRKJGwc5bZWiI9hrxcWsVEa1kVFaltC4vQ==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.4.tgz",
+ "integrity": "sha512-0kLAjs+xN5OjhTt/aUA6t48SfENSCKgGPfExADYTOo/UCn0ivxos9/anUVeSfg+L+2O9xkFxvJXIJfG+Q4sYSg==",
"cpu": [
"x64"
],
@@ -1280,9 +1280,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001445",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001445.tgz",
- "integrity": "sha512-8sdQIdMztYmzfTMO6KfLny878Ln9c2M0fc7EH60IjlP4Dc4PiCy7K2Vl3ITmWgOyPgVQKa5x+UP/KqFsxj4mBg==",
+ "version": "1.0.30001448",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001448.tgz",
+ "integrity": "sha512-tq2YI+MJnooG96XpbTRYkBxLxklZPOdLmNIOdIhvf7SNJan6u5vCKum8iT7ZfCt70m1GPkuC7P3TtX6UuhupuA==",
"dev": true,
"funding": [
{
@@ -1356,9 +1356,9 @@
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
},
"node_modules/clean-css": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz",
- "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==",
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz",
+ "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==",
"dev": true,
"dependencies": {
"source-map": "~0.6.0"
@@ -2007,9 +2007,9 @@
}
},
"node_modules/esbuild": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.2.tgz",
- "integrity": "sha512-odaHSgtYafOXt2nSISwdWlfRkb4ceMX3akY1mWspQpT08jsqVYEK1XtVusr250Rmbx8AVNWjMPI/yyvKqxOKMw==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.4.tgz",
+ "integrity": "sha512-zBn9MeCwT7W5F1a3lXClD61ip6vQM+H8Msb0w8zMT4ZKBpDg+rFAraNyWCDelB/2L6M3g6AXHPnsyvjMFnxtFw==",
"dev": true,
"hasInstallScript": true,
"bin": {
@@ -2019,28 +2019,28 @@
"node": ">=12"
},
"optionalDependencies": {
- "@esbuild/android-arm": "0.17.2",
- "@esbuild/android-arm64": "0.17.2",
- "@esbuild/android-x64": "0.17.2",
- "@esbuild/darwin-arm64": "0.17.2",
- "@esbuild/darwin-x64": "0.17.2",
- "@esbuild/freebsd-arm64": "0.17.2",
- "@esbuild/freebsd-x64": "0.17.2",
- "@esbuild/linux-arm": "0.17.2",
- "@esbuild/linux-arm64": "0.17.2",
- "@esbuild/linux-ia32": "0.17.2",
- "@esbuild/linux-loong64": "0.17.2",
- "@esbuild/linux-mips64el": "0.17.2",
- "@esbuild/linux-ppc64": "0.17.2",
- "@esbuild/linux-riscv64": "0.17.2",
- "@esbuild/linux-s390x": "0.17.2",
- "@esbuild/linux-x64": "0.17.2",
- "@esbuild/netbsd-x64": "0.17.2",
- "@esbuild/openbsd-x64": "0.17.2",
- "@esbuild/sunos-x64": "0.17.2",
- "@esbuild/win32-arm64": "0.17.2",
- "@esbuild/win32-ia32": "0.17.2",
- "@esbuild/win32-x64": "0.17.2"
+ "@esbuild/android-arm": "0.17.4",
+ "@esbuild/android-arm64": "0.17.4",
+ "@esbuild/android-x64": "0.17.4",
+ "@esbuild/darwin-arm64": "0.17.4",
+ "@esbuild/darwin-x64": "0.17.4",
+ "@esbuild/freebsd-arm64": "0.17.4",
+ "@esbuild/freebsd-x64": "0.17.4",
+ "@esbuild/linux-arm": "0.17.4",
+ "@esbuild/linux-arm64": "0.17.4",
+ "@esbuild/linux-ia32": "0.17.4",
+ "@esbuild/linux-loong64": "0.17.4",
+ "@esbuild/linux-mips64el": "0.17.4",
+ "@esbuild/linux-ppc64": "0.17.4",
+ "@esbuild/linux-riscv64": "0.17.4",
+ "@esbuild/linux-s390x": "0.17.4",
+ "@esbuild/linux-x64": "0.17.4",
+ "@esbuild/netbsd-x64": "0.17.4",
+ "@esbuild/openbsd-x64": "0.17.4",
+ "@esbuild/sunos-x64": "0.17.4",
+ "@esbuild/win32-arm64": "0.17.4",
+ "@esbuild/win32-ia32": "0.17.4",
+ "@esbuild/win32-x64": "0.17.4"
}
},
"node_modules/escalade": {
@@ -2395,9 +2395,9 @@
}
},
"node_modules/get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dependencies": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
@@ -3640,9 +3640,9 @@
}
},
"node_modules/minimatch": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.4.tgz",
- "integrity": "sha512-U0iNYXt9wALljzfnGkhFSy5sAC6/SCR3JrHrlsdJz4kF8MvhTRQNiC59iUi1iqsitV7abrNAJWElVL9pdnoUgw==",
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -5737,9 +5737,9 @@
}
},
"node_modules/rimraf": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.0.tgz",
- "integrity": "sha512-ZJdkUR5/dRrRJHdcSKJLrpRn6tVjl9ALxd4yrTCxFsMpjQNzwHF6GLqMsuEzEYIXxHlFPDSk21Vr8VPuFBEz0g==",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.2.tgz",
+ "integrity": "sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ==",
"dev": true,
"bin": {
"rimraf": "dist/cjs/src/bin.js"
@@ -6460,9 +6460,9 @@
}
},
"node_modules/terser/node_modules/acorn": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
- "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
@@ -6868,9 +6868,9 @@
"integrity": "sha512-5R+DsT9LJ9tXiSQ4y+KLFppCkQyXhzAm1AIuBWE/sbU0hSXY5pkhoqQYEcPJQFg/nglL+wD55iv2j+7O96UAvg=="
},
"@11ty/eleventy": {
- "version": "2.0.0-canary.30",
- "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-2.0.0-canary.30.tgz",
- "integrity": "sha512-kYszNYX1sEjNEDSoFD3Ez7RjXe2NeoDg+XauhOyrprN5EPa4k54t4F/dqBUup7Izm6IzqXr6wAkbKEPaly/URQ==",
+ "version": "2.0.0-beta.1",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-2.0.0-beta.1.tgz",
+ "integrity": "sha512-j/V73NWO3i8VnVBWHytDbHxyexomKwrbHiDOLs3LyNaaB3MYZIvGYYf10NVLDO37Zq9CacIfP6a69Njjg9rJDg==",
"requires": {
"@11ty/dependency-tree": "^2.0.1",
"@11ty/eleventy-dev-server": "^1.0.1",
@@ -7003,9 +7003,9 @@
"integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w=="
},
"@babel/parser": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz",
- "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg=="
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz",
+ "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw=="
},
"@babel/types": {
"version": "7.20.7",
@@ -7018,156 +7018,156 @@
}
},
"@esbuild/android-arm": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.2.tgz",
- "integrity": "sha512-Art7v3xYfqH1gEMUSP0Nx67pNAlC/Y3qSg3mOw8Wg7MP9bJLXL0DrmJaV1Qz1o4FwagtvDgkVOeBDpZgxdj13Q==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.4.tgz",
+ "integrity": "sha512-R9GCe2xl2XDSc2XbQB63mFiFXHIVkOP+ltIxICKXqUPrFX97z6Z7vONCLQM1pSOLGqfLrGi3B7nbhxmFY/fomg==",
"dev": true,
"optional": true
},
"@esbuild/android-arm64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.2.tgz",
- "integrity": "sha512-QSkmYISXr2uFoR+NdmmKyR5svYb0cXDCfzwNblLsrC8wTpx/I1L7u/zrjrf4aLoHoRTycZFIewJwBiUrO5DWtQ==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.4.tgz",
+ "integrity": "sha512-91VwDrl4EpxBCiG6h2LZZEkuNvVZYJkv2T9gyLG/mhGG1qrM7i5SwUcg/hlSPnL/4hDT0TFcF35/XMGSn0bemg==",
"dev": true,
"optional": true
},
"@esbuild/android-x64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.2.tgz",
- "integrity": "sha512-5VOaFBI0RK8jJVDHdeU1YJmpxXoOf1RPoiOBhk/Tvpulw7R1SwCsxHvC3eDQcoF0gV7YM4V2wJO0PR9tem6gCQ==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.4.tgz",
+ "integrity": "sha512-mGSqhEPL7029XL7QHNPxPs15JVa02hvZvysUcyMP9UXdGFwncl2WU0bqx+Ysgzd+WAbv8rfNa73QveOxAnAM2w==",
"dev": true,
"optional": true
},
"@esbuild/darwin-arm64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.2.tgz",
- "integrity": "sha512-iQJu1Zn1Wi91D5x/sslEn/jwae1tgSAEHK0R/kYzIr5jO992IJwDDuWhSGll23jHt18RECxahhGG0BWY/bVUTw==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.4.tgz",
+ "integrity": "sha512-tTyJRM9dHvlMPt1KrBFVB5OW1kXOsRNvAPtbzoKazd5RhD5/wKlXk1qR2MpaZRYwf4WDMadt0Pv0GwxB41CVow==",
"dev": true,
"optional": true
},
"@esbuild/darwin-x64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.2.tgz",
- "integrity": "sha512-j750nyrwoRZd3VnPo5sd12/5U27TxFGmvmoDv93G2jiaGJPYKJ/+5IfRAvHahGePTUIRPyOlE5YLFw9MlzuBnw==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.4.tgz",
+ "integrity": "sha512-phQuC2Imrb3TjOJwLN8EO50nb2FHe8Ew0OwgZDH1SV6asIPGudnwTQtighDF2EAYlXChLoMJwqjAp4vAaACq6w==",
"dev": true,
"optional": true
},
"@esbuild/freebsd-arm64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.2.tgz",
- "integrity": "sha512-ti7GU+/KUQQXEPmSUep7efZpA3KR2SkKsVuSL2FE7Yxka9apuqKfymAgQmVPMxstzAgCRBIu8uEu0KFmTfs3/Q==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.4.tgz",
+ "integrity": "sha512-oH6JUZkocgmjzzYaP5juERLpJQSwazdjZrTPgLRmAU2bzJ688x0vfMB/WTv4r58RiecdHvXOPC46VtsMy/mepg==",
"dev": true,
"optional": true
},
"@esbuild/freebsd-x64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.2.tgz",
- "integrity": "sha512-NgooSKWSnrNKRuiumY1dg7KAGpsyXIMcwyOXN9imnqe8VFjqqrEOMqZRik0C1wlfLjiSCuMsj+YUSmBMAJMt0A==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.4.tgz",
+ "integrity": "sha512-U4iWGn/9TrAfpAdfd56eO0pRxIgb0a8Wj9jClrhT8hvZnOnS4dfMPW7o4fn15D/KqoiVYHRm43jjBaTt3g/2KA==",
"dev": true,
"optional": true
},
"@esbuild/linux-arm": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.2.tgz",
- "integrity": "sha512-8dfrRTd39n+THdAetwQKNwK6zBPR5oPjMtgRNXvRq8gsn/J5o69zTaOWVi3QO09BljqdShxU2dxDA09lDhdIqQ==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.4.tgz",
+ "integrity": "sha512-S2s9xWTGMTa/fG5EyMGDeL0wrWVgOSQcNddJWgu6rG1NCSXJHs76ZP9AsxjB3f2nZow9fWOyApklIgiTGZKhiw==",
"dev": true,
"optional": true
},
"@esbuild/linux-arm64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.2.tgz",
- "integrity": "sha512-jcJ4cxwQyqEqgDwkqj7820nKx9cM5WBPCCU4oUXvTeG+DkkJE6/P75od0VPHmItFfEJu+/2vV85ebvFVomZcBg==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.4.tgz",
+ "integrity": "sha512-UkGfQvYlwOaeYJzZG4cLV0hCASzQZnKNktRXUo3/BMZvdau40AOz9GzmGA063n1piq6VrFFh43apRDQx8hMP2w==",
"dev": true,
"optional": true
},
"@esbuild/linux-ia32": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.2.tgz",
- "integrity": "sha512-dXZ3m++zaRVD2fqOUPP8QTh1Lfg6WO6uZDo/QJ3KdfnIR7dDToDtaA12AgKYvCed9Nuzf/gpKs/7/f6I02b/sg==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.4.tgz",
+ "integrity": "sha512-3lqFi4VFo/Vwvn77FZXeLd0ctolIJH/uXkH3yNgEk89Eh6D3XXAC9/iTPEzeEpsNE5IqGIsFa5Z0iPeOh25IyA==",
"dev": true,
"optional": true
},
"@esbuild/linux-loong64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.2.tgz",
- "integrity": "sha512-/vntXkzSe9TUp0Rh35Wgye1EOhDtmIMjwC4rtahHcALmDXL+iuQGvwGFvXrP+sBigia/ltLryMAvCiqGV6plqw==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.4.tgz",
+ "integrity": "sha512-HqpWZkVslDHIwdQ9D+gk7NuAulgQvRxF9no54ut/M55KEb3mi7sQS3GwpPJzSyzzP0UkjQVN7/tbk88/CaX4EQ==",
"dev": true,
"optional": true
},
"@esbuild/linux-mips64el": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.2.tgz",
- "integrity": "sha512-guYcNHjMRO1BMxWAeb8LDfgQaU8oeUO65xtlclwBD+hX3163KBifEHyao1hK96J10BP9n0UmZug6GhtGZaNm2Q==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.4.tgz",
+ "integrity": "sha512-d/nMCKKh/SVDbqR9ju+b78vOr0tNXtfBjcp5vfHONCCOAL9ad8gN9dC/u+UnH939pz7wO+0u/x9y1MaZcb/lKA==",
"dev": true,
"optional": true
},
"@esbuild/linux-ppc64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.2.tgz",
- "integrity": "sha512-fzHTnIGIVqgUGZcFnnisguKD4UneF4uwWwkG+i8kBspMDdU1wJ0jha1VdtxWP7Ob1KGxuXcoUlrQkCVO+Z5iOw==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.4.tgz",
+ "integrity": "sha512-lOD9p2dmjZcNiTU+sGe9Nn6G3aYw3k0HBJies1PU0j5IGfp6tdKOQ6mzfACRFCqXjnBuTqK7eTYpwx09O5LLfg==",
"dev": true,
"optional": true
},
"@esbuild/linux-riscv64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.2.tgz",
- "integrity": "sha512-Sa+z7csvNVeAsTD83tVSggOb8CAU7EdDuihC8WhtoJfuDVkF5+Vi0imaiCjXQ7Ci5rz/a8IJ1H1MWX3eI9AmuQ==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.4.tgz",
+ "integrity": "sha512-mTGnwWwVshAjGsd8rP+K6583cPDgxOunsqqldEYij7T5/ysluMHKqUIT4TJHfrDFadUwrghAL6QjER4FeqQXoA==",
"dev": true,
"optional": true
},
"@esbuild/linux-s390x": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.2.tgz",
- "integrity": "sha512-jUFCO+/VA1Y/oeauSNBubp2UtGu4xjBUEFVgMPm0qLuw6xw18yOagKwBOPVmyE3ZSFqGd9BAPZM/JrtadgBryA==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.4.tgz",
+ "integrity": "sha512-AQYuUGp50XM29/N/dehADxvc2bUqDcoqrVuijop1Wv72SyxT6dDB9wjUxuPZm2HwIM876UoNNBMVd+iX/UTKVQ==",
"dev": true,
"optional": true
},
"@esbuild/linux-x64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.2.tgz",
- "integrity": "sha512-naygxkSmr6x9tuvpa8iGefnXo3Rc3Noz7c4+Dn0MSfSWJwLaN2YR686e7HkI09irfjDdU5UAq9wcxUwjkYQNUA==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.4.tgz",
+ "integrity": "sha512-+AsFBwKgQuhV2shfGgA9YloxLDVjXgUEWZum7glR5lLmV94IThu/u2JZGxTgjYby6kyXEx8lKOqP5rTEVBR0Rw==",
"dev": true,
"optional": true
},
"@esbuild/netbsd-x64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.2.tgz",
- "integrity": "sha512-Hagbdq4EpiG9XXJY6Ozfrl2RN5jkXZXd6BD39f43tWz0d8yyOrRZlofM1eA6JYQbdv6c8BUsUOcgopavIqwx4Q==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.4.tgz",
+ "integrity": "sha512-zD1TKYX9553OiLS/qkXPMlWoELYkH/VkzRYNKEU+GwFiqkq0SuxsKnsCg5UCdxN3cqd+1KZ8SS3R+WG/Hxy2jQ==",
"dev": true,
"optional": true
},
"@esbuild/openbsd-x64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.2.tgz",
- "integrity": "sha512-Pkby+VEXY7+aWP8J2RUCfqWbbZz2M1GavRGGnE2kEPzwarba/BOk3B45PSaKwc3iKdK2rgCPCTjC/p9JoKNejA==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.4.tgz",
+ "integrity": "sha512-PY1NjEsLRhPEFFg1AV0/4Or/gR+q2dOb9s5rXcPuCjyHRzbt8vnHJl3vYj+641TgWZzTFmSUnZbzs1zwTzjeqw==",
"dev": true,
"optional": true
},
"@esbuild/sunos-x64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.2.tgz",
- "integrity": "sha512-WAyg4dBTUsAPJ9cRnuQ23cwJWYRhP4e4y0M/l2+EpRjWW+g1MNAXKQQNNhRQ71zc8UixRVrqj+43ReHeZC8mJQ==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.4.tgz",
+ "integrity": "sha512-B3Z7s8QZQW9tKGleMRXvVmwwLPAUoDCHs4WZ2ElVMWiortLJFowU1NjAhXOKjDgC7o9ByeVcwyOlJ+F2r6ZgmQ==",
"dev": true,
"optional": true
},
"@esbuild/win32-arm64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.2.tgz",
- "integrity": "sha512-rMbO3gPpxuENd+AnZLgo4J/g+BkwxT3NK7nYpSZ0KlYtSdlxYMIMG5pznX7a1ISZKo67aGStne+K41jdkBywpA==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.4.tgz",
+ "integrity": "sha512-0HCu8R3mY/H5V7N6kdlsJkvrT591bO/oRZy8ztF1dhgNU5xD5tAh5bKByT1UjTGjp/VVBsl1PDQ3L18SfvtnBQ==",
"dev": true,
"optional": true
},
"@esbuild/win32-ia32": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.2.tgz",
- "integrity": "sha512-73dWKDMhFk+4owS19OjEVbEDGFPRS1fyga3qOu5HPd5eTxJTjtlVTT/fG/S7AchA0vXS7hOqY70AAir1CkmICg==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.4.tgz",
+ "integrity": "sha512-VUjhVDQycse1gLbe06pC/uaA0M+piQXJpdpNdhg8sPmeIZZqu5xPoGWVCmcsOO2gaM2cywuTYTHkXRozo3/Nkg==",
"dev": true,
"optional": true
},
"@esbuild/win32-x64": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.2.tgz",
- "integrity": "sha512-QFJlhf73HCBjTqAWWSIlD8JQBtmue0Dd6UV+KGccycJ3HKj1dCkXdRKJGwc5bZWiI9hrxcWsVEa1kVFaltC4vQ==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.4.tgz",
+ "integrity": "sha512-0kLAjs+xN5OjhTt/aUA6t48SfENSCKgGPfExADYTOo/UCn0ivxos9/anUVeSfg+L+2O9xkFxvJXIJfG+Q4sYSg==",
"dev": true,
"optional": true
},
@@ -7648,9 +7648,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001445",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001445.tgz",
- "integrity": "sha512-8sdQIdMztYmzfTMO6KfLny878Ln9c2M0fc7EH60IjlP4Dc4PiCy7K2Vl3ITmWgOyPgVQKa5x+UP/KqFsxj4mBg==",
+ "version": "1.0.30001448",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001448.tgz",
+ "integrity": "sha512-tq2YI+MJnooG96XpbTRYkBxLxklZPOdLmNIOdIhvf7SNJan6u5vCKum8iT7ZfCt70m1GPkuC7P3TtX6UuhupuA==",
"dev": true
},
"chalk": {
@@ -7697,9 +7697,9 @@
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
},
"clean-css": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz",
- "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==",
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz",
+ "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==",
"dev": true,
"requires": {
"source-map": "~0.6.0"
@@ -8173,33 +8173,33 @@
}
},
"esbuild": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.2.tgz",
- "integrity": "sha512-odaHSgtYafOXt2nSISwdWlfRkb4ceMX3akY1mWspQpT08jsqVYEK1XtVusr250Rmbx8AVNWjMPI/yyvKqxOKMw==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.4.tgz",
+ "integrity": "sha512-zBn9MeCwT7W5F1a3lXClD61ip6vQM+H8Msb0w8zMT4ZKBpDg+rFAraNyWCDelB/2L6M3g6AXHPnsyvjMFnxtFw==",
"dev": true,
"requires": {
- "@esbuild/android-arm": "0.17.2",
- "@esbuild/android-arm64": "0.17.2",
- "@esbuild/android-x64": "0.17.2",
- "@esbuild/darwin-arm64": "0.17.2",
- "@esbuild/darwin-x64": "0.17.2",
- "@esbuild/freebsd-arm64": "0.17.2",
- "@esbuild/freebsd-x64": "0.17.2",
- "@esbuild/linux-arm": "0.17.2",
- "@esbuild/linux-arm64": "0.17.2",
- "@esbuild/linux-ia32": "0.17.2",
- "@esbuild/linux-loong64": "0.17.2",
- "@esbuild/linux-mips64el": "0.17.2",
- "@esbuild/linux-ppc64": "0.17.2",
- "@esbuild/linux-riscv64": "0.17.2",
- "@esbuild/linux-s390x": "0.17.2",
- "@esbuild/linux-x64": "0.17.2",
- "@esbuild/netbsd-x64": "0.17.2",
- "@esbuild/openbsd-x64": "0.17.2",
- "@esbuild/sunos-x64": "0.17.2",
- "@esbuild/win32-arm64": "0.17.2",
- "@esbuild/win32-ia32": "0.17.2",
- "@esbuild/win32-x64": "0.17.2"
+ "@esbuild/android-arm": "0.17.4",
+ "@esbuild/android-arm64": "0.17.4",
+ "@esbuild/android-x64": "0.17.4",
+ "@esbuild/darwin-arm64": "0.17.4",
+ "@esbuild/darwin-x64": "0.17.4",
+ "@esbuild/freebsd-arm64": "0.17.4",
+ "@esbuild/freebsd-x64": "0.17.4",
+ "@esbuild/linux-arm": "0.17.4",
+ "@esbuild/linux-arm64": "0.17.4",
+ "@esbuild/linux-ia32": "0.17.4",
+ "@esbuild/linux-loong64": "0.17.4",
+ "@esbuild/linux-mips64el": "0.17.4",
+ "@esbuild/linux-ppc64": "0.17.4",
+ "@esbuild/linux-riscv64": "0.17.4",
+ "@esbuild/linux-s390x": "0.17.4",
+ "@esbuild/linux-x64": "0.17.4",
+ "@esbuild/netbsd-x64": "0.17.4",
+ "@esbuild/openbsd-x64": "0.17.4",
+ "@esbuild/sunos-x64": "0.17.4",
+ "@esbuild/win32-arm64": "0.17.4",
+ "@esbuild/win32-ia32": "0.17.4",
+ "@esbuild/win32-x64": "0.17.4"
}
},
"escalade": {
@@ -8469,9 +8469,9 @@
"dev": true
},
"get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
@@ -9369,9 +9369,9 @@
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
},
"minimatch": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.4.tgz",
- "integrity": "sha512-U0iNYXt9wALljzfnGkhFSy5sAC6/SCR3JrHrlsdJz4kF8MvhTRQNiC59iUi1iqsitV7abrNAJWElVL9pdnoUgw==",
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
"requires": {
"brace-expansion": "^2.0.1"
}
@@ -10865,9 +10865,9 @@
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
},
"rimraf": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.0.tgz",
- "integrity": "sha512-ZJdkUR5/dRrRJHdcSKJLrpRn6tVjl9ALxd4yrTCxFsMpjQNzwHF6GLqMsuEzEYIXxHlFPDSk21Vr8VPuFBEz0g==",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.2.tgz",
+ "integrity": "sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ==",
"dev": true
},
"run-parallel": {
@@ -11360,9 +11360,9 @@
},
"dependencies": {
"acorn": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
- "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
"dev": true
},
"commander": {
diff --git a/package.json b/package.json
index e53a475..7b71faf 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "eleventy-excellent",
- "version": "1.2.4",
+ "version": "1.3.0",
"description": "Eleventy starter based on the workflow suggested by Andy Bell's buildexcellentwebsit.es.",
"author": "Lene Saile",
"license": "ISC",
@@ -21,7 +21,7 @@
"url": "https://github.com/madrilene/eleventy-excellent.git"
},
"dependencies": {
- "@11ty/eleventy": "^2.0.0-canary.30",
+ "@11ty/eleventy": "^2.0.0-beta.1",
"@11ty/eleventy-fetch": "^3.0.0",
"@11ty/eleventy-img": "^2.0.1",
"@11ty/eleventy-plugin-syntaxhighlight": "^4.1.0",
diff --git a/readme.md b/readme.md
index db02a4c..cd7d721 100644
--- a/readme.md
+++ b/readme.md
@@ -3,7 +3,7 @@
Opiniated but easy to use Eleventy starter, based on the workflow suggested by Andy Bell's [buildexcellentwebsit.es](https://buildexcellentwebsit.es/).
If you end up using this starter, feel free to send me a link, I'd love to see it!
-Also let me know if you miss any features. Currently in planning: automatically generated OpenGraph images (as fallback) and dark mode, inlining CSS and JS.
+Also let me know if you miss any features. Currently in planning: dark mode, inlining CSS and JS.
- [Eleventy Excellent](#eleventy-excellent)
- [Preview](#preview)
@@ -16,6 +16,7 @@ Also let me know if you miss any features. Currently in planning: automatically
- [Creating a production build](#creating-a-production-build)
- [Built with Eleventy Excellent](#built-with-eleventy-excellent)
- [Logbook](#logbook)
+ - [23-01-25](#23-01-25)
- [23-01-09](#23-01-09)
- [22-12-29](#22-12-29)
- [22-12-20](#22-12-20)
@@ -44,6 +45,7 @@ https://eleventy-excellent.netlify.app/
- Syntax highlighting via eleventy-plugin-syntaxhighlight _([see blog post](https://eleventy-excellent.netlify.app/blog/post-with-some-code/))_
- Advanced markdown handling _([see blog post](https://eleventy-excellent.netlify.app/blog/post-with-all-the-markdown/))_
- 301 redirects for Netlify _([see blog post](https://eleventy-excellent.netlify.app/blog/post-with-301-redirects/))_
+- Automatically generated Open Graph images for blog posts _([see blog post](https://eleventy-excellent.netlify.app/blog/open-graph-images/))_
- SEO basics (XML-sitemap, metadata)
- dayjs handling dates & times
- Bundling via esbuild
@@ -99,6 +101,11 @@ npm run build
## Logbook
+### 23-01-25
+
+- updated Elevebty
+- minor: added automatically generated open graph images for blog posts
+
### 23-01-09
- updated Eleventy
@@ -200,3 +207,9 @@ Manuel is an accessibility expert. The menu I'm using is from one of his article
- https://web.dev/website-navigation/
- https://www.matuzo.at/
+
+**Bernard Nijenhuis**
+
+Bernard wrote the article on which the Open Graph Images implementation is based.
+
+- https://bnijenhuis.nl/notes/automatically-generate-open-graph-images-in-eleventy/
diff --git a/src/_includes/partials/meta-info.njk b/src/_includes/partials/meta-info.njk
index 28ab668..0fe3e0f 100644
--- a/src/_includes/partials/meta-info.njk
+++ b/src/_includes/partials/meta-info.njk
@@ -38,11 +38,12 @@
/>
+```
+
+To edit the look and behaviour of those images edit `src/social-preview.njk`.
+The implementation is based on [Bernard Nijenhuis article](https://bnijenhuis.nl/notes/automatically-generate-open-graph-images-in-eleventy/).
diff --git a/src/social-preview.njk b/src/social-preview.njk
new file mode 100644
index 0000000..33006b0
--- /dev/null
+++ b/src/social-preview.njk
@@ -0,0 +1,69 @@
+---
+# https://github.com/bnijenhuis/bnijenhuis-nl/blob/main/social-preview.njk
+pagination:
+ data: collections.posts
+ size: 1
+ alias: preview
+permalink: '/assets/images/social-preview/{{ preview.data.title | slugify }}-preview.svg'
+eleventyExcludeFromCollections: true
+---
+
+