This commit is contained in:
246
src/config/data.ts
Normal file
246
src/config/data.ts
Normal 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"
|
||||
}
|
||||
];
|
Reference in New Issue
Block a user