Skip to content

Commit 70afb34

Browse files
committed
Fixes image optimization
1 parent bfbc32f commit 70afb34

File tree

11 files changed

+20
-14
lines changed

11 files changed

+20
-14
lines changed

assets/bundle/main.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ import{a as o,b as p,c as $,d as N,e as n,f as k,g as O,h as S}from"./chunks/chu
108108
<time datetime="${this.endingDate.toISOString()}">${D(this.endingDate)}</time>
109109
</div>`}renderMedia(){return this.asset===void 0?k:n`<div class="media-zone">
110110
<div class="media-container">
111-
<img class="media-cover" src="${this.asset}" alt="" />
112-
<img class="media" src="${this.asset}" alt="" />
111+
<img class="media-cover" loading="lazy" src="${this.asset}" alt="" />
112+
<img class="media" loading="lazy" src="${this.asset}" alt="" />
113113
</div>
114114
</div>`}render(){return n`
115115
<div class="timeline-zone">
6.33 KB
Loading
18.5 KB
Loading
6.91 KB
Loading

assets/favicon-opt/favicon-16x16.png

565 Bytes
Loading

assets/favicon-opt/favicon-32x32.png

941 Bytes
Loading
3.61 KB
Binary file not shown.

index.html

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
<meta name="theme-color" media="(prefers-color-scheme: light)" content="#ffffff" />
1717
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#041c38" />
1818

19-
<link rel="apple-touch-icon" sizes="180x180" href="./assets/favicon/apple-touch-icon.png" />
20-
<link rel="icon" type="image/png" sizes="32x32" href="./assets/favicon/favicon-32x32.png" />
21-
<link rel="icon" type="image/png" sizes="16x16" href="./assets/favicon/favicon-16x16.png" />
19+
<link rel="apple-touch-icon" sizes="180x180" href="./assets/favicon-opt/apple-touch-icon.png" />
20+
<link rel="icon" type="image/png" sizes="32x32" href="./assets/favicon-opt/favicon-32x32.png" />
21+
<link rel="icon" type="image/png" sizes="16x16" href="./assets/favicon-opt/favicon-16x16.png" />
2222
<link rel="manifest" href="./site.webmanifest" />
2323

2424
<link rel="preload" href="./assets/media-opt/features/phone-mergein-rough.webp" as="image" />

scripts/images.js

+11-5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { globby } from 'globby';
33
import { existsSync } from 'fs';
44
import { writeFile, mkdir } from 'fs/promises';
55
import { dirname } from 'path';
6+
import { dir } from 'console';
67

78
const createFileAndDirectories = async (file, buffer) => {
89
const dir = dirname(file);
@@ -12,15 +13,20 @@ const createFileAndDirectories = async (file, buffer) => {
1213
return writeFile(file, buffer);
1314
};
1415

15-
const imageOptimize = async () => {
16-
const files = await globby(['assets/media/**/*.{png,jpg,jpeg}']);
16+
const imageOptimize = async (dir, ext) => {
17+
const files = await globby([`assets/${dir}/**/*.{png,jpg,jpeg}`]);
1718
const promises = files.map(async file => {
18-
const optimized = file.replace('media', 'media-opt').replace(/\.(png|jpg|jpeg)$/, '.webp');
19-
const optimizedBuffer = await sharp(file).toFormat('webp', { lossless: true }).toBuffer();
19+
const optimized = file.replace(dir, `${dir}-opt`).replace(/\.(png|jpg|jpeg)$/, `.${ext}`);
20+
const optimizedBuffer = await sharp(file).toFormat(ext, { lossless: true }).toBuffer();
2021
await createFileAndDirectories(optimized, optimizedBuffer);
2122
});
2223
await Promise.all(promises);
2324
};
2425

25-
await imageOptimize();
26+
await Promise.all(
27+
[
28+
['media', 'webp'],
29+
['favicon', 'png'],
30+
].map(([dir, ext]) => imageOptimize(dir, ext)),
31+
);
2632
console.log('Images optimized');

site.webmanifest

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
"name": "Keith Daulton | Design Technologist, User Experience Engineer, Technical Leader",
33
"short_name": "Keith Daulton",
44
"icons": [
5-
{ "src": "./assets/favicon/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },
6-
{ "src": "./assets/favicon/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" }
5+
{ "src": "./assets/favicon-opt/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },
6+
{ "src": "./assets/favicon-opt/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" }
77
],
88
"theme_color": "#ffffff",
99
"background_color": "#ffffff",

src/components/life-events/life-event.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,8 @@ export class KdLifeEvent extends KdBaseElement {
240240
if (this.asset === undefined) return nothing;
241241
return html`<div class="media-zone">
242242
<div class="media-container">
243-
<img class="media-cover" src="${this.asset}" alt="" />
244-
<img class="media" src="${this.asset}" alt="" />
243+
<img class="media-cover" loading="lazy" src="${this.asset}" alt="" />
244+
<img class="media" loading="lazy" src="${this.asset}" alt="" />
245245
</div>
246246
</div>`;
247247
}

0 commit comments

Comments
 (0)