diff --git a/.vscode/settings.json b/.vscode/settings.json index fbf27c9..1c2bcb7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,5 +6,8 @@ "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll": "explicit" + }, + "editor.quickSuggestions": { + "strings": "on" } } diff --git a/cli/src/main.ts b/cli/src/main.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/components/ui/Head.astro b/src/components/ui/Head.astro deleted file mode 100644 index f9d996a..0000000 --- a/src/components/ui/Head.astro +++ /dev/null @@ -1,40 +0,0 @@ ---- -import siteConfig from "~/site.config"; -import { descriptionConstructor, titleConstructor } from "~/lib/metadata"; - -const { title, description } = Astro.props; ---- - - - - - {titleConstructor(title)} - - - - {/* og */} - - - - - - - - - - - - {/* font awesone */} - - - - - {/* analytics */} - - - {/* astro generator */} - - diff --git a/src/components/ui/Strapline.astro b/src/components/ui/Strapline.astro index e303cea..9f51433 100644 --- a/src/components/ui/Strapline.astro +++ b/src/components/ui/Strapline.astro @@ -4,7 +4,7 @@ import Date from "../util/Date.astro"; const { title, description, icon, date } = Astro.props; --- -
+

{title} diff --git a/src/components/util/Head.astro b/src/components/util/Head.astro new file mode 100644 index 0000000..7dd1db2 --- /dev/null +++ b/src/components/util/Head.astro @@ -0,0 +1,41 @@ +--- +import siteConfig from "~/site.config"; +import { getClacks } from "~/lib/fun"; +import { descriptionConstructor, titleConstructor } from "~/lib/metadata"; + +const { title, description } = Astro.props; +--- + + + + + {titleConstructor(title)} + + + + {/* og */} + + + + + + + + + + {/* font awesone */} + + + + + {/* analytics */} + + {/* astro generator */} + + + {/* clacks */} + diff --git a/src/content/about.md b/src/content/about.md new file mode 100644 index 0000000..b0533ef --- /dev/null +++ b/src/content/about.md @@ -0,0 +1 @@ +Hey, my name is Ivy Rose. I \ No newline at end of file diff --git a/src/content/bio.md b/src/content/bio.md index df845bc..193a1a2 100644 --- a/src/content/bio.md +++ b/src/content/bio.md @@ -1,6 +1,3 @@ ---- ---- - I'm a musician, student, part-time software developer and writer. I like making weird noises, websites (like this one) with [Astro](https://astro.build), and going outside whenever I'm not doing either of those things. diff --git a/src/content/blog/welcome.md b/src/content/blog/welcome.md index 0296991..dec7078 100644 --- a/src/content/blog/welcome.md +++ b/src/content/blog/welcome.md @@ -1,6 +1,7 @@ --- title: Welcome description: Lorem ipsum dolor sit amet irure tempor adipisicing esse minim nisi, aute duis elit. Adipisicing consequat pariatur duis incididunt nisi pariatur proident dolor deserunt et. +date: 2025-03-19 tags: - welcome --- diff --git a/src/layouts/Base.astro b/src/layouts/Base.astro index 85b7c3f..e8d8328 100644 --- a/src/layouts/Base.astro +++ b/src/layouts/Base.astro @@ -1,12 +1,14 @@ --- import "~/styles/global.css"; -import Head from "~/components/ui/Head.astro"; +import Head from "~/components/util/Head.astro"; import { ClientRouter } from "astro:transitions"; import SizeWarning from "~/components/ui/SizeWarning.astro"; + +const { title, date, description } = Astro.props; --- - + diff --git a/src/layouts/Page.astro b/src/layouts/Page.astro index 4df5294..d9c3fc1 100644 --- a/src/layouts/Page.astro +++ b/src/layouts/Page.astro @@ -6,7 +6,7 @@ import Footer from "~/components/ui/Footer.astro"; const { title, description, icon, date } = Astro.props; --- - +
diff --git a/src/lib/fun.ts b/src/lib/fun.ts index e41887e..e718a05 100644 --- a/src/lib/fun.ts +++ b/src/lib/fun.ts @@ -30,4 +30,7 @@ export function isBirthday() { return check; } - +export function getClacks(): string { + const clacks: string[] = ["Terry Pratchett", "Bram Moolenaar", "Alan Turing", "Haskell Curry", "Brianna Ghey"]; + return clacks.join(", "); +} \ No newline at end of file diff --git a/src/lib/metadata.ts b/src/lib/metadata.ts index 591882a..ed9d1eb 100644 --- a/src/lib/metadata.ts +++ b/src/lib/metadata.ts @@ -2,6 +2,7 @@ import conf from "~/site.config"; // todo: add blog detection export const titleConstructor = (title: string) => { + console.log(title) if (!title) return conf.siteName; return `${title} | ${conf.siteName}`; }; diff --git a/src/pages/about.astro b/src/pages/about.astro index 4dd745f..18135fd 100644 --- a/src/pages/about.astro +++ b/src/pages/about.astro @@ -1,7 +1,16 @@ --- import Page from "~/layouts/Page.astro"; +import Prose from "~/components/ui/Prose.astro"; +import { Content } from "~/content/about.md"; --- - -

