diff --git a/package.json b/package.json index 1578754..a96358e 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "@astrojs/check": "^0.3.1", "@astrojs/tailwind": "^5.0.2", "astro": "^3.6.0", + "date-fns": "^2.30.0", "prettier": "^3.1.0", "prettier-plugin-astro": "^0.12.2", "sass": "^1.69.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aaff81f..3ac479a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ dependencies: astro: specifier: ^3.6.0 version: 3.6.0(sass@1.69.5)(typescript@5.3.2) + date-fns: + specifier: ^2.30.0 + version: 2.30.0 prettier: specifier: ^3.1.0 version: 3.1.0 @@ -362,6 +365,13 @@ packages: '@babel/types': 7.23.4 dev: false + /@babel/runtime@7.23.4: + resolution: {integrity: sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + dev: false + /@babel/template@7.22.15: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} @@ -1464,6 +1474,13 @@ packages: hasBin: true dev: false + /date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} + dependencies: + '@babel/runtime': 7.23.4 + dev: false + /debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -3290,6 +3307,10 @@ packages: picomatch: 2.3.1 dev: false + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + dev: false + /rehype-parse@8.0.5: resolution: {integrity: sha512-Ds3RglaY/+clEX2U2mHflt7NlMA72KspZ0JLUJgBBLpRddBcEw3H8uYZQliQriku22NZpYMfjDdSgHcjxue24A==} dependencies: diff --git a/src/content/config.ts b/src/content/config.ts index 691e49a..0503cbe 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -1,11 +1,16 @@ import { z, defineCollection } from 'astro:content'; +import { parse } from 'date-fns'; const blogCollection = defineCollection({ type: 'content', // v2.5.0 and later schema: z.object({ title: z.string(), description: z.string(), - pubDate: z.string(), + pubDate: z.string().transform((date) => + z.date().parse( + parse(date, 'yyyy-MM-dd HH:mm:ss XXXX', new Date()) + ) + ), tags: z.array(z.string()), preview_image: z.string().optional(), }), diff --git a/src/pages/index.astro b/src/pages/index.astro index f2c6eb4..60be23e 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -11,7 +11,7 @@ const posts = await getCollection("blog");