Made a baseline working carousel, timeline, and started flushing out content for primary spacex experience

This commit is contained in:
2025-11-06 01:21:27 -08:00
parent 6f728ad146
commit d6e75ae2ea
26 changed files with 638 additions and 100 deletions

View File

@@ -1,87 +1,87 @@
import type {navLink} from "@interfaces/site-layout.ts"
export const siteLayout: navLink[] = [
{title: "About", path: ""},
{navText: "About", path: ""},
{
title: "Experiences",
navText: "Experiences",
path: "experience",
children: [
{
title: "SpaceX",
navText: "SpaceX",
path: "spacex",
children: [
{
title: "Hardware Test Engineer I/II",
navText: "Hardware Test Engineer I/II",
path: "hardware-test-engineer-i-ii"
},
{
title: "Avionics Test Engineering Internship",
navText: "Avionics Test Engineering Internship",
path: "avionics-test-engineering-internship"
}
]
},
{
title: "OSU CEOAS",
navText: "OSU CEOAS",
path: "osu-ceoas-ocean-mixing-group",
children: [
{
title: "Robotics Oceanographic Surface Sampler",
navText: "Robotics Oceanographic Surface Sampler",
path: "robotic-oceanographic-surface-sampler",
},
{
title: "LeConte Glacier Deployments",
navText: "LeConte Glacier Deployments",
path: "leconte-glacier-deployments",
}
]
},
{
title: "OSU SARL",
navText: "OSU SARL",
path: "osu-sinnhuber-aquatic-research-laboratory",
children: [
{
title: "Team Lead",
navText: "Team Lead",
path: "team-lead",
},
{
title: "Zebrafish Embryo Pick and Plate",
navText: "Zebrafish Embryo Pick and Plate",
path: "zebrafish-embryo-pick-and-plate",
},
{
title: "Shuttlebox Behavior System",
navText: "Shuttlebox Behavior System",
path: "shuttlebox-behavior-system",
},
{
title: "Dechorionator",
navText: "Dechorionator",
path: "dechorionator",
},
{
title: "Denso Embryo Pick and Plate",
navText: "Denso Embryo Pick and Plate",
path: "denso-embryo-pick-and-plate",
},
{
title: "ZScan Processor",
navText: "ZScan Processor",
path: "zscan-processor",
}
]
},
{
title: "OSU Robotics Club",
navText: "OSU Robotics Club",
path: "osu-robotics-club",
children: [
{
title: "Club Officer",
navText: "Club Officer",
path: "club-officer",
},
{
title: "Mars Rover Software Team Lead",
navText: "Mars Rover Software Team Lead",
path: "mars-rover-software-team-lead",
},
{
title: "Mars Rover Emergency Software Team Lead",
navText: "Mars Rover Emergency Software Team Lead",
path: "mars-rover-emergency-software-team-lead",
},
{
title: "Mars Rover Electrical Team Lead",
navText: "Mars Rover Electrical Team Lead",
path: "mars-rover-electrical-team-lead",
}
]
@@ -89,63 +89,85 @@ export const siteLayout: navLink[] = [
]
},
{
title: "Hobbies",
navText: "Hobbies",
path: "hobby",
children: [
{
title: "Homelab", path: "homelab",
navText: "Homelab", path: "homelab",
children: [
{title: "Home Server Rack", path: "home-server-rack"},
{title: "Offsite Backup Rack", path: "offsite-backup-rack"},
{title: "Kubernetes Cluster", path: "kubernetes-cluster"},
{title: "Home Automation", path: "home-automation"},
{navText: "Home Server Rack", path: "home-server-rack"},
{navText: "Offsite Backup Rack", path: "offsite-backup-rack"},
// {title: "Kubernetes Cluster", path: "kubernetes-cluster"},
{navText: "Home Automation", path: "home-automation"},
]
},
{
title: "Motorcycling",
navText: "Motorcycling",
path: "motorcycling",
children: [
{title: "Lineup", path: "lineup"},
{
title: "Custom Accessories",
path: "custom-accessories",
children: [
{title: "Chubby Buttons 2 Mount", path: "chubby-buttons-2-mount"},
]
},
{
title: "Trips",
path: "trips",
children: [
{title: "2025-08 | Alaska ", path: "2025-08-alaska"},
{title: "2024-10 | Norway ", path: "2024-10-norway"}
]
},
{navText: "Lineup", path: "lineup"},
// {
// title: "Custom Accessories",
// path: "custom-accessories",
// children: [
// {title: "Chubby Buttons 2 Mount", path: "chubby-buttons-2-mount"},
// ]
// },
// {
// title: "Trips",
// path: "trips",
// children: [
// {title: "2025-08 | Alaska ", path: "2025-08-alaska"},
// {title: "2024-10 | Norway ", path: "2024-10-norway"}
// ]
// },
]
},
{
title: "Homelab", path: "homelab",
children: [
{title: "Home Server Rack", path: "home-server-rack"},
{title: "Offsite Backup Rack", path: "offsite-backup-rack"},
{title: "Kubernetes Cluster", path: "kubernetes-cluster"},
{title: "Home Automation", path: "home-automation"},
]
},
{title: "NixOS", path: "nixos"},
{title: "Body Mods", path: "body-mods"},
// {
// title: "Projects", path: "projects",
// children: [
// {title: "Shed Solar", path: "shed-solar"},
// {title: "OSSM Overkill Edition", path: "ossm-overkill-edition"},
// ]
// },
// {title: "NixOS", path: "nixos"},
// {title: "Body Mods", path: "body-mods"},
]
},
{
title: "Resumes",
navText: "Resumes",
path: "resume",
children: [
{title: "2025-11-10 | Complete CV", path: "2025-11-10-complete-cv"},
{title: "2025-11-10 | Infrastructure Engineer", path: "2025-11-10-infrastructure-engineer"},
{title: "2019-07-01 | Hardware Test Engineer", path: "2019-07-01-hardware-test-engineer"},
// {title: "2025-11-10 | Complete CV", path: "2025-11-10-complete-cv"},
{navText: "2025-11-10 | Infrastructure Engineer", path: "2025-11-10-infrastructure-engineer"},
{navText: "2019-07-01 | Hardware Test Engineer", path: "2019-07-01-hardware-test-engineer"},
]
},
{title: "Github", pubpath: "https://github.com/caperren"},
{title: "LinkedIn", pubpath: "https://www.linkedin.com/in/caperren/"}
]
{navText: "Github", pubpath: "https://github.com/caperren"},
{navText: "LinkedIn", pubpath: "https://www.linkedin.com/in/caperren/"}
]
export const pathToMetadata = (path: string): navLink => {
const paths = path.split("/").filter((entry) => entry);
let currentEntries: navLink[] = siteLayout;
let foundEntry: navLink | undefined;
for (const path of paths) {
for (const currentEntry of currentEntries) {
if (currentEntry.path === path) {
foundEntry = currentEntry;
if (foundEntry.children && foundEntry.children.length > 0) {
currentEntries = foundEntry.children;
}
}
}
}
if (foundEntry === undefined) {
throw new Error(`${path} not found in site layout!`);
}
return foundEntry;
}