Refactor
All checks were successful
Docker Deploy / build-and-push (push) Successful in 3m35s

This commit is contained in:
2025-06-12 01:13:07 -06:00
parent bfa3784f03
commit 324449dd59
13 changed files with 1141 additions and 796 deletions

246
src/config/data.ts Normal file
View File

@ -0,0 +1,246 @@
export interface Talk {
id: string;
name: string;
description: string;
link: string;
date?: string;
venue?: string;
}
export interface Project {
id: string;
name: string;
description: string;
link: string;
technologies?: string[];
status?: string;
}
export interface SocialLink {
id: string;
name: string;
url: string;
icon: string;
ariaLabel: string;
}
export interface TechLink {
id: string;
name: string;
url: string;
icon: string;
ariaLabel: string;
}
export interface NavigationItem {
id: string;
name: string;
path: string;
tooltip: string;
icon: string;
isActive?: (path: string) => boolean;
}
export const talks: Talk[] = [
{
id: "devedmonton-hateoas",
name: "Hypermedia as the engine of application state - An Introduction",
description: "A basic introduction to the concepts behind HATEOAS or Hypermedia as the engine of application state.",
link: "/files/DevEdmonton_Talk_HATEOAS.pdf",
venue: "Dev Edmonton Society",
},
];
export const projects: Project[] = [
{
id: "bluesky-pds-manager",
name: "BlueSky PDS Manager",
description: "A web-based BlueSky PDS Manager. Manage your invite codes and users with a simple web UI.",
link: "https://pdsman.atri.dad",
},
{
id: "pollo",
name: "Pollo",
description: "A dead-simple real-time voting tool.",
link: "https://git.atri.dad/atridad/pollo",
},
{
id: "goth-stack",
name: "GOTH Stack",
description: "🚀 A Web Application Template Powered by HTMX + Go + Tailwind 🚀",
link: "https://git.atri.dad/atridad/goth.stack",
},
{
id: "himbot",
name: "Himbot",
description: "A discord bot written in Go. Loosly named after my username online (HimbothySwaggins).",
link: "https://git.atri.dad/atridad/himbot",
},
{
id: "loadr",
name: "loadr",
description: "A lightweight REST load testing tool with robust support for different verbs, token auth, and performance reports.",
link: "https://git.atri.dad/atridad/loadr",
},
];
export const sections = {
resume: {
name: "Resume",
path: "/resume",
description: "Professional experience, skills, and background"
},
posts: {
name: "Blog Posts",
path: "/posts",
description: "Technical articles and thoughts"
},
talks: {
name: "Talks",
path: "/talks",
description: "Conference talks and presentations"
},
projects: {
name: "Projects",
path: "/projects",
description: "Personal and professional projects"
}
} as const;
export const socialLinks: SocialLink[] = [
{
id: "email",
name: "Email",
url: "mailto:me@atri.dad",
icon: "mdi:email",
ariaLabel: "Email me"
},
{
id: "rss",
name: "RSS Feed",
url: "/feed",
icon: "mdi:rss",
ariaLabel: "RSS Feed"
},
{
id: "gitea",
name: "Forgejo (Git)",
url: "https://git.atri.dad/atridad",
icon: "simple-icons:gitea",
ariaLabel: "Forgejo (Git)"
},
{
id: "bluesky",
name: "Bluesky",
url: "https://bsky.app/profile/atri.dad",
icon: "simple-icons:bluesky",
ariaLabel: "Bluesky Profile"
},
{
id: "spotify",
name: "Spotify",
url: "https://open.spotify.com/user/31pjwuuqwnn5zr7fnhfjjmi7c4bi?si=1be2bfdc844c4d85",
icon: "spotify", // Special component
ariaLabel: "Spotify Profile"
}
];
export const techLinks: TechLink[] = [
{
id: "react",
name: "React",
url: "https://react.dev/",
icon: "simple-icons:react",
ariaLabel: "React"
},
{
id: "typescript",
name: "TypeScript",
url: "https://www.typescriptlang.org/",
icon: "simple-icons:typescript",
ariaLabel: "TypeScript"
},
{
id: "astro",
name: "Astro",
url: "https://astro.build/",
icon: "simple-icons:astro",
ariaLabel: "Astro"
},
{
id: "go",
name: "Go",
url: "https://go.dev/",
icon: "simple-icons:go",
ariaLabel: "Go"
},
{
id: "postgresql",
name: "PostgreSQL",
url: "https://www.postgresql.org/",
icon: "simple-icons:postgresql",
ariaLabel: "PostgreSQL"
},
{
id: "redis",
name: "Redis",
url: "https://redis.io/",
icon: "simple-icons:redis",
ariaLabel: "Redis"
},
{
id: "docker",
name: "Docker",
url: "https://www.docker.com/",
icon: "simple-icons:docker",
ariaLabel: "Docker"
}
];
export const navigationItems: NavigationItem[] = [
{
id: "home",
name: "Home",
path: "/",
tooltip: "Home",
icon: "Home"
},
{
id: "posts",
name: "Posts",
path: "/posts",
tooltip: "Posts",
icon: "NotebookPen",
isActive: (path: string) => path.startsWith("/posts") || path.startsWith("/post/")
},
{
id: "resume",
name: "Resume",
path: "/resume",
tooltip: "Resume",
icon: "BriefcaseBusiness"
},
{
id: "projects",
name: "Projects",
path: "/projects",
tooltip: "Projects",
icon: "CodeXml",
isActive: (path: string) => path.startsWith("/projects")
},
{
id: "talks",
name: "Talks",
path: "/talks",
tooltip: "Talks",
icon: "Megaphone",
isActive: (path: string) => path.startsWith("/talks")
},
{
id: "terminal",
name: "Terminal",
path: "/terminal",
tooltip: "Terminal",
icon: "TerminalIcon"
}
];