chore: updated pages and nav to path style
7adfa550
24 file(s) · +57 −56
| 1 | 1 | --- |
|
| 2 | - | title: About |
|
| 2 | + | title: /about |
|
| 3 | 3 | --- |
|
| 4 | 4 | ||
| 5 | 5 | import { Image } from "astro:assets"; |
|
| 6 | 6 | import aboutImg from "../../assets/pfp.png"; |
|
| 7 | 7 | import Diagram from "@/components/blog/Diagram.astro"; |
|
| 8 | 8 | ||
| 9 | - | # About Me |
|
| 9 | + | # /about |
|
| 10 | 10 | ||
| 11 | 11 | My name is Steve and I'm a DX Engineer with a passion for developer tooling that advances an open web. I'm currently working at [Stablecore](https://stablecore.com) as a senior solutions engineer. I'm also working on a host of other [projects](/projects), the latest being [Andromeda](https://andromeda.build). Check out what else I've been up to recently at my [now page](/now)! |
|
| 12 | 12 | ||
| 24 | 24 | ||
| 25 | 25 | Feel free to [reach out](mailto:contact@stevedylan.dev)! |
|
| 26 | 26 | ||
| 27 | - | # About This Site |
|
| 27 | + | ## About this Site |
|
| 28 | 28 | ||
| 29 | 29 | This website was built with [Astro](https://astro.build), and started out with the [Astro Cactus theme](https://astro.build/themes/details/astro-cactus/), but has significantly diverged as the years have gone by. Astro is an incredible framework for building personal sites/blogs and I would highly recommend it to anyone looking for a solution that needs just a bit more juice than your standard SSG. |
|
| 30 | 30 | ||
| 1 | - | # Uses |
|
| 1 | + | # /uses |
|
| 2 | 2 | ||
| 3 | 3 | A non-comprehensive list of things I'm currently using. |
|
| 4 | 4 |
| 6 | 6 | ||
| 7 | 7 | export const MENU_LINKS = [ |
|
| 8 | 8 | { |
|
| 9 | - | title: "Home", |
|
| 9 | + | title: "/home", |
|
| 10 | 10 | path: "/", |
|
| 11 | 11 | }, |
|
| 12 | 12 | { |
|
| 13 | - | title: "About", |
|
| 13 | + | title: "/about", |
|
| 14 | 14 | path: "/about", |
|
| 15 | 15 | }, |
|
| 16 | 16 | { |
|
| 17 | - | title: "Blog", |
|
| 17 | + | title: "/blog", |
|
| 18 | 18 | path: "/posts", |
|
| 19 | 19 | }, |
|
| 20 | 20 | { |
|
| 21 | - | title: "Projects", |
|
| 21 | + | title: "/projects", |
|
| 22 | 22 | path: "/projects", |
|
| 23 | 23 | }, |
|
| 24 | 24 | { |
|
| 25 | - | title: "CV", |
|
| 25 | + | title: "/cv", |
|
| 26 | 26 | path: "/cv", |
|
| 27 | 27 | }, |
|
| 28 | 28 | { |
|
| 29 | - | title: "Now", |
|
| 29 | + | title: "/now", |
|
| 30 | 30 | path: "/now", |
|
| 31 | 31 | }, |
|
| 32 | 32 | { |
|
| 33 | - | title: "Feeds", |
|
| 33 | + | title: "/feeds", |
|
| 34 | 34 | path: "/feeds", |
|
| 35 | 35 | }, |
|
| 36 | 36 | { |
|
| 37 | - | title: "Blogroll", |
|
| 37 | + | title: "/blogroll", |
|
| 38 | 38 | path: "/blogroll", |
|
| 39 | 39 | }, |
|
| 40 | 40 | { |
|
| 41 | - | title: "Library", |
|
| 41 | + | title: "/library", |
|
| 42 | 42 | path: "/library", |
|
| 43 | 43 | }, |
|
| 44 | 44 | { |
|
| 45 | - | title: "Bookmarks", |
|
| 45 | + | title: "/bookmarks", |
|
| 46 | 46 | path: "/bookmarks", |
|
| 47 | 47 | }, |
|
| 48 | 48 | { |
|
| 49 | - | title: "Git", |
|
| 49 | + | title: "/git", |
|
| 50 | 50 | path: "/git", |
|
| 51 | 51 | }, |
|
| 52 | 52 | { |
|
| 53 | - | title: "Cellar", |
|
| 53 | + | title: "/cellar", |
|
| 54 | 54 | path: "/cellar", |
|
| 55 | 55 | }, |
|
| 56 | 56 | { |
|
| 57 | - | title: "Birds", |
|
| 57 | + | title: "/birds", |
|
| 58 | 58 | path: "/birds", |
|
| 59 | 59 | }, |
|
| 60 | 60 | { |
|
| 61 | - | title: "Art Cal", |
|
| 61 | + | title: "/art-cal", |
|
| 62 | 62 | path: "/art-calendar", |
|
| 63 | 63 | }, |
|
| 64 | 64 | { |
|
| 65 | - | title: "Uses", |
|
| 65 | + | title: "/uses", |
|
| 66 | 66 | path: "/uses", |
|
| 67 | 67 | }, |
|
| 68 | 68 | { |
|
| 69 | - | title: "Photos", |
|
| 69 | + | title: "/photos", |
|
| 70 | 70 | path: "https://steve.photo", |
|
| 71 | 71 | }, |
|
| 72 | 72 | { |
|
| 73 | - | title: "Links", |
|
| 73 | + | title: "/links", |
|
| 74 | 74 | path: "/links", |
|
| 75 | 75 | }, |
|
| 76 | 76 | ]; |
| 3 | 3 | import { Content } from "../content/pages/about.mdx"; |
|
| 4 | 4 | ||
| 5 | 5 | const meta = { |
|
| 6 | - | title: "About", |
|
| 6 | + | title: "/about", |
|
| 7 | 7 | description: "More about Steve Simkins", |
|
| 8 | 8 | }; |
|
| 9 | 9 | --- |
| 21 | 21 | }; |
|
| 22 | 22 | ||
| 23 | 23 | const meta = { |
|
| 24 | - | title: "Art Calendar", |
|
| 24 | + | title: "/art-calendar", |
|
| 25 | 25 | description: |
|
| 26 | 26 | "A different painting every day from the Art Institute of Chicago.", |
|
| 27 | 27 | }; |
|
| 52 | 52 | <div class="flex min-h-screen flex-col items-start justify-start gap-6"> |
|
| 53 | 53 | <div class="flex flex-col gap-1 w-full"> |
|
| 54 | 54 | <div class="flex flex-row justify-between items-center w-full"> |
|
| 55 | - | <h1 class="title">Art Calendar</h1> |
|
| 55 | + | <h1 class="title">/art-calendar</h1> |
|
| 56 | 56 | <div class="flex gap-2 items-center"> |
|
| 57 | 57 | <a |
|
| 58 | 58 | class="inline-block p-2 sm:hover:text-link" |
|
| 3 | 3 | import { birds } from "@/data/birds"; |
|
| 4 | 4 | ||
| 5 | 5 | const meta = { |
|
| 6 | - | title: "Birds", |
|
| 6 | + | title: "/birds", |
|
| 7 | 7 | description: "My life list — every species I've logged on Merlin Bird ID", |
|
| 8 | 8 | }; |
|
| 9 | 9 | --- |
|
| 11 | 11 | <PageLayout meta={meta}> |
|
| 12 | 12 | <div class="flex min-h-screen flex-col items-start justify-start gap-6"> |
|
| 13 | 13 | <div> |
|
| 14 | - | <h1 class="title">Birds</h1> |
|
| 14 | + | <h1 class="title">/birds</h1> |
|
| 15 | 15 | <p class="mt-2 text-sm text-zinc-400">{birds.length} species observed</p> |
|
| 16 | 16 | </div> |
|
| 17 | 17 | <div class="flex w-full flex-col sm:grid sm:grid-cols-2"> |
|
| 4 | 4 | import PageLayout from "@/layouts/Base.astro"; |
|
| 5 | 5 | ||
| 6 | 6 | const meta = { |
|
| 7 | - | title: "Blogroll", |
|
| 7 | + | title: "/blogroll", |
|
| 8 | 8 | description: "A collection of RSS feeds I'm subscribed to", |
|
| 9 | 9 | }; |
|
| 10 | 10 | ||
| 20 | 20 | ||
| 21 | 21 | <PageLayout meta={meta}> |
|
| 22 | 22 | <div class="space-y-6"> |
|
| 23 | - | <h1 class="title">Blogroll</h1> |
|
| 23 | + | <h1 class="title">/blogroll</h1> |
|
| 24 | 24 | <p> |
|
| 25 | 25 | Help build a blog network with me! Check out some of the people I follow |
|
| 26 | 26 | below, and if you end up following them too, create a <a |
|
| 15 | 15 | }; |
|
| 16 | 16 | ||
| 17 | 17 | const meta = { |
|
| 18 | - | title: "Bookmarks", |
|
| 18 | + | title: "/bookmarks", |
|
| 19 | 19 | description: "Links I've saved and want to read", |
|
| 20 | 20 | }; |
|
| 21 | 21 | ||
| 36 | 36 | ||
| 37 | 37 | <PageLayout meta={meta}> |
|
| 38 | 38 | <div class="flex min-h-screen flex-col items-start justify-start gap-6"> |
|
| 39 | - | <h1 class="title">Bookmarks</h1> |
|
| 39 | + | <h1 class="title">/bookmarks</h1> |
|
| 40 | 40 | {error ? ( |
|
| 41 | 41 | <p class="text-red-400 text-sm">Could not load bookmarks: {error}</p> |
|
| 42 | 42 | ) : categories.length === 0 ? ( |
|
| 5 | 5 | import WineCard from "@/components/page/WineCard.astro"; |
|
| 6 | 6 | ||
| 7 | 7 | const meta = { |
|
| 8 | - | title: "Cellar", |
|
| 8 | + | title: "/cellar", |
|
| 9 | 9 | description: "My wine tasting log", |
|
| 10 | 10 | }; |
|
| 11 | 11 | ||
| 28 | 28 | ||
| 29 | 29 | <PageLayout meta={meta}> |
|
| 30 | 30 | <div class="flex min-h-screen flex-col items-start justify-start gap-6"> |
|
| 31 | - | <h1 class="title">Cellar</h1> |
|
| 31 | + | <h1 class="title">/cellar</h1> |
|
| 32 | 32 | {error ? ( |
|
| 33 | 33 | <p class="text-red-400 text-sm">Could not load wines: {error}</p> |
|
| 34 | 34 | ) : wines.length === 0 ? ( |
|
| 2 | 2 | import PageLayout from "@/layouts/Base.astro"; |
|
| 3 | 3 | ||
| 4 | 4 | const meta = { |
|
| 5 | - | title: "CV", |
|
| 5 | + | title: "/cv", |
|
| 6 | 6 | description: "History of work", |
|
| 7 | 7 | }; |
|
| 8 | 8 | ||
| 49 | 49 | ||
| 50 | 50 | <PageLayout meta={meta}> |
|
| 51 | 51 | <div class="space-y-6"> |
|
| 52 | - | <h1 class="title">CV</h1> |
|
| 52 | + | <h1 class="title">/cv</h1> |
|
| 53 | 53 | <div class="relative space-y-10"> |
|
| 54 | 54 | <span class="absolute left-[4px] top-3 bottom-0 w-px bg-gradient-to-b from-accent to-transparent" aria-hidden="true"></span> |
|
| 55 | 55 | {experience.map((job, i) => ( |
|
| 3 | 3 | import { RSS_FEEDS } from "@/data/constants"; |
|
| 4 | 4 | ||
| 5 | 5 | const meta = { |
|
| 6 | - | title: "Feeds", |
|
| 6 | + | title: "/feeds", |
|
| 7 | 7 | description: "RSS feeds available on this site", |
|
| 8 | 8 | }; |
|
| 9 | 9 | --- |
|
| 10 | 10 | <PageLayout meta={meta}> |
|
| 11 | 11 | <div class="space-y-6"> |
|
| 12 | - | <h1 class="title">Feeds</h1> |
|
| 12 | + | <h1 class="title">/feeds</h1> |
|
| 13 | 13 | <p>RSS feeds available on this site and some of my other apps. Drop any of these into your reader of choice.</p> |
|
| 14 | 14 | <ul class="list-none pl-0 grid grid-cols-1 sm:grid-cols-2 gap-4"> |
|
| 15 | 15 | {RSS_FEEDS.map((feed) => { |
| 6 | 6 | } from "../../scripts/shiki-setup.mjs"; |
|
| 7 | 7 | ||
| 8 | 8 | const meta = { |
|
| 9 | - | title: "Git", |
|
| 9 | + | title: "/git", |
|
| 10 | 10 | description: "Access the open source repos I'm working on", |
|
| 11 | 11 | }; |
|
| 12 | 12 | ||
| 20 | 20 | ||
| 21 | 21 | <PageLayout meta={meta}> |
|
| 22 | 22 | <div class="space-y-6"> |
|
| 23 | - | <h1 class="title">Git</h1> |
|
| 23 | + | <h1 class="title">/git</h1> |
|
| 24 | 24 | <p>Access my open source repos either through <a href="https://github.com/stevedylandev" target="_blank" rel="noreferrer" class="style-link">GitHub</a> or over SSH:</p> |
|
| 25 | 25 | <div set:html={codeHtml} /> |
|
| 26 | 26 | </div> |
|
| 15 | 15 | --- |
|
| 16 | 16 | ||
| 17 | 17 | <PageLayout meta={{ title: "Steve Simkins" }}> |
|
| 18 | + | <h1 class="title mb-4">/</h1> |
|
| 18 | 19 | <section> |
|
| 19 | 20 | <p class="mb-4"> |
|
| 20 | 21 | DX Engineer with a passion for developer tooling that advances an open |
| 3 | 3 | import { Content } from "../content/pages/lawn.mdx"; |
|
| 4 | 4 | ||
| 5 | 5 | const meta = { |
|
| 6 | - | title: "Kill Your Lawn", |
|
| 6 | + | title: "/kill-your-lawn", |
|
| 7 | 7 | description: "Before it kills you", |
|
| 8 | 8 | }; |
|
| 9 | 9 | --- |
| 14 | 14 | }; |
|
| 15 | 15 | ||
| 16 | 16 | const meta = { |
|
| 17 | - | title: "Library", |
|
| 17 | + | title: "/library", |
|
| 18 | 18 | description: "Books I'm reading, have read, and want to read", |
|
| 19 | 19 | }; |
|
| 20 | 20 | ||
| 46 | 46 | ||
| 47 | 47 | <PageLayout meta={meta}> |
|
| 48 | 48 | <div class="flex min-h-screen flex-col items-start justify-start gap-6"> |
|
| 49 | - | <h1 class="title">Library</h1> |
|
| 49 | + | <h1 class="title">/library</h1> |
|
| 50 | 50 | {error ? ( |
|
| 51 | 51 | <p class="text-red-400 text-sm">Could not load books: {error}</p> |
|
| 52 | 52 | ) : books.length === 0 ? ( |
|
| 3 | 3 | import { SOCIAL_ITEMS } from "@/data/constants"; |
|
| 4 | 4 | ||
| 5 | 5 | const meta = { |
|
| 6 | - | title: "Links", |
|
| 6 | + | title: "/links", |
|
| 7 | 7 | description: "Connect with me on all the things", |
|
| 8 | 8 | }; |
|
| 9 | 9 | --- |
|
| 10 | 10 | ||
| 11 | 11 | <PageLayout meta={meta}> |
|
| 12 | 12 | <div class="space-y-6"> |
|
| 13 | - | <h1 class="title mb-6">Links</h1> |
|
| 13 | + | <h1 class="title mb-6">/links</h1> |
|
| 14 | 14 | <ul class="flex flex-col items-start gap-x-4 sm:flex-initial"> |
|
| 15 | 15 | { |
|
| 16 | 16 | SOCIAL_ITEMS.map((link) => ( |
| 3 | 3 | import Murmurations from "@/components/page/Murmurations.astro"; |
|
| 4 | 4 | ||
| 5 | 5 | const meta = { |
|
| 6 | - | title: "Murmurations", |
|
| 6 | + | title: "/murmurations", |
|
| 7 | 7 | description: "Birds, math, and poetry in motion", |
|
| 8 | 8 | }; |
|
| 9 | 9 | --- |
| 5 | 5 | import NowUpdates from "@/components/now/NowUpdates.astro"; |
|
| 6 | 6 | ||
| 7 | 7 | const meta = { |
|
| 8 | - | title: "Now", |
|
| 8 | + | title: "/now", |
|
| 9 | 9 | description: "What I'm up to recently", |
|
| 10 | 10 | }; |
|
| 11 | 11 | --- |
|
| 12 | 12 | <PageLayout meta={meta}> |
|
| 13 | 13 | <div class="space-y-6"> |
|
| 14 | - | <h1 class="title">Now</h1> |
|
| 14 | + | <h1 class="title">/now</h1> |
|
| 15 | 15 | <p>What I'm up to recently</p> |
|
| 16 | 16 | <ul class="list-disc pl-4 space-y-4"> |
|
| 17 | 17 | <li>Working as Senior Solutions Engineer at Stablecore</li> |
| 23 | 23 | const { page, uniqueTags } = Astro.props; |
|
| 24 | 24 | ||
| 25 | 25 | const meta = { |
|
| 26 | - | title: "Blog", |
|
| 26 | + | title: "/blog", |
|
| 27 | 27 | description: "Posts by Steve", |
|
| 28 | 28 | }; |
|
| 29 | 29 | ||
| 44 | 44 | --- |
|
| 45 | 45 | ||
| 46 | 46 | <PageLayout meta={meta}> |
|
| 47 | - | <h1 class="title mb-6">Blog</h1> |
|
| 47 | + | <h1 class="title mb-6">/blog</h1> |
|
| 48 | 48 | <div class="grid gap-y-16 sm:grid-cols-[3fr_1fr] sm:gap-x-8"> |
|
| 49 | 49 | <section aria-label="Blog post list"> |
|
| 50 | 50 | <ul class="space-y-8 text-left"> |
|
| 4 | 4 | import { projects } from "@/data/projects"; |
|
| 5 | 5 | ||
| 6 | 6 | const meta = { |
|
| 7 | - | title: "Projects", |
|
| 7 | + | title: "/projects", |
|
| 8 | 8 | description: "What I've worked on over the years", |
|
| 9 | 9 | }; |
|
| 10 | 10 | --- |
|
| 11 | 11 | ||
| 12 | 12 | <PageLayout meta={meta}> |
|
| 13 | 13 | <div class="flex min-h-screen flex-col items-start justify-start gap-6 max-w-none"> |
|
| 14 | - | <h1 class="title">Projects</h1> |
|
| 14 | + | <h1 class="title">/projects</h1> |
|
| 15 | 15 | {projects.map((project, index) => <ProjectCard content={project} index={index} />)} |
|
| 16 | 16 | </div> |
|
| 17 | 17 | </PageLayout> |
| 2 | 2 | import PageLayout from "@/layouts/Base.astro"; |
|
| 3 | 3 | ||
| 4 | 4 | const meta = { |
|
| 5 | - | title: "Soundboard", |
|
| 5 | + | title: "/soundboard", |
|
| 6 | 6 | description: "Click buttons. Hear sounds.", |
|
| 7 | 7 | }; |
|
| 8 | 8 | ||
| 18 | 18 | ||
| 19 | 19 | <PageLayout meta={meta}> |
|
| 20 | 20 | <div class="space-y-6"> |
|
| 21 | - | <h1 class="title mb-6">Soundboard</h1> |
|
| 21 | + | <h1 class="title mb-6">/soundboard</h1> |
|
| 22 | 22 | <div class="grid grid-cols-2 gap-4 sm:grid-cols-3"> |
|
| 23 | 23 | { |
|
| 24 | 24 | sounds.map((sound) => ( |
|
| 7 | 7 | const allTags = getUniqueTagsWithCount(allPosts); |
|
| 8 | 8 | ||
| 9 | 9 | const meta = { |
|
| 10 | - | title: "All Tags", |
|
| 10 | + | title: "/tags", |
|
| 11 | 11 | description: "All Tags from my blogs", |
|
| 12 | 12 | }; |
|
| 13 | 13 | --- |
| 3 | 3 | import { Content } from "../content/pages/uses.md"; |
|
| 4 | 4 | ||
| 5 | 5 | const meta = { |
|
| 6 | - | title: "Uses", |
|
| 6 | + | title: "/uses", |
|
| 7 | 7 | description: "Things I use every day", |
|
| 8 | 8 | }; |
|
| 9 | 9 | --- |
| 2 | 2 | import PageLayout from "@/layouts/Base.astro"; |
|
| 3 | 3 | ||
| 4 | 4 | const meta = { |
|
| 5 | - | title: "Videos", |
|
| 5 | + | title: "/videos", |
|
| 6 | 6 | description: "Video content made by Steve Simkins", |
|
| 7 | 7 | }; |
|
| 8 | 8 | ||
| 18 | 18 | ||
| 19 | 19 | <PageLayout meta={meta}> |
|
| 20 | 20 | <div class="space-y-6"> |
|
| 21 | - | <h1 class="title">Videos</h1> |
|
| 21 | + | <h1 class="title">/videos</h1> |
|
| 22 | 22 | <p>Here are some samples of video content I've produced to help users!</p> |
|
| 23 | 23 | { |
|
| 24 | 24 | videoIds.map((id) => ( |
|