Skip to content

Commit 203e310

Browse files
committed
More optimization!
1 parent f435f82 commit 203e310

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

.github/workflows/static.yml

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040

4141
# Install CLI tools for minification and compression
4242
- name: Install optimization tools
43-
run: npm install -g terser clean-css-cli svgo-cli imagemin-cli imagemin-mozjpeg imagemin-pngquant
43+
run: npm install -g terser clean-css-cli svgo-cli imagemin-cli imagemin-mozjpeg imagemin-pngquant imagemin-webp imagemin-avif
4444

4545
# Minify JS files
4646
- name: Minify JS
@@ -61,6 +61,32 @@ jobs:
6161
imagemin "$file" --plugin=mozjpeg --plugin=pngquant > "$file.tmp" && mv "$file.tmp" "$file"
6262
done
6363
64+
# Convert images to WebP and AVIF
65+
- name: Convert Images to WebP and AVIF
66+
run: |
67+
for file in $(find . -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" \)); do
68+
# Generate WebP
69+
imagemin "$file" --plugin=webp --out-dir="$(dirname "$file")" --out-suffix=".webp"
70+
# Generate AVIF
71+
imagemin "$file" --plugin=avif --out-dir="$(dirname "$file")" --out-suffix=".avif"
72+
done
73+
74+
# Backup original HTML and convert <img> to <picture>
75+
- name: Convert <img> to <picture>
76+
run: |
77+
# Backup original HTML files
78+
find . -type f -name '*.html' -exec cp {} {}.bak \;
79+
# Replace <img> with <picture> for each image
80+
for img in $(find . -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" \)); do
81+
base_name=$(basename "$img")
82+
dir_name=$(dirname "$img")
83+
file_name="${base_name%.*}"
84+
# Construct the <picture> replacement
85+
picture_tag="<picture><source type='image/avif' srcset='${file_name}.avif'><source type='image/webp' srcset='${file_name}.webp'><img src='${base_name}' alt=''></picture>"
86+
# Replace <img src="..." alt="..."> with <picture> structure
87+
find . -type f -name '*.html' -exec sed -i "s|<img src=\"${base_name}\" alt=\"[^\"]*\"|>${picture_tag}|g" {} \;
88+
done
89+
6490
- name: Setup Pages
6591
uses: actions/configure-pages@v5
6692

assets/styles/fonts.css

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
@font-face {
22
font-family: "JetBrains Mono Regular";
33
src: url("/assets/fonts/JetBrainsMono/JetBrainsMono-Regular.ttf");
4+
font-display: swap;
45
}
56

67
@font-face {
78
font-family: "JetBrains Mono Medium";
89
src: url("/assets/fonts/JetBrainsMono/JetBrainsMono-Medium.ttf");
10+
font-display: swap;
911
}

0 commit comments

Comments
 (0)