i kiss girls

-
\ No newline at end of file + + + + + diff --git a/src/pages/blog/tags/[id].astro b/src/pages/blog/tags/[id].astro new file mode 100644 index 0000000..4c94b10 --- /dev/null +++ b/src/pages/blog/tags/[id].astro @@ -0,0 +1,39 @@ +--- +import Layout from "~/layouts/Page.astro"; +import { getCollection } from "astro:content"; + +export async function getStaticPaths() { + const allPosts = await getCollection("blog"); + const tags = [...new Set(allPosts.map((post) => post.data.tags).flat())]; + return tags.map((tag) => ({ + params: { id: tag }, + props: { tag }, + })); +} + +const allPosts = await getCollection("blog"); +const { tag } = Astro.props; +const filteredPosts = allPosts.filter( + (post) => post.data.tags && post.data.tags.includes(tag as string) +); +--- + + +
    + { + filteredPosts.length > 0 ? ( + filteredPosts.map((post) => ( +
  • + + {post.data.title} +
  • + )) + ) : ( +
  • No posts found for this tag.
  • + ) + } +
+
diff --git a/src/pages/blog/tags/index.astro b/src/pages/blog/tags/index.astro new file mode 100644 index 0000000..7fb87e4 --- /dev/null +++ b/src/pages/blog/tags/index.astro @@ -0,0 +1,18 @@ +--- +import Layout from "~/layouts/Page.astro"; +import { getCollection } from "astro:content"; + +const allPosts = await getCollection("blog"); +const tags = [...new Set(allPosts.map((post) => post.data.tags).flat())]; +--- + + +
    + { + tags.map((tag) =>
  • + + {tag} +
  • ) + } +
+
diff --git a/src/pages/contact/index.astro b/src/pages/contact/index.astro index f8a9acd..bd4a173 100644 --- a/src/pages/contact/index.astro +++ b/src/pages/contact/index.astro @@ -3,33 +3,38 @@ import Layout from "~/layouts/Page.astro"; --- -

- I'm not really active on social media, but you can contact me via email. -

-

- hello@ivyneeds.rest -

-

where i am / where i'm not

-
diff --git a/src/pages/index.astro b/src/pages/index.astro index 8328302..623e9c0 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -6,7 +6,9 @@ import Box from "~/components/ui/Box.astro"; import CollectionList from "~/components/lists/BlogPostList.astro"; import NoteList from "~/components/lists/NoteList.astro"; import StyledLink from "~/components/util/StyledLink.astro"; -import {Content as Bio} from "~/content/bio.md" +import { Content as Bio } from "~/content/bio.md"; +import Prose from "~/components/ui/Prose.astro"; +import { getClacks } from "~/lib/fun"; --- @@ -18,16 +20,20 @@ import {Content as Bio} from "~/content/bio.md" > Hi! I'm Ivy, welcome to my website!

- - + + {getClacks()} + + + +
- +
see more
- +
see more diff --git a/src/styles/global.css b/src/styles/global.css index 9e68315..671e529 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -203,3 +203,6 @@ hr { } +a { + cursor: url('https://fav.farm/✏️') 15 0, auto; +}