From 819f2e4acaca1ecb47c4cc8b0db4f4ed6651ef32 Mon Sep 17 00:00:00 2001 From: Mikkel Svartveit Date: Fri, 20 Oct 2023 00:57:09 -0700 Subject: [PATCH] Build article page --- src/assets/images/lorempicsum.jpeg | Bin 0 -> 46659 bytes src/components/Navbar.svelte | 2 +- src/content/blog/lorem-2.md | 21 ++++++++++ src/content/blog/lorem-3.md | 21 ++++++++++ src/content/blog/lorem.md | 21 ++++++++++ src/content/config.ts | 11 ++++++ src/pages/articles/[article].astro | 43 +++++++++++++++++++++ src/pages/articles/index.astro | 60 +++++++++++++++++++++++++++++ src/pages/index.astro | 58 ++++++++++++++++++++++++---- src/pages/photography/index.astro | 1 - src/pages/programming/index.astro | 2 +- 11 files changed, 230 insertions(+), 10 deletions(-) create mode 100644 src/assets/images/lorempicsum.jpeg create mode 100644 src/content/blog/lorem-2.md create mode 100644 src/content/blog/lorem-3.md create mode 100644 src/content/blog/lorem.md create mode 100644 src/pages/articles/[article].astro create mode 100644 src/pages/articles/index.astro diff --git a/src/assets/images/lorempicsum.jpeg b/src/assets/images/lorempicsum.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..dd02c8e0e29374746e8fc773d21c604c6e462f8a GIT binary patch literal 46659 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 literal 0 HcmV?d00001 diff --git a/src/components/Navbar.svelte b/src/components/Navbar.svelte index d13bcc4..b8b9167 100644 --- a/src/components/Navbar.svelte +++ b/src/components/Navbar.svelte @@ -9,9 +9,9 @@ $: isScrolled = scrollPosition > 0; const navbarContent = [ + { name: "📝 Articles", href: "/articles" }, { name: "👨‍💻 Projects", href: "/programming" }, { name: "📷 Photography", href: "/photography" }, - // { name: "📝 Articles", href: "/articles" }, ]; let collapsed = true; diff --git a/src/content/blog/lorem-2.md b/src/content/blog/lorem-2.md new file mode 100644 index 0000000..fc9075a --- /dev/null +++ b/src/content/blog/lorem-2.md @@ -0,0 +1,21 @@ +--- +intro: "Nunc at ex consequat, tincidunt est eu, pellentesque tellus. Sed sodales massa et condimentum pharetra. Curabitur euismod ac arcu id dapibus." +image: "@assets/images/lorempicsum.jpeg" +date: 2023-10-19 +--- + +# Lorem ipsum dolor sit amet, consectetur adipiscing elit + +## Heading 2 + +### Heading 3 + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc at ex consequat, tincidunt est eu, pellentesque tellus. Sed sodales massa et condimentum pharetra. Curabitur euismod ac arcu id dapibus. Aliquam viverra tellus quis sem interdum commodo. Vivamus vel porttitor massa. Fusce vitae risus quis lacus blandit tincidunt. Phasellus pretium condimentum eleifend. Ut sit amet ligula eget sapien luctus bibendum eu in neque. Praesent at commodo augue. Sed a aliquet nibh. Praesent venenatis massa sit amet tempor volutpat. Praesent porttitor ultricies dui, non rutrum tortor eleifend et. Ut et massa a massa bibendum ornare vitae non massa. Donec lacus lacus, tempor id mollis ac, commodo et tortor. + +Donec malesuada, mauris id viverra viverra, velit velit finibus nulla, quis elementum orci elit non mauris. Phasellus odio neque, lobortis in dignissim at, aliquet in quam. Nullam et sodales nibh. Integer vulputate lacinia ultrices. Cras pharetra tincidunt vehicula. Maecenas sit amet eleifend dolor, sed accumsan magna. Mauris sed mi quis magna molestie molestie. + +Integer dui sem, imperdiet sit amet pretium nec, interdum sit amet justo. Praesent imperdiet ante urna, ac commodo nisl luctus quis. Aenean sit amet pretium dolor. Maecenas efficitur augue eget ipsum vulputate, quis dapibus nulla egestas. Nunc et ullamcorper risus. Morbi mauris neque, malesuada sit amet dictum et, fringilla vel velit. Suspendisse tincidunt neque vitae orci pharetra, vel rhoncus justo maximus. Quisque lacinia feugiat vulputate. Donec quis nunc felis. Donec rhoncus tempor ex sit amet tristique. Integer a ex velit. Nunc nec sapien sit amet massa pretium elementum eget vitae tellus. Curabitur et ligula sit amet turpis viverra convallis. Interdum et malesuada fames ac ante ipsum primis in faucibus. + +Curabitur at ex facilisis, tincidunt risus lacinia, maximus arcu. Suspendisse lobortis id orci at laoreet. Donec luctus urna ac condimentum aliquet. Nulla ac libero lacus. Vestibulum fermentum, augue at faucibus laoreet, leo libero blandit mi, et porta libero justo non risus. Etiam sollicitudin facilisis condimentum. Proin a gravida velit, quis pulvinar odio. Nam vehicula risus in nisi euismod, in hendrerit est fermentum. Morbi fermentum elementum urna, non rhoncus libero sodales eget. Curabitur sed felis sit amet dolor facilisis elementum et vitae dolor. + +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam quis tempor lorem. Sed bibendum pulvinar nibh eget feugiat. Sed at vehicula odio. Vivamus porttitor magna tortor, sit amet venenatis sapien lobortis at. Nam placerat condimentum purus in pellentesque. Quisque gravida tincidunt tincidunt. Duis varius, est ac molestie posuere, nisl mauris lacinia ex, tincidunt hendrerit enim eros eget turpis. Nulla facilisi. diff --git a/src/content/blog/lorem-3.md b/src/content/blog/lorem-3.md new file mode 100644 index 0000000..fc9075a --- /dev/null +++ b/src/content/blog/lorem-3.md @@ -0,0 +1,21 @@ +--- +intro: "Nunc at ex consequat, tincidunt est eu, pellentesque tellus. Sed sodales massa et condimentum pharetra. Curabitur euismod ac arcu id dapibus." +image: "@assets/images/lorempicsum.jpeg" +date: 2023-10-19 +--- + +# Lorem ipsum dolor sit amet, consectetur adipiscing elit + +## Heading 2 + +### Heading 3 + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc at ex consequat, tincidunt est eu, pellentesque tellus. Sed sodales massa et condimentum pharetra. Curabitur euismod ac arcu id dapibus. Aliquam viverra tellus quis sem interdum commodo. Vivamus vel porttitor massa. Fusce vitae risus quis lacus blandit tincidunt. Phasellus pretium condimentum eleifend. Ut sit amet ligula eget sapien luctus bibendum eu in neque. Praesent at commodo augue. Sed a aliquet nibh. Praesent venenatis massa sit amet tempor volutpat. Praesent porttitor ultricies dui, non rutrum tortor eleifend et. Ut et massa a massa bibendum ornare vitae non massa. Donec lacus lacus, tempor id mollis ac, commodo et tortor. + +Donec malesuada, mauris id viverra viverra, velit velit finibus nulla, quis elementum orci elit non mauris. Phasellus odio neque, lobortis in dignissim at, aliquet in quam. Nullam et sodales nibh. Integer vulputate lacinia ultrices. Cras pharetra tincidunt vehicula. Maecenas sit amet eleifend dolor, sed accumsan magna. Mauris sed mi quis magna molestie molestie. + +Integer dui sem, imperdiet sit amet pretium nec, interdum sit amet justo. Praesent imperdiet ante urna, ac commodo nisl luctus quis. Aenean sit amet pretium dolor. Maecenas efficitur augue eget ipsum vulputate, quis dapibus nulla egestas. Nunc et ullamcorper risus. Morbi mauris neque, malesuada sit amet dictum et, fringilla vel velit. Suspendisse tincidunt neque vitae orci pharetra, vel rhoncus justo maximus. Quisque lacinia feugiat vulputate. Donec quis nunc felis. Donec rhoncus tempor ex sit amet tristique. Integer a ex velit. Nunc nec sapien sit amet massa pretium elementum eget vitae tellus. Curabitur et ligula sit amet turpis viverra convallis. Interdum et malesuada fames ac ante ipsum primis in faucibus. + +Curabitur at ex facilisis, tincidunt risus lacinia, maximus arcu. Suspendisse lobortis id orci at laoreet. Donec luctus urna ac condimentum aliquet. Nulla ac libero lacus. Vestibulum fermentum, augue at faucibus laoreet, leo libero blandit mi, et porta libero justo non risus. Etiam sollicitudin facilisis condimentum. Proin a gravida velit, quis pulvinar odio. Nam vehicula risus in nisi euismod, in hendrerit est fermentum. Morbi fermentum elementum urna, non rhoncus libero sodales eget. Curabitur sed felis sit amet dolor facilisis elementum et vitae dolor. + +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam quis tempor lorem. Sed bibendum pulvinar nibh eget feugiat. Sed at vehicula odio. Vivamus porttitor magna tortor, sit amet venenatis sapien lobortis at. Nam placerat condimentum purus in pellentesque. Quisque gravida tincidunt tincidunt. Duis varius, est ac molestie posuere, nisl mauris lacinia ex, tincidunt hendrerit enim eros eget turpis. Nulla facilisi. diff --git a/src/content/blog/lorem.md b/src/content/blog/lorem.md new file mode 100644 index 0000000..fc9075a --- /dev/null +++ b/src/content/blog/lorem.md @@ -0,0 +1,21 @@ +--- +intro: "Nunc at ex consequat, tincidunt est eu, pellentesque tellus. Sed sodales massa et condimentum pharetra. Curabitur euismod ac arcu id dapibus." +image: "@assets/images/lorempicsum.jpeg" +date: 2023-10-19 +--- + +# Lorem ipsum dolor sit amet, consectetur adipiscing elit + +## Heading 2 + +### Heading 3 + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc at ex consequat, tincidunt est eu, pellentesque tellus. Sed sodales massa et condimentum pharetra. Curabitur euismod ac arcu id dapibus. Aliquam viverra tellus quis sem interdum commodo. Vivamus vel porttitor massa. Fusce vitae risus quis lacus blandit tincidunt. Phasellus pretium condimentum eleifend. Ut sit amet ligula eget sapien luctus bibendum eu in neque. Praesent at commodo augue. Sed a aliquet nibh. Praesent venenatis massa sit amet tempor volutpat. Praesent porttitor ultricies dui, non rutrum tortor eleifend et. Ut et massa a massa bibendum ornare vitae non massa. Donec lacus lacus, tempor id mollis ac, commodo et tortor. + +Donec malesuada, mauris id viverra viverra, velit velit finibus nulla, quis elementum orci elit non mauris. Phasellus odio neque, lobortis in dignissim at, aliquet in quam. Nullam et sodales nibh. Integer vulputate lacinia ultrices. Cras pharetra tincidunt vehicula. Maecenas sit amet eleifend dolor, sed accumsan magna. Mauris sed mi quis magna molestie molestie. + +Integer dui sem, imperdiet sit amet pretium nec, interdum sit amet justo. Praesent imperdiet ante urna, ac commodo nisl luctus quis. Aenean sit amet pretium dolor. Maecenas efficitur augue eget ipsum vulputate, quis dapibus nulla egestas. Nunc et ullamcorper risus. Morbi mauris neque, malesuada sit amet dictum et, fringilla vel velit. Suspendisse tincidunt neque vitae orci pharetra, vel rhoncus justo maximus. Quisque lacinia feugiat vulputate. Donec quis nunc felis. Donec rhoncus tempor ex sit amet tristique. Integer a ex velit. Nunc nec sapien sit amet massa pretium elementum eget vitae tellus. Curabitur et ligula sit amet turpis viverra convallis. Interdum et malesuada fames ac ante ipsum primis in faucibus. + +Curabitur at ex facilisis, tincidunt risus lacinia, maximus arcu. Suspendisse lobortis id orci at laoreet. Donec luctus urna ac condimentum aliquet. Nulla ac libero lacus. Vestibulum fermentum, augue at faucibus laoreet, leo libero blandit mi, et porta libero justo non risus. Etiam sollicitudin facilisis condimentum. Proin a gravida velit, quis pulvinar odio. Nam vehicula risus in nisi euismod, in hendrerit est fermentum. Morbi fermentum elementum urna, non rhoncus libero sodales eget. Curabitur sed felis sit amet dolor facilisis elementum et vitae dolor. + +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam quis tempor lorem. Sed bibendum pulvinar nibh eget feugiat. Sed at vehicula odio. Vivamus porttitor magna tortor, sit amet venenatis sapien lobortis at. Nam placerat condimentum purus in pellentesque. Quisque gravida tincidunt tincidunt. Duis varius, est ac molestie posuere, nisl mauris lacinia ex, tincidunt hendrerit enim eros eget turpis. Nulla facilisi. diff --git a/src/content/config.ts b/src/content/config.ts index 29b21e1..074dd74 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -14,6 +14,17 @@ const programmingCollection = defineCollection({ }), }); +const blogCollection = defineCollection({ + type: "content", + schema: ({ image }) => + z.object({ + image: image(), + intro: z.string(), + date: z.date(), + }), +}); + export const collections = { programming: programmingCollection, + blog: blogCollection, }; diff --git a/src/pages/articles/[article].astro b/src/pages/articles/[article].astro new file mode 100644 index 0000000..cd18f57 --- /dev/null +++ b/src/pages/articles/[article].astro @@ -0,0 +1,43 @@ +--- +import ContainerLayout from "@layouts/ContainerLayout.astro"; +import BaseLayout from "@layouts/BaseLayout.astro"; +import TextContentLayout from "@layouts/TextContentLayout.astro"; +import type { GetStaticPaths } from "astro"; +import { getCollection } from "astro:content"; + +export const getStaticPaths = (async () => { + const blogCollection = await getCollection("blog"); + return blogCollection.map((entry) => ({ + params: { + article: entry.slug, + }, + props: { entry }, + })); +}) satisfies GetStaticPaths; + +const project = Astro.props.entry; +const { Content } = await project.render(); +const { title, date } = project.data; +--- + + + + +

+ { + new Date(date).toLocaleDateString("en-US", { + month: "long", + day: "numeric", + year: "numeric", + }) + } +

+ +
+ +
+
+
+
diff --git a/src/pages/articles/index.astro b/src/pages/articles/index.astro new file mode 100644 index 0000000..e210c1e --- /dev/null +++ b/src/pages/articles/index.astro @@ -0,0 +1,60 @@ +--- +import { Image } from "astro:assets"; +import Paragraph from "@components/Paragraph.astro"; +import ContainerLayout from "@layouts/ContainerLayout.astro"; +import BaseLayout from "@layouts/BaseLayout.astro"; +import TextContentLayout from "@layouts/TextContentLayout.astro"; +import { getCollection } from "astro:content"; + +const articles = await getCollection("blog"); +--- + + + + +

+ Articles +

+ + + Sometimes I write about technology, programming, software, productivity + or other things that interests me. + + +
+ { + articles + .sort((p2, p1) => p1.data.date.getTime() - p2.data.date.getTime()) + .map(async (article) => { + const { slug, data } = article; + const { image, intro } = data; + const { headings } = await article.render(); + const title = headings[0].text; + return ( + + {title} + +
+

+ {title} +

+ +

{intro}

+
+
+ ); + }) + } +
+
+
+
diff --git a/src/pages/index.astro b/src/pages/index.astro index d6ba41e..743336b 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,18 +1,26 @@ --- +import { getCollection } from "astro:content"; import { Image } from "astro:assets"; import BaseLayout from "../layouts/BaseLayout.astro"; import Link from "@components/Link.astro"; import Paragraph from "@components/Paragraph.astro"; import SocialIcons from "@components/SocialIcons.astro"; - import portraitImage from "@assets/images/portrait.jpg"; + +const articles = await getCollection("blog"); +const latestArticle = articles.sort( + (p2, p1) => p1.data.date.getTime() - p2.data.date.getTime(), +)[0]; +const latestArticleSlug = latestArticle.slug; +const latestArticleTitle = (await latestArticle.render()).headings[0].text; +const latestArticleImage = latestArticle.data.image; ---
-
+

@@ -26,9 +34,10 @@ import portraitImage from "@assets/images/portrait.jpg"; Here you will find some - programming projects, and a small + programming projects, a small collection of photos - I'm proud of. + I'm proud of, and even a few + articles I've written. @@ -41,7 +50,7 @@ import portraitImage from "@assets/images/portrait.jpg";

-
+
-