From 04966204fd049f094fe6d8ddadafe9acb738b1a4 Mon Sep 17 00:00:00 2001 From: Graham Hall Date: Sat, 10 Dec 2022 09:57:51 -0500 Subject: [PATCH 1/2] blog archive page --- src/pages/archive.astro | 25 +++++++++++++++++++++++++ src/pages/index.astro | 3 ++- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 src/pages/archive.astro diff --git a/src/pages/archive.astro b/src/pages/archive.astro new file mode 100644 index 0000000..615b147 --- /dev/null +++ b/src/pages/archive.astro @@ -0,0 +1,25 @@ +--- +import { format } from "date-fns"; +import Layout from "../layouts/Layout.astro"; + +const response = await fetch( + `https://api.cosmicjs.com/v2/buckets/${ + import.meta.env.BUCKET_SLUG + }/objects?pretty=true&query=%7B%22type%22%3A%22blog-posts%22%7D&read_key=${ + import.meta.env.BUCKET_READ_KEY + }&skip=5&limit=25` +); + +const posts = await response.json(); +--- + + + { + posts.objects.map((post) => ( +
+ {post.title} -{" "} + {format(new Date(post.published_at), "MMM do, y")} +
+ )) + } +
diff --git a/src/pages/index.astro b/src/pages/index.astro index 3c1a8bc..d7147c4 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -9,7 +9,7 @@ const response = await fetch( import.meta.env.BUCKET_SLUG }/objects?pretty=true&query=%7B%22type%22%3A%22blog-posts%22%7D&read_key=${ import.meta.env.BUCKET_READ_KEY - }&limit=10` + }&limit=5` ); const posts = await response.json(); @@ -33,5 +33,6 @@ const posts = await response.json(); )) } + {posts.objects.length < 5 ? null : More Posts} From a2d9f2c0296fb49eb32951b5a0fada3beb78e44f Mon Sep 17 00:00:00 2001 From: Graham Hall Date: Sat, 10 Dec 2022 20:54:04 -0500 Subject: [PATCH 2/2] timezone fix --- package-lock.json | 20 ++++++++++++++++++-- package.json | 2 +- src/components/BlogHeader.astro | 6 ++++-- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0ce0595..3c1296a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@picocss/pico": "^1.5.6", "astro": "^1.6.13", "astro-remote": "^0.2.3", - "date-fns": "^2.29.3" + "date-fns-tz": "^1.3.7" }, "devDependencies": { "prettier": "^2.8.1", @@ -1414,6 +1414,7 @@ "version": "2.29.3", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", + "peer": true, "engines": { "node": ">=0.11" }, @@ -1422,6 +1423,14 @@ "url": "https://opencollective.com/date-fns" } }, + "node_modules/date-fns-tz": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-1.3.7.tgz", + "integrity": "sha512-1t1b8zyJo+UI8aR+g3iqr5fkUHWpd58VBx8J/ZSQ+w7YrGlw80Ag4sA86qkfCXRBLmMc4I2US+aPMd4uKvwj5g==", + "peerDependencies": { + "date-fns": ">=2.0.0" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -6749,7 +6758,14 @@ "date-fns": { "version": "2.29.3", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", - "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==" + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", + "peer": true + }, + "date-fns-tz": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-1.3.7.tgz", + "integrity": "sha512-1t1b8zyJo+UI8aR+g3iqr5fkUHWpd58VBx8J/ZSQ+w7YrGlw80Ag4sA86qkfCXRBLmMc4I2US+aPMd4uKvwj5g==", + "requires": {} }, "debug": { "version": "4.3.4", diff --git a/package.json b/package.json index b36a0ad..1caba30 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "@picocss/pico": "^1.5.6", "astro": "^1.6.13", "astro-remote": "^0.2.3", - "date-fns": "^2.29.3" + "date-fns-tz": "^1.3.7" }, "devDependencies": { "prettier": "^2.8.1", diff --git a/src/components/BlogHeader.astro b/src/components/BlogHeader.astro index 76644a7..b15501d 100644 --- a/src/components/BlogHeader.astro +++ b/src/components/BlogHeader.astro @@ -1,5 +1,5 @@ --- -import { format } from "date-fns"; +import { formatInTimeZone } from "date-fns-tz"; interface Props { title: String; @@ -11,5 +11,7 @@ const { title, date } = Astro.props;

{title}

-
{`🗓️ ${format(new Date(date), "MMM do, y")}`}
+
+ {`🗓️ ${formatInTimeZone(new Date(date), "America/New_York", "MMM do, y")}`} +