import type { Talk, Project, SocialLink, TechLink, NavigationItem, PersonalInfo, HomepageSections, SiteConfig, ResumeConfig, } from "../types"; // Import Lucide Icons import { Home, Newspaper, FileUser, CodeXml, Terminal as TerminalIcon, Megaphone, } from "lucide-preact"; import logo from "../assets/logo_real.webp"; import resumeToml from "../assets/resume.toml?raw"; // Astro Icon references const EMAIL_ICON = "mdi:email"; const RSS_ICON = "mdi:rss"; const GITEA_ICON = "simple-icons:gitea"; const BLUESKY_ICON = "simple-icons:bluesky"; const REACT_ICON = "simple-icons:react"; const TYPESCRIPT_ICON = "simple-icons:typescript"; const ASTRO_ICON = "simple-icons:astro"; const GO_ICON = "simple-icons:go"; const POSTGRESQL_ICON = "simple-icons:postgresql"; const REDIS_ICON = "simple-icons:redis"; const DOCKER_ICON = "simple-icons:docker"; const KOTLIN_ICON = "simple-icons:kotlin"; const SWIFT_ICON = "simple-icons:swift"; const FLUTTER_ICON = "simple-icons:flutter"; // Personal Information Configuration export const personalInfo: PersonalInfo = { name: "Atridad Lahiji", profileImage: { src: logo, alt: "A drawing of Atridad Lahiji by Shelze!", }, tagline: "Researcher, Full-Stack Developer, and IT Professional.", description: "Researcher, Full-Stack Developer, and IT Professional.", }; // Homepage Section Configuration export const homepageSections: HomepageSections = { socialLinks: { title: "Places I Exist:", description: "Find me across the web", }, techStack: { title: "Technologies I Use:", description: "Technologies and tools I work with", }, }; // Resume Configuration export const resumeConfig: ResumeConfig = { tomlFile: resumeToml, layout: { leftColumn: ["experience", "volunteer"], rightColumn: ["skills", "education", "awards"], }, sections: { enabled: [ "summary", "experience", "education", "skills", "volunteer", "awards", ], summary: { title: "Summary", enabled: true, }, experience: { title: "Professional Experience", enabled: true, }, education: { title: "Education", enabled: true, }, skills: { title: "Skills", enabled: true, }, volunteer: { title: "Volunteer Work", enabled: true, }, awards: { title: "Awards", enabled: true, }, }, }; // Site Metadata Configuration export const siteConfig: SiteConfig = { personal: personalInfo, homepage: homepageSections, resume: resumeConfig, meta: { title: "Atridad Lahiji", description: "Personal website of Atridad Lahiji - Researcher, Full-Stack Developer, and IT Professional", url: "https://atri.dad", author: "Atridad Lahiji", }, }; 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", }, ]; export const projects: Project[] = [ { id: "openclimb", name: "OpenClimb", description: "Jeckpack Compose based Rock Climbing Tracker", link: "https://git.atri.dad/atridad/OpenClimb" }, { id: "mealient", name: "Mealient (Fork of project by Kirill Kamakin)", description: "An Android client for a self-hosted recipe manager Mealie.", link: "https://git.atri.dad/atridad/Mealient", }, { id: "magiccounter", name: "MagicCounter", description: "Jeckpack Compose based Magic the Gathering Health Tracker", link: "https://git.atri.dad/atridad/MagicCounter", }, { 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: EMAIL_ICON, ariaLabel: "Email me", }, { id: "rss", name: "RSS Feed", url: "/feed", icon: RSS_ICON, ariaLabel: "RSS Feed", }, { id: "gitea", name: "Forgejo (Git)", url: "https://git.atri.dad/atridad", icon: GITEA_ICON, ariaLabel: "Forgejo (Git)", }, { id: "bluesky", name: "Bluesky", url: "https://bsky.app/profile/atri.dad", icon: BLUESKY_ICON, ariaLabel: "Bluesky Profile", }, ]; export const techLinks: TechLink[] = [ { id: "react", name: "React", url: "https://react.dev/", icon: REACT_ICON, ariaLabel: "React", }, { id: "typescript", name: "TypeScript", url: "https://www.typescriptlang.org/", icon: TYPESCRIPT_ICON, ariaLabel: "TypeScript", }, { id: "astro", name: "Astro", url: "https://astro.build/", icon: ASTRO_ICON, ariaLabel: "Astro", }, { id: "go", name: "Go", url: "https://go.dev/", icon: GO_ICON, ariaLabel: "Go", }, { id: "postgresql", name: "PostgreSQL", url: "https://www.postgresql.org/", icon: POSTGRESQL_ICON, ariaLabel: "PostgreSQL", }, { id: "redis", name: "Redis", url: "https://redis.io/", icon: REDIS_ICON, ariaLabel: "Redis", }, { id: "docker", name: "Docker", url: "https://www.docker.com/", icon: DOCKER_ICON, ariaLabel: "Docker", }, { id: "kotlin", name: "Kotlin", url: "https://kotlinlang.org/", icon: KOTLIN_ICON, ariaLabel: "Kotlin", }, { id: "swift", name: "Swift", url: "https://www.swift.org/", icon: SWIFT_ICON, ariaLabel: "Swift", }, { id: "flutter", name: "Flutter", url: "https://flutter.dev", icon: FLUTTER_ICON, ariaLabel: "Flutter", }, ]; export const navigationItems: NavigationItem[] = [ { id: "home", name: "Home", path: "/", tooltip: "Home", icon: Home, enabled: true, }, { id: "posts", name: "Posts", path: "/posts", tooltip: "Posts", icon: Newspaper, enabled: true, isActive: (path: string) => path.startsWith("/posts") || path.startsWith("/post/"), }, { id: "resume", name: "Resume", path: "/resume", tooltip: "Resume", icon: FileUser, enabled: !!(resumeConfig.tomlFile && resumeConfig.tomlFile.trim()), }, { id: "projects", name: "Projects", path: "/projects", tooltip: "Projects", icon: CodeXml, enabled: true, isActive: (path: string) => path.startsWith("/projects"), }, { id: "talks", name: "Talks", path: "/talks", tooltip: "Talks", icon: Megaphone, enabled: true, isActive: (path: string) => path.startsWith("/talks"), }, ];