feat: complete CDN elimination + SVG icon build pipeline

CDN cleanup:
- entry.html.twig: remove PhotoSwipe CDN + duplicate JS (main.js handles it)
- dailies.html.twig: remove PhotoSwipe CDN + duplicate JS
- home.html.twig: remove PhotoSwipe CDN + MapLibre CDN + maplibre-utils.js
  script tags; add {% block map_assets %} to register map bundle

SVG build pipeline:
- Add lucide-static devDependency; gen-weather-icons.js reads icon SVGs
  from node_modules and emits templates/partials/weather-icons.html.twig
- package.json build script now runs gen-weather-icons.js before esbuild
- entry-journal.html.twig includes generated partial instead of hardcoded map
- Rebuild: main.js 83.7kb, map.js 860.7kb, all fonts; zero CDN requests remain
This commit is contained in:
2026-06-25 00:13:17 +02:00
parent b017d2ff64
commit f6ee4944f9
8 changed files with 82 additions and 272 deletions
+9 -1
View File
@@ -13,7 +13,8 @@
"scrollama": "^3"
},
"devDependencies": {
"esbuild": "^0.21"
"esbuild": "^0.21",
"lucide-static": "latest"
}
},
"node_modules/@esbuild/aix-ppc64": {
@@ -747,6 +748,13 @@
"node": ">=0.10.0"
}
},
"node_modules/lucide-static": {
"version": "1.21.0",
"resolved": "https://registry.npmjs.org/lucide-static/-/lucide-static-1.21.0.tgz",
"integrity": "sha512-6248z2/4sEyKkYAPPUYxOPiB2RCfMmLdMHuoOhsTFnoD40ixAoHmTVhOPux8ADa1NTBmzpEKF7WNePm+Ms503Q==",
"dev": true,
"license": "ISC"
},
"node_modules/maplibre-gl": {
"version": "4.7.1",
"resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-4.7.1.tgz",