diff --git a/src/components/card/Metadata.svelte b/src/components/card/Metadata.svelte
index faa41dc..862094c 100644
--- a/src/components/card/Metadata.svelte
+++ b/src/components/card/Metadata.svelte
@@ -9,6 +9,7 @@
const iso = (d: string | Date) => {
if(!d) return ""
const v = toDate(d);
+ if(!v) return ""
return isNaN(v.getTime()) ? "" : v.toISOString();
};
diff --git a/src/content/photos/picos-de-europa/index.mdx b/src/content/photos/picos-de-europa/index.mdx
index bd5a050..773fb8d 100644
--- a/src/content/photos/picos-de-europa/index.mdx
+++ b/src/content/photos/picos-de-europa/index.mdx
@@ -12,6 +12,7 @@ Unsortierte Bilder aus unserer Wanderung durch die Picos de Europa.
import Image from "@components/Image.astro";
import ImageGallery from "@components/ImageGallery.svelte"
+import ImageSlider from "@components/ImageSlider.svelte"
@@ -24,9 +25,11 @@ import image1 from "images/20250527_125228.jpg"
import image16 from "images/PXL_20250527_101057540.MP.jpg"
import image17 from "images/PXL_20250527_100728883.jpg"
-
-
-
+
+
+
+
+
## 28. May
@@ -35,8 +38,10 @@ Erster Wandertag
import image15 from "images/PXL_20250528_121633744.MP.jpg"
import image19 from "images/20250528_164715.jpg"
-
-
+
+
+
+
## 29. May
@@ -47,8 +52,7 @@ import image12 from "images/PXL_20250530_082919731.jpg"
import image13 from "images/PXL_20250529_201559403.jpg"
-
-
+
## 30-31. May
diff --git a/src/helpers/image.ts b/src/helpers/image.ts
index 3d69610..fad82e3 100644
--- a/src/helpers/image.ts
+++ b/src/helpers/image.ts
@@ -1,6 +1,7 @@
import { rgbaToThumbHash } from "thumbhash";
import ExifReader from "exifreader";
import type { ImageMetadata } from "astro";
+import { readFile } from "node:fs/promises";
import sharp from "sharp";
export async function generateThumbHash(
@@ -72,23 +73,26 @@ const allowedExif = [
];
export async function getExifData(image: ImageMetadata) {
- if (image.format === "svg") return undefined; // SVGs don't have EXIF data")
+ if (image.format === "svg") return undefined; // SVGs don't have EXIF data
const imagePath = (image as ImageMetadata & { fsPath: string }).fsPath ??
image.src;
if (!imagePath) return undefined;
try {
- let buffer: ArrayBuffer;
+ let buffer: ArrayBufferLike;
if (imagePath.startsWith("https://") || imagePath.startsWith("http://")) {
const res = await fetch(imagePath);
buffer = await res.arrayBuffer();
} else {
- buffer = await sharp(imagePath).toBuffer() as unknown as ArrayBuffer;
+ const b = await readFile(imagePath);
+ buffer = b.buffer;
}
const tags = await ExifReader.load(buffer, { async: true });
+ if (!buffer) return undefined;
+
const out: Record = {};
let hasExif = false;