diff options
author | Valentin Popov <valentin@popov.link> | 2024-10-03 02:04:27 +0300 |
---|---|---|
committer | Valentin Popov <valentin@popov.link> | 2024-10-03 02:04:27 +0300 |
commit | 2b5302587645dcab7c012c550989b7a8e9bee72b (patch) | |
tree | d0de8fc07cb6d0ec1c81657dcc9f0880a97c4d8b /src/pages | |
parent | d4eab1ff131c9342213f2dcc9b3c6383c7de41dd (diff) | |
download | popov.link-2b5302587645dcab7c012c550989b7a8e9bee72b.tar.xz popov.link-2b5302587645dcab7c012c550989b7a8e9bee72b.zip |
Update blog post metadata and styles
Diffstat (limited to 'src/pages')
-rw-r--r-- | src/pages/[...page].astro | 5 | ||||
-rw-r--r-- | src/pages/blog/[...slug].astro | 32 | ||||
-rw-r--r-- | src/pages/feed.xml.js | 4 |
3 files changed, 23 insertions, 18 deletions
diff --git a/src/pages/[...page].astro b/src/pages/[...page].astro index cd64d66..6d513b2 100644 --- a/src/pages/[...page].astro +++ b/src/pages/[...page].astro @@ -8,7 +8,10 @@ import PostSummary from "../components/PostSummary.astro"; type Props = InferGetStaticPropsType<typeof getStaticPaths>; export const getStaticPaths = (async ({ paginate }) => { - const posts = await getCollection("blog"); + const posts = await getCollection("blog", ({ data }) => { + return data.draft !== true; + }); + posts.sort((a, b) => b.data.pubDate.getTime() - a.data.pubDate.getTime()); return paginate(posts, { diff --git a/src/pages/blog/[...slug].astro b/src/pages/blog/[...slug].astro index bcd5eed..63d2c98 100644 --- a/src/pages/blog/[...slug].astro +++ b/src/pages/blog/[...slug].astro @@ -2,11 +2,14 @@ import { type CollectionEntry, getCollection } from "astro:content"; import Comments from "../../components/Comments.astro"; import Layout from "../../layouts/BaseLayout.astro"; +import dayjs from "dayjs"; type Props = CollectionEntry<"blog">; export async function getStaticPaths() { - const posts = await getCollection("blog"); + const posts = await getCollection("blog", ({ data }) => { + return data.draft !== true; + }); return posts.map((post) => ({ params: { slug: post.slug }, @@ -15,34 +18,31 @@ export async function getStaticPaths() { } const post = Astro.props; -const { Content, remarkPluginFrontmatter } = await post.render(); +const { Content } = await post.render(); +const formattedDate = dayjs(post.data.pubDate.toString()).format("MMMM DD, YYYY"); --- -<style> - .header { - text-align: center; - } -</style> - <Layout description={post.data.description} title={post.data.title}> <article> - <section class="header"> + <section> <h1>{post.data.title}</h1> + </section> + + <section> + <Content /> + </section> + + <section> <p> <small> Posted - <time datetime={post.data.pubDate.toISOString()}>{post.data.pubDate.toDateString()}</time> - by {post.data.author} ‐ - <strong>{remarkPluginFrontmatter.minutesRead}</strong> + <time datetime={post.data.pubDate.toISOString()}>{formattedDate}</time> + by {post.data.author} </small> </p> </section> <section> - <Content /> - </section> - - <section> <Comments /> </section> </article> diff --git a/src/pages/feed.xml.js b/src/pages/feed.xml.js index c837202..d71a020 100644 --- a/src/pages/feed.xml.js +++ b/src/pages/feed.xml.js @@ -2,7 +2,9 @@ import { getCollection } from "astro:content"; import rss from "@astrojs/rss"; export async function GET(context) { - const posts = await getCollection("blog"); + const posts = await getCollection("blog", ({ data }) => { + return data.draft !== true; + }); return rss({ customData: `<language>ru-ru</language>`, |