feat: remove astro-imagetools
It's not worth the effort.
@@ -4,7 +4,6 @@ import prefetch from '@astrojs/prefetch';
|
|||||||
import sitemap from '@astrojs/sitemap';
|
import sitemap from '@astrojs/sitemap';
|
||||||
import tailwind from '@astrojs/tailwind';
|
import tailwind from '@astrojs/tailwind';
|
||||||
import swup from '@swup/astro';
|
import swup from '@swup/astro';
|
||||||
import { astroImageTools } from 'astro-imagetools';
|
|
||||||
import pagefind from 'astro-pagefind';
|
import pagefind from 'astro-pagefind';
|
||||||
import webmanifest from 'astro-webmanifest';
|
import webmanifest from 'astro-webmanifest';
|
||||||
import { defineConfig } from 'astro/config';
|
import { defineConfig } from 'astro/config';
|
||||||
@@ -33,7 +32,6 @@ export default defineConfig({
|
|||||||
compat: true,
|
compat: true,
|
||||||
}),
|
}),
|
||||||
swup({ globalInstance: true }),
|
swup({ globalInstance: true }),
|
||||||
astroImageTools,
|
|
||||||
prefetch(),
|
prefetch(),
|
||||||
pagefind(),
|
pagefind(),
|
||||||
sitemap({
|
sitemap({
|
||||||
|
|||||||
@@ -34,7 +34,6 @@
|
|||||||
"@swup/scripts-plugin": "^2.1.0",
|
"@swup/scripts-plugin": "^2.1.0",
|
||||||
"@swup/scroll-plugin": "^3.3.2",
|
"@swup/scroll-plugin": "^3.3.2",
|
||||||
"astro": "^4.5.4",
|
"astro": "^4.5.4",
|
||||||
"astro-imagetools": "^0.9.0",
|
|
||||||
"astro-pagefind": "^1.4.0",
|
"astro-pagefind": "^1.4.0",
|
||||||
"astro-seo": "^0.8.3",
|
"astro-seo": "^0.8.3",
|
||||||
"astro-webmanifest": "^1.0.0",
|
"astro-webmanifest": "^1.0.0",
|
||||||
@@ -58,7 +57,6 @@
|
|||||||
"react-dom": "npm:@preact/compat@latest",
|
"react-dom": "npm:@preact/compat@latest",
|
||||||
"reading-time": "^1.5.0",
|
"reading-time": "^1.5.0",
|
||||||
"sal.js": "^0.8.5",
|
"sal.js": "^0.8.5",
|
||||||
"sharp": "^0.33.2",
|
|
||||||
"swup": "^4.6.0",
|
"swup": "^4.6.0",
|
||||||
"tailwindcss": "^3.4.1",
|
"tailwindcss": "^3.4.1",
|
||||||
"unist-util-visit": "^5.0.0"
|
"unist-util-visit": "^5.0.0"
|
||||||
|
|||||||
342
pnpm-lock.yaml
generated
@@ -57,9 +57,6 @@ dependencies:
|
|||||||
astro:
|
astro:
|
||||||
specifier: ^4.5.4
|
specifier: ^4.5.4
|
||||||
version: 4.5.4(@types/node@20.11.27)(typescript@5.4.2)
|
version: 4.5.4(@types/node@20.11.27)(typescript@5.4.2)
|
||||||
astro-imagetools:
|
|
||||||
specifier: ^0.9.0
|
|
||||||
version: 0.9.0(astro@4.5.4)
|
|
||||||
astro-pagefind:
|
astro-pagefind:
|
||||||
specifier: ^1.4.0
|
specifier: ^1.4.0
|
||||||
version: 1.4.0(astro@4.5.4)
|
version: 1.4.0(astro@4.5.4)
|
||||||
@@ -129,9 +126,6 @@ dependencies:
|
|||||||
sal.js:
|
sal.js:
|
||||||
specifier: ^0.8.5
|
specifier: ^0.8.5
|
||||||
version: 0.8.5
|
version: 0.8.5
|
||||||
sharp:
|
|
||||||
specifier: ^0.33.2
|
|
||||||
version: 0.33.2
|
|
||||||
swup:
|
swup:
|
||||||
specifier: ^4.6.0
|
specifier: ^4.6.0
|
||||||
version: 4.6.0
|
version: 4.6.0
|
||||||
@@ -504,10 +498,6 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@astropub/codecs@0.4.4:
|
|
||||||
resolution: {integrity: sha512-jHmdZK2B7dfelTsVzkWVb93WPjuKkHz07xUcyg5WtUxTeCCxdDVLnvZlsB5PC2r7HmJLf03TP1QYb1ZgrEebyQ==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@babel/code-frame@7.22.13:
|
/@babel/code-frame@7.22.13:
|
||||||
resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==}
|
resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@@ -2406,14 +2396,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==}
|
resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@emnapi/runtime@0.45.0:
|
|
||||||
resolution: {integrity: sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==}
|
|
||||||
requiresBuild: true
|
|
||||||
dependencies:
|
|
||||||
tslib: 2.6.2
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/aix-ppc64@0.19.11:
|
/@esbuild/aix-ppc64@0.19.11:
|
||||||
resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==}
|
resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -3129,194 +3111,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==}
|
resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@img/sharp-darwin-arm64@0.33.2:
|
|
||||||
resolution: {integrity: sha512-itHBs1rPmsmGF9p4qRe++CzCgd+kFYktnsoR1sbIAfsRMrJZau0Tt1AH9KVnufc2/tU02Gf6Ibujx+15qRE03w==}
|
|
||||||
engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [darwin]
|
|
||||||
requiresBuild: true
|
|
||||||
optionalDependencies:
|
|
||||||
'@img/sharp-libvips-darwin-arm64': 1.0.1
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-darwin-x64@0.33.2:
|
|
||||||
resolution: {integrity: sha512-/rK/69Rrp9x5kaWBjVN07KixZanRr+W1OiyKdXcbjQD6KbW+obaTeBBtLUAtbBsnlTTmWthw99xqoOS7SsySDg==}
|
|
||||||
engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [darwin]
|
|
||||||
requiresBuild: true
|
|
||||||
optionalDependencies:
|
|
||||||
'@img/sharp-libvips-darwin-x64': 1.0.1
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-libvips-darwin-arm64@1.0.1:
|
|
||||||
resolution: {integrity: sha512-kQyrSNd6lmBV7O0BUiyu/OEw9yeNGFbQhbxswS1i6rMDwBBSX+e+rPzu3S+MwAiGU3HdLze3PanQ4Xkfemgzcw==}
|
|
||||||
engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [darwin]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-libvips-darwin-x64@1.0.1:
|
|
||||||
resolution: {integrity: sha512-eVU/JYLPVjhhrd8Tk6gosl5pVlvsqiFlt50wotCvdkFGf+mDNBJxMh+bvav+Wt3EBnNZWq8Sp2I7XfSjm8siog==}
|
|
||||||
engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [darwin]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-libvips-linux-arm64@1.0.1:
|
|
||||||
resolution: {integrity: sha512-bnGG+MJjdX70mAQcSLxgeJco11G+MxTz+ebxlz8Y3dxyeb3Nkl7LgLI0mXupoO+u1wRNx/iRj5yHtzA4sde1yA==}
|
|
||||||
engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-libvips-linux-arm@1.0.1:
|
|
||||||
resolution: {integrity: sha512-FtdMvR4R99FTsD53IA3LxYGghQ82t3yt0ZQ93WMZ2xV3dqrb0E8zq4VHaTOuLEAuA83oDawHV3fd+BsAPadHIQ==}
|
|
||||||
engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [arm]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-libvips-linux-s390x@1.0.1:
|
|
||||||
resolution: {integrity: sha512-3+rzfAR1YpMOeA2zZNp+aYEzGNWK4zF3+sdMxuCS3ey9HhDbJ66w6hDSHDMoap32DueFwhhs3vwooAB2MaK4XQ==}
|
|
||||||
engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [s390x]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-libvips-linux-x64@1.0.1:
|
|
||||||
resolution: {integrity: sha512-3NR1mxFsaSgMMzz1bAnnKbSAI+lHXVTqAHgc1bgzjHuXjo4hlscpUxc0vFSAPKI3yuzdzcZOkq7nDPrP2F8Jgw==}
|
|
||||||
engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-libvips-linuxmusl-arm64@1.0.1:
|
|
||||||
resolution: {integrity: sha512-5aBRcjHDG/T6jwC3Edl3lP8nl9U2Yo8+oTl5drd1dh9Z1EBfzUKAJFUDTDisDjUwc7N4AjnPGfCA3jl3hY8uDg==}
|
|
||||||
engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-libvips-linuxmusl-x64@1.0.1:
|
|
||||||
resolution: {integrity: sha512-dcT7inI9DBFK6ovfeWRe3hG30h51cBAP5JXlZfx6pzc/Mnf9HFCQDLtYf4MCBjxaaTfjCCjkBxcy3XzOAo5txw==}
|
|
||||||
engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-linux-arm64@0.33.2:
|
|
||||||
resolution: {integrity: sha512-pz0NNo882vVfqJ0yNInuG9YH71smP4gRSdeL09ukC2YLE6ZyZePAlWKEHgAzJGTiOh8Qkaov6mMIMlEhmLdKew==}
|
|
||||||
engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
optionalDependencies:
|
|
||||||
'@img/sharp-libvips-linux-arm64': 1.0.1
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-linux-arm@0.33.2:
|
|
||||||
resolution: {integrity: sha512-Fndk/4Zq3vAc4G/qyfXASbS3HBZbKrlnKZLEJzPLrXoJuipFNNwTes71+Ki1hwYW5lch26niRYoZFAtZVf3EGA==}
|
|
||||||
engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [arm]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
optionalDependencies:
|
|
||||||
'@img/sharp-libvips-linux-arm': 1.0.1
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-linux-s390x@0.33.2:
|
|
||||||
resolution: {integrity: sha512-MBoInDXDppMfhSzbMmOQtGfloVAflS2rP1qPcUIiITMi36Mm5YR7r0ASND99razjQUpHTzjrU1flO76hKvP5RA==}
|
|
||||||
engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [s390x]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
optionalDependencies:
|
|
||||||
'@img/sharp-libvips-linux-s390x': 1.0.1
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-linux-x64@0.33.2:
|
|
||||||
resolution: {integrity: sha512-xUT82H5IbXewKkeF5aiooajoO1tQV4PnKfS/OZtb5DDdxS/FCI/uXTVZ35GQ97RZXsycojz/AJ0asoz6p2/H/A==}
|
|
||||||
engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
optionalDependencies:
|
|
||||||
'@img/sharp-libvips-linux-x64': 1.0.1
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-linuxmusl-arm64@0.33.2:
|
|
||||||
resolution: {integrity: sha512-F+0z8JCu/UnMzg8IYW1TMeiViIWBVg7IWP6nE0p5S5EPQxlLd76c8jYemG21X99UzFwgkRo5yz2DS+zbrnxZeA==}
|
|
||||||
engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
optionalDependencies:
|
|
||||||
'@img/sharp-libvips-linuxmusl-arm64': 1.0.1
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-linuxmusl-x64@0.33.2:
|
|
||||||
resolution: {integrity: sha512-+ZLE3SQmSL+Fn1gmSaM8uFusW5Y3J9VOf+wMGNnTtJUMUxFhv+P4UPaYEYT8tqnyYVaOVGgMN/zsOxn9pSsO2A==}
|
|
||||||
engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
optionalDependencies:
|
|
||||||
'@img/sharp-libvips-linuxmusl-x64': 1.0.1
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-wasm32@0.33.2:
|
|
||||||
resolution: {integrity: sha512-fLbTaESVKuQcpm8ffgBD7jLb/CQLcATju/jxtTXR1XCLwbOQt+OL5zPHSDMmp2JZIeq82e18yE0Vv7zh6+6BfQ==}
|
|
||||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [wasm32]
|
|
||||||
requiresBuild: true
|
|
||||||
dependencies:
|
|
||||||
'@emnapi/runtime': 0.45.0
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-win32-ia32@0.33.2:
|
|
||||||
resolution: {integrity: sha512-okBpql96hIGuZ4lN3+nsAjGeggxKm7hIRu9zyec0lnfB8E7Z6p95BuRZzDDXZOl2e8UmR4RhYt631i7mfmKU8g==}
|
|
||||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [ia32]
|
|
||||||
os: [win32]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@img/sharp-win32-x64@0.33.2:
|
|
||||||
resolution: {integrity: sha512-E4magOks77DK47FwHUIGH0RYWSgRBfGdK56kIHSVeB9uIS4pPFr4N2kIVsXdQQo4LzOsENKV5KAhRlRL7eMAdg==}
|
|
||||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [win32]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@import-maps/resolve@1.0.1:
|
/@import-maps/resolve@1.0.1:
|
||||||
resolution: {integrity: sha512-tWZNBIS1CoekcwlMuyG2mr0a1Wo5lb5lEHwwWvZo+5GLgr3e9LLDTtmgtCWEwBpXMkxn9D+2W9j2FY6eZQq0tA==}
|
resolution: {integrity: sha512-tWZNBIS1CoekcwlMuyG2mr0a1Wo5lb5lEHwwWvZo+5GLgr3e9LLDTtmgtCWEwBpXMkxn9D+2W9j2FY6eZQq0tA==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -4179,7 +3973,7 @@ packages:
|
|||||||
nopt: 5.0.0
|
nopt: 5.0.0
|
||||||
npmlog: 5.0.1
|
npmlog: 5.0.1
|
||||||
rimraf: 3.0.2
|
rimraf: 3.0.2
|
||||||
semver: 7.5.4
|
semver: 7.6.0
|
||||||
tar: 6.2.0
|
tar: 6.2.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- encoding
|
- encoding
|
||||||
@@ -6051,7 +5845,7 @@ packages:
|
|||||||
debug: 4.3.4(supports-color@9.4.0)
|
debug: 4.3.4(supports-color@9.4.0)
|
||||||
globby: 11.1.0
|
globby: 11.1.0
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
semver: 7.5.4
|
semver: 7.6.0
|
||||||
tsutils: 3.21.0(typescript@5.4.2)
|
tsutils: 3.21.0(typescript@5.4.2)
|
||||||
typescript: 5.4.2
|
typescript: 5.4.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@@ -6743,23 +6537,6 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/astro-imagetools@0.9.0(astro@4.5.4):
|
|
||||||
resolution: {integrity: sha512-iZCSiUbFr0h8HSyX2Fl/hzc3RlmVjNstWwsZZSyQKW9vRmMny/bd3qL3p8wuC6ISsAvtHfVnJLmorhhRhwVOcw==}
|
|
||||||
engines: {node: ^14.15.0 || >=16.0.0}
|
|
||||||
peerDependencies:
|
|
||||||
astro: '>=0.26 || >=1.0.0-beta'
|
|
||||||
dependencies:
|
|
||||||
'@astropub/codecs': 0.4.4
|
|
||||||
astro: 4.5.4(@types/node@20.11.27)(typescript@5.4.2)
|
|
||||||
file-type: 17.1.1
|
|
||||||
find-cache-dir: 3.3.2
|
|
||||||
find-up: 6.3.0
|
|
||||||
object-hash: 3.0.0
|
|
||||||
potrace: 2.1.8
|
|
||||||
optionalDependencies:
|
|
||||||
imagetools-core: 3.0.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/astro-pagefind@1.4.0(astro@4.5.4):
|
/astro-pagefind@1.4.0(astro@4.5.4):
|
||||||
resolution: {integrity: sha512-WMUlS0TTqIDqygplj/cxKU+l3oI+zB2qgYNMZed5R5nXuw8HhAKATog9zazuN05TOSWxI2Ap9+9WAYnnJ+4C7A==}
|
resolution: {integrity: sha512-WMUlS0TTqIDqygplj/cxKU+l3oI+zB2qgYNMZed5R5nXuw8HhAKATog9zazuN05TOSWxI2Ap9+9WAYnnJ+4C7A==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -7309,7 +7086,7 @@ packages:
|
|||||||
/builtins@5.0.1:
|
/builtins@5.0.1:
|
||||||
resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
|
resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
semver: 7.5.4
|
semver: 7.6.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/byline@5.0.0:
|
/byline@5.0.0:
|
||||||
@@ -8524,6 +8301,7 @@ packages:
|
|||||||
/deep-extend@0.6.0:
|
/deep-extend@0.6.0:
|
||||||
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
|
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
|
||||||
engines: {node: '>=4.0.0'}
|
engines: {node: '>=4.0.0'}
|
||||||
|
requiresBuild: true
|
||||||
|
|
||||||
/deep-is@0.1.4:
|
/deep-is@0.1.4:
|
||||||
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
|
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
|
||||||
@@ -8660,6 +8438,7 @@ packages:
|
|||||||
engines: {node: '>=0.10'}
|
engines: {node: '>=0.10'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
|
dev: true
|
||||||
|
|
||||||
/detect-libc@2.0.2:
|
/detect-libc@2.0.2:
|
||||||
resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
|
resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
|
||||||
@@ -9928,15 +9707,6 @@ packages:
|
|||||||
token-types: 4.2.1
|
token-types: 4.2.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/file-type@17.1.1:
|
|
||||||
resolution: {integrity: sha512-heRUMZHby2Qj6wZAA3YHeMlRmZNQTcb6VxctkGmM+mcM6ROQKvHpr7SS6EgdfEhH+s25LDshBjvPx/Ecm+bOVQ==}
|
|
||||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
|
||||||
dependencies:
|
|
||||||
readable-web-to-node-stream: 3.0.2
|
|
||||||
strtok3: 7.0.0
|
|
||||||
token-types: 5.0.1
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/file-type@18.7.0:
|
/file-type@18.7.0:
|
||||||
resolution: {integrity: sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw==}
|
resolution: {integrity: sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw==}
|
||||||
engines: {node: '>=14.16'}
|
engines: {node: '>=14.16'}
|
||||||
@@ -11208,15 +10978,6 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 16.9.1
|
'@types/node': 16.9.1
|
||||||
|
|
||||||
/imagetools-core@3.0.2:
|
|
||||||
resolution: {integrity: sha512-DlArpNiefCc1syIqvOONcE8L8IahN8GjwaEjm6wIJIvuKoFoI1RcKmWWfS2dYxSlTiSp2X5b3JnHDjUXmWqlVA==}
|
|
||||||
engines: {node: '>=12.0.0'}
|
|
||||||
requiresBuild: true
|
|
||||||
dependencies:
|
|
||||||
sharp: 0.29.3
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/import-cwd@3.0.0:
|
/import-cwd@3.0.0:
|
||||||
resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==}
|
resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -12639,7 +12400,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
|
resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
dependencies:
|
dependencies:
|
||||||
semver: 7.5.4
|
semver: 7.6.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/make-error@1.3.6:
|
/make-error@1.3.6:
|
||||||
@@ -13840,15 +13601,6 @@ packages:
|
|||||||
tslib: 2.6.2
|
tslib: 2.6.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/node-abi@3.40.0:
|
|
||||||
resolution: {integrity: sha512-zNy02qivjjRosswoYmPi8hIKJRr8MpQyeKT6qlcq/OnOgA3Rhoae+IYOqsM9V5+JnHWmxKnWOT2GxvtqdtOCXA==}
|
|
||||||
engines: {node: '>=10'}
|
|
||||||
requiresBuild: true
|
|
||||||
dependencies:
|
|
||||||
semver: 7.6.0
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/node-abi@3.56.0:
|
/node-abi@3.56.0:
|
||||||
resolution: {integrity: sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==}
|
resolution: {integrity: sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -13856,12 +13608,6 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
semver: 7.6.0
|
semver: 7.6.0
|
||||||
|
|
||||||
/node-addon-api@4.3.0:
|
|
||||||
resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==}
|
|
||||||
requiresBuild: true
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/node-addon-api@6.1.0:
|
/node-addon-api@6.1.0:
|
||||||
resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==}
|
resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==}
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
@@ -14016,7 +13762,7 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
hosted-git-info: 4.1.0
|
hosted-git-info: 4.1.0
|
||||||
is-core-module: 2.13.1
|
is-core-module: 2.13.1
|
||||||
semver: 7.5.4
|
semver: 7.6.0
|
||||||
validate-npm-package-license: 3.0.4
|
validate-npm-package-license: 3.0.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
@@ -14026,7 +13772,7 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
hosted-git-info: 7.0.1
|
hosted-git-info: 7.0.1
|
||||||
is-core-module: 2.13.1
|
is-core-module: 2.13.1
|
||||||
semver: 7.5.4
|
semver: 7.6.0
|
||||||
validate-npm-package-license: 3.0.4
|
validate-npm-package-license: 3.0.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
@@ -14547,7 +14293,7 @@ packages:
|
|||||||
got: 12.6.1
|
got: 12.6.1
|
||||||
registry-auth-token: 5.0.2
|
registry-auth-token: 5.0.2
|
||||||
registry-url: 6.0.1
|
registry-url: 6.0.1
|
||||||
semver: 7.5.4
|
semver: 7.6.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/pagefind@1.0.4:
|
/pagefind@1.0.4:
|
||||||
@@ -15734,27 +15480,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-gympg+T2Z1fG1unB8NH29yHJwnEaCH37Z32diPDku316OTnRPeMbiRV9kTrfZpocXjdfnWuFUl/Mj4BHaf6gnw==}
|
resolution: {integrity: sha512-gympg+T2Z1fG1unB8NH29yHJwnEaCH37Z32diPDku316OTnRPeMbiRV9kTrfZpocXjdfnWuFUl/Mj4BHaf6gnw==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/prebuild-install@7.1.1:
|
|
||||||
resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==}
|
|
||||||
engines: {node: '>=10'}
|
|
||||||
hasBin: true
|
|
||||||
requiresBuild: true
|
|
||||||
dependencies:
|
|
||||||
detect-libc: 2.0.2
|
|
||||||
expand-template: 2.0.3
|
|
||||||
github-from-package: 0.0.0
|
|
||||||
minimist: 1.2.8
|
|
||||||
mkdirp-classic: 0.5.3
|
|
||||||
napi-build-utils: 1.0.2
|
|
||||||
node-abi: 3.40.0
|
|
||||||
pump: 3.0.0
|
|
||||||
rc: 1.2.8
|
|
||||||
simple-get: 4.0.1
|
|
||||||
tar-fs: 2.1.1
|
|
||||||
tunnel-agent: 0.6.0
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/prebuild-install@7.1.2:
|
/prebuild-install@7.1.2:
|
||||||
resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==}
|
resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -16920,7 +16645,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
|
resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
dependencies:
|
dependencies:
|
||||||
semver: 7.5.4
|
semver: 7.6.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/semver@5.7.2:
|
/semver@5.7.2:
|
||||||
@@ -17038,22 +16763,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
|
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/sharp@0.29.3:
|
|
||||||
resolution: {integrity: sha512-fKWUuOw77E4nhpyzCCJR1ayrttHoFHBT2U/kR/qEMRhvPEcluG4BKj324+SCO1e84+knXHwhJ1HHJGnUt4ElGA==}
|
|
||||||
engines: {node: '>=12.13.0'}
|
|
||||||
requiresBuild: true
|
|
||||||
dependencies:
|
|
||||||
color: 4.2.3
|
|
||||||
detect-libc: 1.0.3
|
|
||||||
node-addon-api: 4.3.0
|
|
||||||
prebuild-install: 7.1.1
|
|
||||||
semver: 7.6.0
|
|
||||||
simple-get: 4.0.1
|
|
||||||
tar-fs: 2.1.1
|
|
||||||
tunnel-agent: 0.6.0
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/sharp@0.32.6:
|
/sharp@0.32.6:
|
||||||
resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==}
|
resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==}
|
||||||
engines: {node: '>=14.15.0'}
|
engines: {node: '>=14.15.0'}
|
||||||
@@ -17068,36 +16777,6 @@ packages:
|
|||||||
tar-fs: 3.0.5
|
tar-fs: 3.0.5
|
||||||
tunnel-agent: 0.6.0
|
tunnel-agent: 0.6.0
|
||||||
|
|
||||||
/sharp@0.33.2:
|
|
||||||
resolution: {integrity: sha512-WlYOPyyPDiiM07j/UO+E720ju6gtNtHjEGg5vovUk1Lgxyjm2LFO+37Nt/UI3MMh2l6hxTWQWi7qk3cXJTutcQ==}
|
|
||||||
engines: {libvips: '>=8.15.1', node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
|
||||||
requiresBuild: true
|
|
||||||
dependencies:
|
|
||||||
color: 4.2.3
|
|
||||||
detect-libc: 2.0.2
|
|
||||||
semver: 7.6.0
|
|
||||||
optionalDependencies:
|
|
||||||
'@img/sharp-darwin-arm64': 0.33.2
|
|
||||||
'@img/sharp-darwin-x64': 0.33.2
|
|
||||||
'@img/sharp-libvips-darwin-arm64': 1.0.1
|
|
||||||
'@img/sharp-libvips-darwin-x64': 1.0.1
|
|
||||||
'@img/sharp-libvips-linux-arm': 1.0.1
|
|
||||||
'@img/sharp-libvips-linux-arm64': 1.0.1
|
|
||||||
'@img/sharp-libvips-linux-s390x': 1.0.1
|
|
||||||
'@img/sharp-libvips-linux-x64': 1.0.1
|
|
||||||
'@img/sharp-libvips-linuxmusl-arm64': 1.0.1
|
|
||||||
'@img/sharp-libvips-linuxmusl-x64': 1.0.1
|
|
||||||
'@img/sharp-linux-arm': 0.33.2
|
|
||||||
'@img/sharp-linux-arm64': 0.33.2
|
|
||||||
'@img/sharp-linux-s390x': 0.33.2
|
|
||||||
'@img/sharp-linux-x64': 0.33.2
|
|
||||||
'@img/sharp-linuxmusl-arm64': 0.33.2
|
|
||||||
'@img/sharp-linuxmusl-x64': 0.33.2
|
|
||||||
'@img/sharp-wasm32': 0.33.2
|
|
||||||
'@img/sharp-win32-ia32': 0.33.2
|
|
||||||
'@img/sharp-win32-x64': 0.33.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/shebang-command@1.2.0:
|
/shebang-command@1.2.0:
|
||||||
resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
|
resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@@ -17675,6 +17354,7 @@ packages:
|
|||||||
/strip-json-comments@2.0.1:
|
/strip-json-comments@2.0.1:
|
||||||
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
|
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
requiresBuild: true
|
||||||
|
|
||||||
/strip-json-comments@3.1.1:
|
/strip-json-comments@3.1.1:
|
||||||
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
||||||
|
|||||||
BIN
public/assets/images/tools/webp/affinity-designer.webp
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
public/assets/images/tools/webp/affinity-photo.webp
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
public/assets/images/tools/webp/affinity-publisher.webp
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
public/assets/images/tools/webp/arc-browser.webp
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
public/assets/images/tools/webp/bibdesk.webp
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
public/assets/images/tools/webp/bitwarden.webp
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
public/assets/images/tools/webp/brave-browser.webp
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
public/assets/images/tools/webp/devonthink.webp
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
public/assets/images/tools/webp/eagle.webp
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
public/assets/images/tools/webp/espanso.webp
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
public/assets/images/tools/webp/ia-presenter.webp
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
public/assets/images/tools/webp/ia-writer.webp
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
public/assets/images/tools/webp/kaleidoscope.webp
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
public/assets/images/tools/webp/karabiner-elements.webp
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
public/assets/images/tools/webp/kitty.webp
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
public/assets/images/tools/webp/mindnode.webp
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
public/assets/images/tools/webp/neovim.webp
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
public/assets/images/tools/webp/obsidian.webp
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
public/assets/images/tools/webp/overcast.webp
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
public/assets/images/tools/webp/procreate.webp
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
public/assets/images/tools/webp/protonmail.webp
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
public/assets/images/tools/webp/protonpass.webp
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
public/assets/images/tools/webp/protonvpn.webp
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
public/assets/images/tools/webp/raindrop.io.webp
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
public/assets/images/tools/webp/raycast.webp
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
public/assets/images/tools/webp/readwise-reader.webp
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
public/assets/images/tools/webp/readwise.webp
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
public/assets/images/tools/webp/reeder.webp
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
public/assets/images/tools/webp/snipd.webp
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
public/assets/images/tools/webp/things.webp
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
public/assets/images/tools/webp/tmux.webp
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
public/assets/images/tools/webp/typeface.webp
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
public/assets/images/tools/webp/visual-studio-code.webp
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
public/assets/images/tools/webp/wezterm.webp
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
public/assets/images/tools/webp/yoink.webp
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
@@ -3,7 +3,7 @@ import cx from 'classnames';
|
|||||||
|
|
||||||
import { animation, animationDelay } from '../data/site';
|
import { animation, animationDelay } from '../data/site';
|
||||||
|
|
||||||
import Picture from './Picture.astro';
|
import Image from './Image.astro';
|
||||||
import { Headline } from '.';
|
import { Headline } from '.';
|
||||||
|
|
||||||
const { entry } = Astro.props;
|
const { entry } = Astro.props;
|
||||||
@@ -52,14 +52,7 @@ const imageLength = entry.data.images.length;
|
|||||||
})}
|
})}
|
||||||
{...animation}
|
{...animation}
|
||||||
>
|
>
|
||||||
<Picture
|
<Image alt={entry.data.title} src={src} />
|
||||||
alt={entry.data.title}
|
|
||||||
aspect={entry.data.aspect}
|
|
||||||
breakpoints={[500, 1000, 1500]}
|
|
||||||
format={['avif']}
|
|
||||||
loading={index === 0 ? 'eager' : 'lazy'}
|
|
||||||
src={src}
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,6 @@
|
|||||||
---
|
---
|
||||||
import cx from 'classnames';
|
import cx from 'classnames';
|
||||||
|
|
||||||
import { Img } from 'astro-imagetools/components';
|
|
||||||
import type { ImgConfigOptions } from 'astro-imagetools';
|
|
||||||
|
|
||||||
interface Props extends ImgConfigOptions {
|
|
||||||
class?: string;
|
|
||||||
noMargin?: boolean;
|
|
||||||
src: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { class: className, noMargin, src, ...props } = Astro.props;
|
const { class: className, noMargin, src, ...props } = Astro.props;
|
||||||
|
|
||||||
const classes = cx(
|
const classes = cx(
|
||||||
@@ -22,17 +13,5 @@ const imageClasses =
|
|||||||
---
|
---
|
||||||
|
|
||||||
<div class={classes}>
|
<div class={classes}>
|
||||||
{
|
<img class={imageClasses} decoding="async" loading="lazy" src={src} {...props} />
|
||||||
src.includes('.svg') ? (
|
|
||||||
<img class={imageClasses} src={src} {...(props as any)} />
|
|
||||||
) : (
|
|
||||||
<Img
|
|
||||||
attributes={{ class: imageClasses }}
|
|
||||||
breakpoints={[500, 1000, 1500]}
|
|
||||||
format="webp"
|
|
||||||
src={src}
|
|
||||||
{...props}
|
|
||||||
/>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
import { Picture } from 'astro-imagetools/components';
|
import { Picture } from 'astro:assets';
|
||||||
|
|
||||||
import type { CollectionEntry } from 'astro:content';
|
import type { CollectionEntry } from 'astro:content';
|
||||||
interface Props {
|
interface Props {
|
||||||
@@ -28,19 +28,13 @@ const { entries } = Astro.props;
|
|||||||
>
|
>
|
||||||
<div class="absolute z-10 h-full w-full">
|
<div class="absolute z-10 h-full w-full">
|
||||||
{data.cover ? (
|
{data.cover ? (
|
||||||
<>
|
<Picture
|
||||||
{data.cover.endsWith('.svg') ? (
|
alt={data.title}
|
||||||
<img src={data.cover} alt={data.title} />
|
formats={['avif', 'webp']}
|
||||||
) : (
|
height="937"
|
||||||
<Picture
|
src={data.cover}
|
||||||
alt={data.title}
|
width="1500"
|
||||||
aspect={0.6}
|
/>
|
||||||
breakpoints={[300, 500, 1000]}
|
|
||||||
format={['avif']}
|
|
||||||
src={data.cover}
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
</>
|
|
||||||
) : (
|
) : (
|
||||||
<div
|
<div
|
||||||
class="h-full w-full bg-gray-800 transition duration-300 ease-in-out group-hover:brightness-[90%] group-focus:brightness-[90%] dark:brightness-[50%] dark:group-hover:brightness-[100%] dark:group-focus:brightness-[100%]"
|
class="h-full w-full bg-gray-800 transition duration-300 ease-in-out group-hover:brightness-[90%] group-focus:brightness-[90%] dark:brightness-[50%] dark:group-hover:brightness-[100%] dark:group-focus:brightness-[100%]"
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
---
|
---
|
||||||
import cx from 'classnames';
|
import cx from 'classnames';
|
||||||
|
|
||||||
import { Img } from 'astro-imagetools/components';
|
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
class?: string;
|
class?: string;
|
||||||
noMargin?: boolean;
|
noMargin?: boolean;
|
||||||
@@ -19,11 +17,5 @@ const classes = cx(
|
|||||||
---
|
---
|
||||||
|
|
||||||
<div class={classes}>
|
<div class={classes}>
|
||||||
{
|
<img src={src} decoding="async" loading="lazy" {...props} />
|
||||||
src.includes('.svg') ? (
|
|
||||||
<img src={src} {...props} />
|
|
||||||
) : (
|
|
||||||
<Img breakpoints={[500, 1000, 1500]} format="webp" src={src} {...props} />
|
|
||||||
)
|
|
||||||
}
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,38 +0,0 @@
|
|||||||
---
|
|
||||||
import cx from 'classnames';
|
|
||||||
|
|
||||||
import { Picture as AstroImageToolsPicture } from 'astro-imagetools/components';
|
|
||||||
import type { PictureConfigOptions } from 'astro-imagetools';
|
|
||||||
|
|
||||||
interface Props extends PictureConfigOptions {
|
|
||||||
alt: string;
|
|
||||||
aspect: number;
|
|
||||||
breakpoints?: number[];
|
|
||||||
class?: string;
|
|
||||||
noMargin?: boolean;
|
|
||||||
src: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { class: className, noMargin, src, ...props } = Astro.props;
|
|
||||||
|
|
||||||
const classes = cx(
|
|
||||||
'image-shadow block h-auto w-full rounded-1 border-1 border-solid border-black/[0.1] bg-black/[0.1] shadow shadow-black/10 mbe-10 mbs-0 dark:border-white/[0.1] dark:opacity-[0.87] dark:shadow-white/5 border-x-0',
|
|
||||||
{ 'mbe-0': noMargin },
|
|
||||||
className
|
|
||||||
);
|
|
||||||
---
|
|
||||||
|
|
||||||
<div class={classes}>
|
|
||||||
{
|
|
||||||
src.includes('.svg') ? (
|
|
||||||
<img src={src} {...(props as any)} />
|
|
||||||
) : (
|
|
||||||
<AstroImageToolsPicture
|
|
||||||
breakpoints={[500, 1000, 1500]}
|
|
||||||
format={['avif']}
|
|
||||||
src={src}
|
|
||||||
{...props}
|
|
||||||
/>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
import type { CollectionEntry } from 'astro:content';
|
import type { CollectionEntry } from 'astro:content';
|
||||||
import Picture from './Picture.astro';
|
import Image from './Image.astro';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
project: CollectionEntry<'projects'>;
|
project: CollectionEntry<'projects'>;
|
||||||
@@ -16,12 +16,9 @@ const { project } = Astro.props;
|
|||||||
<img class="image-border" alt={project.data.title} src={project.data.image.src} />
|
<img class="image-border" alt={project.data.title} src={project.data.image.src} />
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<Picture
|
<Image
|
||||||
alt={project.data.title}
|
alt={project.data.title}
|
||||||
aspect={project.data.image.aspectRatio}
|
|
||||||
breakpoints={[500, 1000, 1500]}
|
|
||||||
class="[&_img]:!w-full [&_img]:!max-w-none [&_picture]:!w-full [&_picture]:!max-w-none"
|
class="[&_img]:!w-full [&_img]:!max-w-none [&_picture]:!w-full [&_picture]:!max-w-none"
|
||||||
format={['avif']}
|
|
||||||
src={project.data.image.src}
|
src={project.data.image.src}
|
||||||
/>
|
/>
|
||||||
))
|
))
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
import { Img } from 'astro-imagetools/components';
|
import { Image } from 'astro:assets';
|
||||||
import { Link } from '.';
|
import { Link } from '.';
|
||||||
|
|
||||||
import type { ToolsProps } from '../data/tools';
|
import type { ToolsProps } from '../data/tools';
|
||||||
@@ -18,16 +18,7 @@ const { tools } = Astro.props;
|
|||||||
tools.map(({ name, url, image }) => (
|
tools.map(({ name, url, image }) => (
|
||||||
<li class="print:[&_img]:!hidden">
|
<li class="print:[&_img]:!hidden">
|
||||||
<Link href={url} title={name}>
|
<Link href={url} title={name}>
|
||||||
<Img
|
<Image alt={name} widths={[128]} height={300} src={image} width={300} />
|
||||||
alt={name}
|
|
||||||
aspect={1}
|
|
||||||
breakpoints={[128]}
|
|
||||||
format="webp"
|
|
||||||
height={300}
|
|
||||||
placeholder="tracedSVG"
|
|
||||||
src={image}
|
|
||||||
width={300}
|
|
||||||
/>
|
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
))
|
))
|
||||||
|
|||||||
@@ -8,27 +8,27 @@ export const development = [
|
|||||||
{
|
{
|
||||||
name: 'Neovim',
|
name: 'Neovim',
|
||||||
url: 'https://neovim.io/',
|
url: 'https://neovim.io/',
|
||||||
image: '/assets/images/tools/neovim.png',
|
image: '/assets/images/tools/webp/neovim.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Tmux',
|
name: 'Tmux',
|
||||||
url: 'https://tmux.github.io/',
|
url: 'https://tmux.github.io/',
|
||||||
image: '/assets/images/tools/tmux.png',
|
image: '/assets/images/tools/webp/tmux.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Wezterm',
|
name: 'Wezterm',
|
||||||
url: 'https://wezfurlong.org/wezterm/',
|
url: 'https://wezfurlong.org/wezterm/',
|
||||||
image: '/assets/images/tools/wezterm.png',
|
image: '/assets/images/tools/webp/wezterm.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Visual Studio Code',
|
name: 'Visual Studio Code',
|
||||||
url: 'https://code.visualstudio.com/',
|
url: 'https://code.visualstudio.com/',
|
||||||
image: '/assets/images/tools/visual-studio-code.png',
|
image: '/assets/images/tools/webp/visual-studio-code.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Kaleidoscope',
|
name: 'Kaleidoscope',
|
||||||
url: 'https://kaleidoscope.app/',
|
url: 'https://kaleidoscope.app/',
|
||||||
image: '/assets/images/tools/kaleidoscope.png',
|
image: '/assets/images/tools/webp/kaleidoscope.webp',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -36,32 +36,32 @@ export const design = [
|
|||||||
{
|
{
|
||||||
name: 'Affinity Designer',
|
name: 'Affinity Designer',
|
||||||
url: 'https://affinity.serif.com/designer/',
|
url: 'https://affinity.serif.com/designer/',
|
||||||
image: '/assets/images/tools/affinity-designer.png',
|
image: '/assets/images/tools/webp/affinity-designer.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Affinity Photo',
|
name: 'Affinity Photo',
|
||||||
url: 'https://affinity.serif.com/photo/',
|
url: 'https://affinity.serif.com/photo/',
|
||||||
image: '/assets/images/tools/affinity-photo.png',
|
image: '/assets/images/tools/webp/affinity-photo.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Affinity Publisher',
|
name: 'Affinity Publisher',
|
||||||
url: 'https://affinity.serif.com/publisher/',
|
url: 'https://affinity.serif.com/publisher/',
|
||||||
image: '/assets/images/tools/affinity-publisher.png',
|
image: '/assets/images/tools/webp/affinity-publisher.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Eagle',
|
name: 'Eagle',
|
||||||
url: 'https://eagle.cool/',
|
url: 'https://eagle.cool/',
|
||||||
image: '/assets/images/tools/eagle.png',
|
image: '/assets/images/tools/webp/eagle.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Procreate',
|
name: 'Procreate',
|
||||||
url: 'https://procreate.com/',
|
url: 'https://procreate.com/',
|
||||||
image: '/assets/images/tools/procreate.png',
|
image: '/assets/images/tools/webp/procreate.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Typeface',
|
name: 'Typeface',
|
||||||
url: 'https://typefaceapp.com/',
|
url: 'https://typefaceapp.com/',
|
||||||
image: '/assets/images/tools/typeface.png',
|
image: '/assets/images/tools/webp/typeface.webp',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -69,57 +69,57 @@ export const research = [
|
|||||||
{
|
{
|
||||||
name: 'iA Writer',
|
name: 'iA Writer',
|
||||||
url: 'https://ia.net/writer',
|
url: 'https://ia.net/writer',
|
||||||
image: '/assets/images/tools/ia-writer.png',
|
image: '/assets/images/tools/webp/ia-writer.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'iA Presenter',
|
name: 'iA Presenter',
|
||||||
url: 'https://ia.net/presenter',
|
url: 'https://ia.net/presenter',
|
||||||
image: '/assets/images/tools/ia-presenter.png',
|
image: '/assets/images/tools/webp/ia-presenter.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Obsidian',
|
name: 'Obsidian',
|
||||||
url: 'https://obsidian.md/',
|
url: 'https://obsidian.md/',
|
||||||
image: '/assets/images/tools/obsidian.png',
|
image: '/assets/images/tools/webp/obsidian.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'DEVONthink',
|
name: 'DEVONthink',
|
||||||
url: 'https://www.devontechnologies.com/apps/devonthink',
|
url: 'https://www.devontechnologies.com/apps/devonthink',
|
||||||
image: '/assets/images/tools/devonthink.png',
|
image: '/assets/images/tools/webp/devonthink.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Raindrop.io',
|
name: 'Raindrop.io',
|
||||||
url: 'https://raindrop.io/',
|
url: 'https://raindrop.io/',
|
||||||
image: '/assets/images/tools/raindrop.io.png',
|
image: '/assets/images/tools/webp/raindrop.io.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Reeder',
|
name: 'Reeder',
|
||||||
url: 'https://reeder.app/',
|
url: 'https://reeder.app/',
|
||||||
image: '/assets/images/tools/reeder.png',
|
image: '/assets/images/tools/webp/reeder.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Readwise Reader',
|
name: 'Readwise Reader',
|
||||||
url: 'https://readwise.io/read',
|
url: 'https://readwise.io/read',
|
||||||
image: '/assets/images/tools/readwise-reader.png',
|
image: '/assets/images/tools/webp/readwise-reader.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Readwise',
|
name: 'Readwise',
|
||||||
url: 'https://readwise.io/i/stefan805',
|
url: 'https://readwise.io/i/stefan805',
|
||||||
image: '/assets/images/tools/readwise.png',
|
image: '/assets/images/tools/webp/readwise.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Snipd',
|
name: 'Snipd',
|
||||||
url: 'https://www.snipd.com/',
|
url: 'https://www.snipd.com/',
|
||||||
image: '/assets/images/tools/snipd.png',
|
image: '/assets/images/tools/webp/snipd.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'MindNode',
|
name: 'MindNode',
|
||||||
url: 'https://www.mindnode.com/',
|
url: 'https://www.mindnode.com/',
|
||||||
image: '/assets/images/tools/mindnode.png',
|
image: '/assets/images/tools/webp/mindnode.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'BibDesk',
|
name: 'BibDesk',
|
||||||
url: 'https://bibdesk.sourceforge.io/',
|
url: 'https://bibdesk.sourceforge.io/',
|
||||||
image: '/assets/images/tools/bibdesk.png',
|
image: '/assets/images/tools/webp/bibdesk.webp',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -127,46 +127,46 @@ export const other = [
|
|||||||
{
|
{
|
||||||
name: 'Things',
|
name: 'Things',
|
||||||
url: 'https://culturedcode.com/things/',
|
url: 'https://culturedcode.com/things/',
|
||||||
image: '/assets/images/tools/things.png',
|
image: '/assets/images/tools/webp/things.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Raycast',
|
name: 'Raycast',
|
||||||
url: 'https://www.raycast.com/hey/059d78ca',
|
url: 'https://www.raycast.com/hey/059d78ca',
|
||||||
image: '/assets/images/tools/raycast.png',
|
image: '/assets/images/tools/webp/raycast.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Arc',
|
name: 'Arc',
|
||||||
url: 'https://arc.net/gift/3a2fd063',
|
url: 'https://arc.net/gift/3a2fd063',
|
||||||
image: '/assets/images/tools/arc-browser.png',
|
image: '/assets/images/tools/webp/arc-browser.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Brave Browser',
|
name: 'Brave Browser',
|
||||||
url: 'https://brave.com/',
|
url: 'https://brave.com/',
|
||||||
image: '/assets/images/tools/brave-browser.png',
|
image: '/assets/images/tools/webp/brave-browser.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Proton Mail',
|
name: 'Proton Mail',
|
||||||
url: 'https://proton.me/mail',
|
url: 'https://proton.me/mail',
|
||||||
image: '/assets/images/tools/protonmail.png',
|
image: '/assets/images/tools/webp/protonmail.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Proton VPN',
|
name: 'Proton VPN',
|
||||||
url: 'https://protonvpn.com/',
|
url: 'https://protonvpn.com/',
|
||||||
image: '/assets/images/tools/protonvpn.png',
|
image: '/assets/images/tools/webp/protonvpn.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Proton Pass',
|
name: 'Proton Pass',
|
||||||
url: 'https://proton.me/pass',
|
url: 'https://proton.me/pass',
|
||||||
image: '/assets/images/tools/protonpass.png',
|
image: '/assets/images/tools/webp/protonpass.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Yoink',
|
name: 'Yoink',
|
||||||
url: 'https://eternalstorms.at/yoink/mac/',
|
url: 'https://eternalstorms.at/yoink/mac/',
|
||||||
image: '/assets/images/tools/yoink.png',
|
image: '/assets/images/tools/webp/yoink.webp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Karabiner-Elements',
|
name: 'Karabiner-Elements',
|
||||||
url: 'https://karabiner-elements.pqrs.org/',
|
url: 'https://karabiner-elements.pqrs.org/',
|
||||||
image: '/assets/images/tools/karabiner-elements.png',
|
image: '/assets/images/tools/webp/karabiner-elements.webp',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { site } from '../data/site';
|
|||||||
|
|
||||||
import GridLayout from './GridLayout.astro';
|
import GridLayout from './GridLayout.astro';
|
||||||
import PageTitle from '../components/PageTitle.astro';
|
import PageTitle from '../components/PageTitle.astro';
|
||||||
import Picture from '../components/Picture.astro';
|
import Image from '../components/Image.astro';
|
||||||
|
|
||||||
const { frontmatter } = Astro.props;
|
const { frontmatter } = Astro.props;
|
||||||
const schema = JSON.stringify({
|
const schema = JSON.stringify({
|
||||||
@@ -35,12 +35,7 @@ const schema = JSON.stringify({
|
|||||||
slot="before-content"
|
slot="before-content"
|
||||||
class="col-start-1 col-end-12 md:col-start-3 md:col-end-10 xl:col-start-15 xl:col-end-18 xl:row-start-2 xl:-scale-x-100 3xl:col-start-14 3xl:col-end-17"
|
class="col-start-1 col-end-12 md:col-start-3 md:col-end-10 xl:col-start-15 xl:col-end-18 xl:row-start-2 xl:-scale-x-100 3xl:col-start-14 3xl:col-end-17"
|
||||||
>
|
>
|
||||||
<Picture
|
<Image alt="Stefan Imhoff" src="/assets/images/ai-portrait-stefan-imhoff.jpg" />
|
||||||
alt="Stefan Imhoff"
|
|
||||||
aspect={1}
|
|
||||||
breakpoints={[300, 700, 1000]}
|
|
||||||
src="/assets/images/ai-portrait-stefan-imhoff.jpg"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<slot />
|
<slot />
|
||||||
<script type="application/ld+json" set:html={schema} />
|
<script type="application/ld+json" set:html={schema} />
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
import PageTitle from '../components/PageTitle.astro';
|
import PageTitle from '../components/PageTitle.astro';
|
||||||
import Picture from '../components/Picture.astro';
|
import Image from '../components/Image.astro';
|
||||||
|
|
||||||
import GridLayout from './GridLayout.astro';
|
import GridLayout from './GridLayout.astro';
|
||||||
|
|
||||||
@@ -24,12 +24,7 @@ const gridVariant = frontmatter.grid || grid;
|
|||||||
slot="before-content"
|
slot="before-content"
|
||||||
class="col-span-full xl:col-start-1 xl:col-end-14 3xl:col-end-13 [&_div]:!border-x-0 [&_div]:!mbe-0 [&_div]:md:!border-s-0"
|
class="col-span-full xl:col-start-1 xl:col-end-14 3xl:col-end-13 [&_div]:!border-x-0 [&_div]:!mbe-0 [&_div]:md:!border-s-0"
|
||||||
>
|
>
|
||||||
<Picture
|
<Image alt={frontmatter.title} src={frontmatter.cover} />
|
||||||
alt={frontmatter.title}
|
|
||||||
aspect={1.5}
|
|
||||||
breakpoints={[500, 1000, 1500]}
|
|
||||||
src={frontmatter.cover}
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { YouTube } from '@astro-community/astro-embed-youtube';
|
|||||||
|
|
||||||
import Image from './components/Image.astro';
|
import Image from './components/Image.astro';
|
||||||
import MarkdownImage from './components/MarkdownImage.astro';
|
import MarkdownImage from './components/MarkdownImage.astro';
|
||||||
import Picture from './components/Picture.astro';
|
|
||||||
import ThemeBox from './components/ThemeBox.astro';
|
import ThemeBox from './components/ThemeBox.astro';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@@ -71,7 +70,6 @@ export const mapping = {
|
|||||||
OdyseeVideo,
|
OdyseeVideo,
|
||||||
ol: OrderedList,
|
ol: OrderedList,
|
||||||
p: Text,
|
p: Text,
|
||||||
Picture,
|
|
||||||
PrimeVideoFlag,
|
PrimeVideoFlag,
|
||||||
ProjectIntro,
|
ProjectIntro,
|
||||||
Pullquote,
|
Pullquote,
|
||||||
@@ -102,7 +100,6 @@ export const rssMapping = {
|
|||||||
MoreLink,
|
MoreLink,
|
||||||
NetflixFlag,
|
NetflixFlag,
|
||||||
OdyseeVideo,
|
OdyseeVideo,
|
||||||
Picture,
|
|
||||||
PrimeVideoFlag,
|
PrimeVideoFlag,
|
||||||
ProjectIntro,
|
ProjectIntro,
|
||||||
Pullquote,
|
Pullquote,
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { dateToFormat, dateToISO, wordCount } from '../utils';
|
|||||||
import GridLayout from '../layouts/GridLayout.astro';
|
import GridLayout from '../layouts/GridLayout.astro';
|
||||||
import PageTitle from '../components/PageTitle.astro';
|
import PageTitle from '../components/PageTitle.astro';
|
||||||
import Pagination from '../components/Pagination.astro';
|
import Pagination from '../components/Pagination.astro';
|
||||||
import Picture from '../components/Picture.astro';
|
import Image from '../components/Image.astro';
|
||||||
import { Banner, ListItem, OrderedList, Tag, TextLink } from '../components';
|
import { Banner, ListItem, OrderedList, Tag, TextLink } from '../components';
|
||||||
|
|
||||||
import { mapping } from '../mdx-components';
|
import { mapping } from '../mdx-components';
|
||||||
@@ -29,7 +29,7 @@ export async function getStaticPaths() {
|
|||||||
index + 1 === numberOfPages
|
index + 1 === numberOfPages
|
||||||
? { slug: null, data: null }
|
? { slug: null, data: null }
|
||||||
: formattedJournalEntries[index + 1],
|
: formattedJournalEntries[index + 1],
|
||||||
prev: index === 0 ? {} : formattedJournalEntries[index - 1],
|
prev: index === 0 ? { slug: null, data: null } : formattedJournalEntries[index - 1],
|
||||||
},
|
},
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
@@ -90,12 +90,9 @@ const schema = JSON.stringify({
|
|||||||
</PageTitle>
|
</PageTitle>
|
||||||
{
|
{
|
||||||
entry.data.cover && (
|
entry.data.cover && (
|
||||||
<Picture
|
<Image
|
||||||
alt={entry.data.title}
|
alt={entry.data.title}
|
||||||
aspect={1.6}
|
class="col-span-full aspect-video h-auto !mbe-0 xl:col-start-1 xl:col-end-14 3xl:col-end-13 print:hidden [&_img]:!w-full [&_img]:!max-w-none [&_picture]:!w-full [&_picture]:!max-w-none"
|
||||||
breakpoints={[500, 1000, 1500]}
|
|
||||||
class="col-span-full aspect-video h-auto !mbe-0 print:hidden xl:col-start-1 xl:col-end-14 3xl:col-end-13 [&_img]:!w-full [&_img]:!max-w-none [&_picture]:!w-full [&_picture]:!max-w-none"
|
|
||||||
format={['avif']}
|
|
||||||
loading="eager"
|
loading="eager"
|
||||||
src={entry.data.cover}
|
src={entry.data.cover}
|
||||||
/>
|
/>
|
||||||
@@ -165,10 +162,10 @@ const schema = JSON.stringify({
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Pagination
|
<Pagination
|
||||||
nextText={'Next'}
|
nextText="Next"
|
||||||
nextUrl={next.slug && `/${next.slug}/`}
|
nextUrl={next.slug ? `/${next.slug}/` : undefined}
|
||||||
previousText={'Next'}
|
previousText="Previous"
|
||||||
previousUrl={prev.slug && `/${prev.slug}/`}
|
previousUrl={prev.slug ? `/${prev.slug}/` : undefined}
|
||||||
/>
|
/>
|
||||||
</GridLayout>
|
</GridLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import { animation } from '../data/site';
|
|||||||
|
|
||||||
import GridLayout from '../layouts/GridLayout.astro';
|
import GridLayout from '../layouts/GridLayout.astro';
|
||||||
import PageTitle from '../components/PageTitle.astro';
|
import PageTitle from '../components/PageTitle.astro';
|
||||||
import Picture from '../components/Picture.astro';
|
import Image from '../components/Image.astro';
|
||||||
import { Link } from '../components';
|
import { Link } from '../components';
|
||||||
import { Content as Intro } from '../text/ai-art/intro.mdx';
|
import { Content as Intro } from '../text/ai-art/intro.mdx';
|
||||||
|
|
||||||
@@ -66,12 +66,9 @@ const description = 'This is a collection of AI art pieces I’ve created with S
|
|||||||
{...animation}
|
{...animation}
|
||||||
>
|
>
|
||||||
<Link title={data.title} href={`/ai-art/${slug}/`}>
|
<Link title={data.title} href={`/ai-art/${slug}/`}>
|
||||||
<Picture
|
<Image
|
||||||
alt={data.title}
|
alt={data.title}
|
||||||
aspect={data.images[0].aspectRatio}
|
|
||||||
breakpoints={[500, 1000, 1500]}
|
|
||||||
class="h-full mbe-10 md:w-full md:object-cover md:!mbe-0 [&_img]:!block [&_img]:!h-full [&_img]:border-solid [&_picture]:!block [&_picture]:!h-full"
|
class="h-full mbe-10 md:w-full md:object-cover md:!mbe-0 [&_img]:!block [&_img]:!h-full [&_img]:border-solid [&_picture]:!block [&_picture]:!h-full"
|
||||||
format={['avif']}
|
|
||||||
loading="eager"
|
loading="eager"
|
||||||
src={data.images[0].src}
|
src={data.images[0].src}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -37,7 +37,6 @@ The source code of this website is available on [GitHub](https://github.com/koga
|
|||||||
- My content is written in [MDX](https://mdxjs.com/), which allows using components in the [Markdown](https://daringfireball.net/projects/markdown/).
|
- My content is written in [MDX](https://mdxjs.com/), which allows using components in the [Markdown](https://daringfireball.net/projects/markdown/).
|
||||||
- I use [Tailwind CSS](https://tailwindcss.com/) for my styling and [tailwindcss-logical](https://stevecochrane.github.io/tailwindcss-logical/) to get logical properties.
|
- I use [Tailwind CSS](https://tailwindcss.com/) for my styling and [tailwindcss-logical](https://stevecochrane.github.io/tailwindcss-logical/) to get logical properties.
|
||||||
- The scroll animations are created with [Sal](https://mciastek.github.io/sal/) and for page transitions I use [Swup](https://swup.js.org/).
|
- The scroll animations are created with [Sal](https://mciastek.github.io/sal/) and for page transitions I use [Swup](https://swup.js.org/).
|
||||||
- All images are optimized with [Astro ImageTools](https://github.com/RafidMuhymin/astro-imagetools/).
|
|
||||||
- My site search is build with [Pagefind](https://pagefind.app/) using the [Astro-Pagefind](https://github.com/shishkin/astro-pagefind) integration.
|
- My site search is build with [Pagefind](https://pagefind.app/) using the [Astro-Pagefind](https://github.com/shishkin/astro-pagefind) integration.
|
||||||
- I use YouTube Lite, provided by [Astro Embed](https://github.com/astro-community/astro-embed).
|
- I use YouTube Lite, provided by [Astro Embed](https://github.com/astro-community/astro-embed).
|
||||||
- [Astro SEO](https://github.com/jonasmerlin/astro-seo) makes it easy to add the SEO relevant information.
|
- [Astro SEO](https://github.com/jonasmerlin/astro-seo) makes it easy to add the SEO relevant information.
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { site, animation, animationDelay } from '../data/site';
|
|||||||
import GridLayout from '../layouts/GridLayout.astro';
|
import GridLayout from '../layouts/GridLayout.astro';
|
||||||
|
|
||||||
import PageTitle from '../components/PageTitle.astro';
|
import PageTitle from '../components/PageTitle.astro';
|
||||||
import Picture from '../components/Picture.astro';
|
import Image from '../components/Image.astro';
|
||||||
import JournalList from '../components/JournalList.astro';
|
import JournalList from '../components/JournalList.astro';
|
||||||
|
|
||||||
/* FIXME: Remove hack as soon as this issue is resolved:
|
/* FIXME: Remove hack as soon as this issue is resolved:
|
||||||
@@ -46,13 +46,7 @@ rssPosts.sort(sortMarkdownByDate);
|
|||||||
<div
|
<div
|
||||||
class="col-start-1 col-end-19 md:col-start-1 md:col-end-11 xl:col-end-11 [&_div]:!border-x-0 [&_div]:!mbe-0 [&_div]:md:!border-s-0"
|
class="col-start-1 col-end-19 md:col-start-1 md:col-end-11 xl:col-end-11 [&_div]:!border-x-0 [&_div]:!mbe-0 [&_div]:md:!border-s-0"
|
||||||
>
|
>
|
||||||
<Picture
|
<Image alt="Bonsai" loading="eager" src="/assets/images/cover/bonsai.jpg" />
|
||||||
alt="Bonsai"
|
|
||||||
aspect={1.5}
|
|
||||||
breakpoints={[500, 1000, 1500]}
|
|
||||||
loading="eager"
|
|
||||||
src="/assets/images/cover/bonsai.jpg"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<article
|
<article
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { animation } from '../data/site';
|
|||||||
|
|
||||||
import GridLayout from '../layouts/GridLayout.astro';
|
import GridLayout from '../layouts/GridLayout.astro';
|
||||||
import PageTitle from '../components/PageTitle.astro';
|
import PageTitle from '../components/PageTitle.astro';
|
||||||
import Picture from '../components/Picture.astro';
|
import Image from '../components/Image.astro';
|
||||||
import { Link } from '../components';
|
import { Link } from '../components';
|
||||||
import { Content as Intro } from '../text/sketchnotes/intro.mdx';
|
import { Content as Intro } from '../text/sketchnotes/intro.mdx';
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ const description = 'This is a collection of Sketchnotes I’ve drawn.';
|
|||||||
<PageTitle grid="wide" innerGrid>Sketchnotes</PageTitle>
|
<PageTitle grid="wide" innerGrid>Sketchnotes</PageTitle>
|
||||||
|
|
||||||
<article
|
<article
|
||||||
class="col-start-1 col-end-17 grid print:block md:col-start-4 md:col-end-12 xl:col-start-5 xl:col-end-11"
|
class="col-start-1 col-end-17 grid md:col-start-4 md:col-end-12 xl:col-start-5 xl:col-end-11 print:block"
|
||||||
{...animation}
|
{...animation}
|
||||||
>
|
>
|
||||||
<Intro components={mapping} />
|
<Intro components={mapping} />
|
||||||
@@ -37,7 +37,7 @@ const description = 'This is a collection of Sketchnotes I’ve drawn.';
|
|||||||
data-pagefind-ignore
|
data-pagefind-ignore
|
||||||
>
|
>
|
||||||
<ol
|
<ol
|
||||||
class="gap-[max(25px,_2vw)] print:block md:grid md:grid-flow-row-dense md:auto-rows-[50px] md:grid-cols-[repeat(auto-fit,_minmax(50px,_1fr))] md:grid-rows-[50px]"
|
class="gap-[max(25px,_2vw)] md:grid md:grid-flow-row-dense md:auto-rows-[50px] md:grid-cols-[repeat(auto-fit,_minmax(50px,_1fr))] md:grid-rows-[50px] print:block"
|
||||||
>
|
>
|
||||||
{
|
{
|
||||||
allSketchnotes.map(({ slug, data }) => (
|
allSketchnotes.map(({ slug, data }) => (
|
||||||
@@ -59,12 +59,9 @@ const description = 'This is a collection of Sketchnotes I’ve drawn.';
|
|||||||
{...animation}
|
{...animation}
|
||||||
>
|
>
|
||||||
<Link title={data.title} href={`/sketchnotes/${slug}/`}>
|
<Link title={data.title} href={`/sketchnotes/${slug}/`}>
|
||||||
<Picture
|
<Image
|
||||||
alt={data.title}
|
alt={data.title}
|
||||||
aspect={data.images[0].aspectRatio}
|
|
||||||
breakpoints={[500, 1000, 1500]}
|
|
||||||
class="h-full mbe-10 md:w-full md:object-cover md:!mbe-0 [&_img]:!block [&_img]:!h-full [&_img]:border-solid [&_picture]:!block [&_picture]:!h-full"
|
class="h-full mbe-10 md:w-full md:object-cover md:!mbe-0 [&_img]:!block [&_img]:!h-full [&_img]:border-solid [&_picture]:!block [&_picture]:!h-full"
|
||||||
format={['avif']}
|
|
||||||
loading="eager"
|
loading="eager"
|
||||||
src={data.images[0].src}
|
src={data.images[0].src}
|
||||||
/>
|
/>
|
||||||
|
|||||||
1
types/astro-imagetools.d.ts
vendored
@@ -1 +0,0 @@
|
|||||||
declare module 'astro-imagetools/components';
|
|
||||||