diff --git a/.eleventy.js b/.eleventy.js
index 68dad7df..7919edc1 100644
--- a/.eleventy.js
+++ b/.eleventy.js
@@ -1,7 +1,6 @@
import syntaxHighlight from '@11ty/eleventy-plugin-syntaxhighlight'
import tablerIcons from 'eleventy-plugin-tabler-icons'
import postGraph from '@rknightuk/eleventy-plugin-post-graph'
-import embedEverything from 'eleventy-plugin-embed-everything'
import markdownIt from 'markdown-it'
import markdownItAnchor from 'markdown-it-anchor'
@@ -11,6 +10,7 @@ import htmlmin from 'html-minifier-terser'
import filters from './config/filters/index.js'
import { slugifyString } from './config/utils/index.js'
import { svgToJpeg } from './config/events/index.js'
+import { minifyJsComponents } from './config/events/index.js'
import { tagList, tagMap, postStats, tagsSortedByCount } from './config/collections/index.js'
import { img } from './config/shortcodes/index.js'
@@ -40,7 +40,6 @@ export default async function (eleventyConfig) {
highlightColorDark: '#60a5fa',
textColorDark: '#fff',
})
- eleventyConfig.addPlugin(embedEverything);
// quiet build output
eleventyConfig.setQuietMode(true)
@@ -68,6 +67,9 @@ export default async function (eleventyConfig) {
eleventyConfig.addPassthroughCopy({
'node_modules/@zachleat/webcare-webshare/webcare-webshare.js': 'assets/scripts/components/webcare-webshare.js'
})
+ eleventyConfig.addPassthroughCopy({
+ 'node_modules/youtube-video-element/youtube-video-element.js': 'assets/scripts/components/youtube-video-element.js'
+ })
// enable merging of tags
eleventyConfig.setDataDeepMerge(true)
@@ -134,6 +136,7 @@ export default async function (eleventyConfig) {
// events
eleventyConfig.on('afterBuild', svgToJpeg)
+ eleventyConfig.on('afterBuild', minifyJsComponents)
eleventyConfig.on('eleventy.after', () => {
execSync(`npx pagefind --site _site --glob "**/*.html"`, { encoding: 'utf-8' })
})
diff --git a/config/events/index.js b/config/events/index.js
index b4dc2df2..ec77d988 100644
--- a/config/events/index.js
+++ b/config/events/index.js
@@ -1,7 +1,8 @@
import fs from 'fs'
import Image from '@11ty/eleventy-img'
+import { minify } from 'terser'
-export const svgToJpeg = function () {
+export const svgToJpeg = () => {
const socialPreviewImagesDir = '_site/assets/img/social-preview/'
fs.readdir(socialPreviewImagesDir, (err, files) => {
if (!!files && files.length > 0) {
@@ -23,3 +24,17 @@ export const svgToJpeg = function () {
}
})
}
+
+export const minifyJsComponents = async () => {
+ const jsComponentsDir = '_site/assets/scripts/components';
+ const files = fs.readdirSync(jsComponentsDir);
+ for (const fileName of files) {
+ if (fileName.endsWith('.js')) {
+ const filePath = `${jsComponentsDir}/${fileName}`;
+ const minified = await minify(fs.readFileSync(filePath, 'utf8'));
+ fs.writeFileSync(filePath, minified.code);
+ } else {
+ console.log('⚠ No js components found')
+ }
+ }
+}
diff --git a/package-lock.json b/package-lock.json
index 90f2b40c..907b0803 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,7 +14,9 @@
"@daviddarnes/mastodon-post": "^1.1.1",
"@remy/webmention": "^1.5.0",
"@zachleat/pagefind-search": "^1.0.3",
- "@zachleat/webcare-webshare": "^1.0.3"
+ "@zachleat/webcare-webshare": "^1.0.3",
+ "terser": "^5.29.1",
+ "youtube-video-element": "^1.0.0"
},
"devDependencies": {
"@11ty/eleventy": "3.0.0-alpha.5",
@@ -27,7 +29,6 @@
"@rknightuk/eleventy-plugin-post-graph": "^1.0.6",
"child_process": "^1.0.2",
"dotenv-flow": "^4.1.0",
- "eleventy-plugin-embed-everything": "^1.18.2",
"eleventy-plugin-tabler-icons": "^2.5.2",
"html-minifier-terser": "^7.2.0",
"ics-to-json-extended": "^1.1.4",
@@ -1691,7 +1692,6 @@
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
- "dev": true,
"dependencies": {
"@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
@@ -1705,7 +1705,6 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true,
"engines": {
"node": ">=6.0.0"
}
@@ -1714,7 +1713,6 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
- "dev": true,
"engines": {
"node": ">=6.0.0"
}
@@ -1723,7 +1721,6 @@
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
"integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
- "dev": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.0",
"@jridgewell/trace-mapping": "^0.3.9"
@@ -1732,14 +1729,12 @@
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.15",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
- "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
- "dev": true
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.25",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
- "dev": true,
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
@@ -2911,7 +2906,6 @@
"version": "8.11.3",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
"integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
- "dev": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -3220,8 +3214,7 @@
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "dev": true
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
"node_modules/call-bind": {
"version": "1.0.7",
@@ -3550,15 +3543,6 @@
"iconv-lite": "^0.4.19"
}
},
- "node_modules/deepmerge": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
- "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/define-data-property": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
@@ -3735,97 +3719,12 @@
"node": ">=0.10.0"
}
},
- "node_modules/eleventy-plugin-embed-everything": {
- "version": "1.18.2",
- "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-everything/-/eleventy-plugin-embed-everything-1.18.2.tgz",
- "integrity": "sha512-J/zxLnYN7bhVlbEnqxSswxKis6VjDndUFnE3I9ZdCzGFzlWVrXj933w5DOCobx/OZesuYN9VmapNgAHsGvFoAg==",
- "dev": true,
- "dependencies": {
- "deepmerge": "^4.3.1",
- "eleventy-plugin-embed-instagram": "^1.2.7",
- "eleventy-plugin-embed-soundcloud": "^1.2.7",
- "eleventy-plugin-embed-spotify": "^1.3.0",
- "eleventy-plugin-embed-ted": "^1.0.1",
- "eleventy-plugin-embed-tiktok": "^1.1.7",
- "eleventy-plugin-embed-twitch": "^1.2.7",
- "eleventy-plugin-embed-twitter": "^1.4.0",
- "eleventy-plugin-vimeo-embed": "^1.3.8",
- "eleventy-plugin-youtube-embed": "^1.10.2"
- }
- },
- "node_modules/eleventy-plugin-embed-instagram": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-instagram/-/eleventy-plugin-embed-instagram-1.2.7.tgz",
- "integrity": "sha512-v6uSqeZiZU5L40lr4NTGBr+2Wbc81SqbNIllESEBQDFhS68g253WqkLaNs7gGh0k5hxhNuMt7ZZEBfous7jksw==",
- "dev": true
- },
- "node_modules/eleventy-plugin-embed-soundcloud": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-soundcloud/-/eleventy-plugin-embed-soundcloud-1.2.7.tgz",
- "integrity": "sha512-0+VNeEcMiRySmyTmPmMhCwkbds44k9W4jWqUwjvk665TRagiXcCdj/BK2wl8vyiVrn/0arWeSCpol4NBb6BIvA==",
- "dev": true,
- "dependencies": {
- "@11ty/eleventy-fetch": "^4.0.0"
- }
- },
- "node_modules/eleventy-plugin-embed-spotify": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-spotify/-/eleventy-plugin-embed-spotify-1.3.0.tgz",
- "integrity": "sha512-waVUtW5PO9aKYQEjnvHG4P5bPyKj+SSUBuDtqfF2K+j7dGItmEDD4DP7CmBz6lkn/LlJGmJ7uT4Mr6L4jAP4bg==",
- "dev": true
- },
- "node_modules/eleventy-plugin-embed-ted": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-ted/-/eleventy-plugin-embed-ted-1.0.1.tgz",
- "integrity": "sha512-F1CayKC05sGDAcdEgaZUP3Cs/71mwLT717sIUUiZWu+Gjd1Lp7m2gqL1R/uKnHN/CFxKYTpAA6ZNN/LCjg0ufw==",
- "dev": true
- },
- "node_modules/eleventy-plugin-embed-tiktok": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-tiktok/-/eleventy-plugin-embed-tiktok-1.1.7.tgz",
- "integrity": "sha512-Yb/95hafIsKVsV11ebsX0PoYzpLQWWSbdznbvPfA0HIKjfTHGEt1q0XX5DRGPnn5tor7lM5sha9DMQPzJb/oGQ==",
- "dev": true
- },
- "node_modules/eleventy-plugin-embed-twitch": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-twitch/-/eleventy-plugin-embed-twitch-1.2.7.tgz",
- "integrity": "sha512-E3oUtk5HhfgBaH9xpcnnByoddyyxuj0uhTzxD+UF5ftUU4pa0959HADBI1RuWUDssADzowpSes8m2gBgO4Peeg==",
- "dev": true
- },
- "node_modules/eleventy-plugin-embed-twitter": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-twitter/-/eleventy-plugin-embed-twitter-1.4.0.tgz",
- "integrity": "sha512-1e2oI0OJiVStywT48h6/IJDT4+XlH5EEVT1z87qV8wABAA022m2ozKuog21EEoI217aV2AM89R/FZ1oo1eD/mA==",
- "dev": true,
- "dependencies": {
- "@11ty/eleventy-fetch": "^4.0.0",
- "deepmerge": "^4.3.1"
- }
- },
"node_modules/eleventy-plugin-tabler-icons": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/eleventy-plugin-tabler-icons/-/eleventy-plugin-tabler-icons-2.5.2.tgz",
"integrity": "sha512-3qVv8ENb3yTYEySKNlgjyrhl/+D2RRglCNsW+D4VPDGLAIrg8YK805XANnAa9ZzT8k01rkAd3i5LBsAJUi7gnA==",
"dev": true
},
- "node_modules/eleventy-plugin-vimeo-embed": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/eleventy-plugin-vimeo-embed/-/eleventy-plugin-vimeo-embed-1.3.8.tgz",
- "integrity": "sha512-XU/XH/lrx9slUifFiRCsFh8XiDsZxCBh5MnFU8wAz8u8rCFX9PpmyveJ2oeDtDZjEINqaDC+YFSPsxoq59S3cQ==",
- "dev": true
- },
- "node_modules/eleventy-plugin-youtube-embed": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/eleventy-plugin-youtube-embed/-/eleventy-plugin-youtube-embed-1.10.2.tgz",
- "integrity": "sha512-N0068hshDe+sG50SEk4zLbwClaTeyl000WiqmNACRG2Iwb2/iTVV4IGTv7d1yWz/5DGVpsHMniboHJSyChvc9w==",
- "dev": true,
- "dependencies": {
- "@11ty/eleventy-fetch": "^4.0.0",
- "deepmerge": "^4.3.1",
- "lite-youtube-embed": "^0.3.0",
- "string-replace-async": "^3.0.2"
- }
- },
"node_modules/encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
@@ -5358,12 +5257,6 @@
"integrity": "sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==",
"dev": true
},
- "node_modules/lite-youtube-embed": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/lite-youtube-embed/-/lite-youtube-embed-0.3.2.tgz",
- "integrity": "sha512-b1dgKyF4PHhinonmr3PB172Nj0qQgA/7DE9EmeIXHR1ksnFEC2olWjNJyJGdsN2cleKHRjjsmrziKlwXtPlmLQ==",
- "dev": true
- },
"node_modules/lodash.assignin": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz",
@@ -6937,7 +6830,6 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -6946,7 +6838,6 @@
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "dev": true,
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -6987,15 +6878,6 @@
"safe-buffer": "~5.2.0"
}
},
- "node_modules/string-replace-async": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/string-replace-async/-/string-replace-async-3.0.2.tgz",
- "integrity": "sha512-s6hDtXJ7FKyRap/amefqrOMpkEQvxUDueyvJygQeHxCK5Za90dOMgdibCCrPdfdAYAkr8imrZ1PPXW7DOf0RzQ==",
- "dev": true,
- "engines": {
- "node": ">= 14.0.0"
- }
- },
"node_modules/string.prototype.trim": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
@@ -7090,7 +6972,6 @@
"version": "5.29.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.29.1.tgz",
"integrity": "sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ==",
- "dev": true,
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
"acorn": "^8.8.2",
@@ -7107,8 +6988,7 @@
"node_modules/terser/node_modules/commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
"node_modules/timers-ext": {
"version": "0.1.7",
@@ -7555,6 +7435,11 @@
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
+ },
+ "node_modules/youtube-video-element": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/youtube-video-element/-/youtube-video-element-1.0.0.tgz",
+ "integrity": "sha512-1gVgshAKgQD3BkIJPBzxSjX/Kz47QXpFF9/HIsd8IBJf3LS5tn7kbD5hKMjem9y8NuwH38n6Z+XLRQDWohi+9g=="
}
}
}
diff --git a/package.json b/package.json
index 6fed7ab3..1725e230 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "coryd.dev",
- "version": "7.7.0",
+ "version": "7.8.0",
"description": "The source for my personal site. Built using 11ty.",
"type": "module",
"scripts": {
@@ -26,7 +26,9 @@
"@daviddarnes/mastodon-post": "^1.1.1",
"@remy/webmention": "^1.5.0",
"@zachleat/pagefind-search": "^1.0.3",
- "@zachleat/webcare-webshare": "^1.0.3"
+ "@zachleat/webcare-webshare": "^1.0.3",
+ "terser": "^5.29.1",
+ "youtube-video-element": "^1.0.0"
},
"devDependencies": {
"@11ty/eleventy": "3.0.0-alpha.5",
@@ -39,7 +41,6 @@
"@rknightuk/eleventy-plugin-post-graph": "^1.0.6",
"child_process": "^1.0.2",
"dotenv-flow": "^4.1.0",
- "eleventy-plugin-embed-everything": "^1.18.2",
"eleventy-plugin-tabler-icons": "^2.5.2",
"html-minifier-terser": "^7.2.0",
"ics-to-json-extended": "^1.1.4",
diff --git a/src/_includes/partials/youtube-player.liquid b/src/_includes/partials/youtube-player.liquid
new file mode 100644
index 00000000..c20de7ef
--- /dev/null
+++ b/src/_includes/partials/youtube-player.liquid
@@ -0,0 +1,3 @@
+
+
+