Website Update
This commit is contained in:
+29
-29
@@ -1,20 +1,20 @@
|
||||
import type { TerminalLine } from '$lib/components/tui/types';
|
||||
import { user } from '$lib/config';
|
||||
|
||||
const artist = [
|
||||
{
|
||||
name: 'Noah Floersch',
|
||||
url: 'https://music.youtube.com/channel/UCgPjhKqPg5cPxErhqnoPlWg?si=B7GEz2QMNtrgnAbz'
|
||||
},
|
||||
{
|
||||
name: 'Laufey',
|
||||
url: 'https://music.youtube.com/channel/UCJtROTPxo3qnEzww8JyDxuA?si=WwgYFkoccnXtJ6Im'
|
||||
},
|
||||
{
|
||||
name: 'Tate McRae',
|
||||
url: 'https://music.youtube.com/channel/UCz86IA7ooUetFnUGa_YlsVw?si=A1t0-hLHswhbEG0U'
|
||||
}
|
||||
]
|
||||
// const artist = [
|
||||
// {
|
||||
// name: 'Noah Floersch',
|
||||
// url: 'https://music.youtube.com/channel/UCgPjhKqPg5cPxErhqnoPlWg?si=B7GEz2QMNtrgnAbz'
|
||||
// },
|
||||
// {
|
||||
// name: 'Laufey',
|
||||
// url: 'https://music.youtube.com/channel/UCJtROTPxo3qnEzww8JyDxuA?si=WwgYFkoccnXtJ6Im'
|
||||
// },
|
||||
// {
|
||||
// name: 'Tate McRae',
|
||||
// url: 'https://music.youtube.com/channel/UCz86IA7ooUetFnUGa_YlsVw?si=A1t0-hLHswhbEG0U'
|
||||
// }
|
||||
// ]
|
||||
|
||||
const hobbies = [
|
||||
{
|
||||
@@ -152,7 +152,7 @@ export const lines: TerminalLine[] = [
|
||||
{ type: 'link', href: "/about#games", content: `(&bg-orange, black, bold)Games(&)`, inline: true },
|
||||
{ type: 'link', href: "/about#shows", content: `(&bg-yellow, black, bold)Shows(&)`, inline: true },
|
||||
{ type: 'link', href: "/about#movies", content: `(&bg-green, black, bold)Movies(&)`, inline: true },
|
||||
{ type: 'link', href: "/about#music", content: `(&bg-accent, black, bold)Music(&)`, inline: true },
|
||||
// { type: 'link', href: "/about#music", content: `(&bg-accent, black, bold)Music(&)`, inline: true },
|
||||
]
|
||||
},
|
||||
|
||||
@@ -240,22 +240,22 @@ export const lines: TerminalLine[] = [
|
||||
|
||||
{ type: 'blank', content: '' },
|
||||
|
||||
{ type: 'divider', content: 'Music Recommendations', id: 'music' },
|
||||
// { type: 'divider', content: 'Music Recommendations', id: 'music' },
|
||||
|
||||
{
|
||||
type: 'group',
|
||||
content: '',
|
||||
groupDirection: 'row',
|
||||
children: [
|
||||
{ type: 'output', content: '(&accent)Artists:(&) ', inline: true },
|
||||
...artist.flatMap((a, i): TerminalLine[] => {
|
||||
const item: TerminalLine = { type: 'link', content: `(&primary)${a.name}(&)`, href: a.url, inline: true };
|
||||
return i < artist.length - 1 ? [item, { type: 'output', content: ' (&muted)•(&) ', inline: true }] : [item];
|
||||
}),
|
||||
]
|
||||
},
|
||||
// {
|
||||
// type: 'group',
|
||||
// content: '',
|
||||
// groupDirection: 'row',
|
||||
// children: [
|
||||
// { type: 'output', content: '(&accent)Artists:(&) ', inline: true },
|
||||
// ...artist.flatMap((a, i): TerminalLine[] => {
|
||||
// const item: TerminalLine = { type: 'link', content: `(&primary)${a.name}(&)`, href: a.url, inline: true };
|
||||
// return i < artist.length - 1 ? [item, { type: 'output', content: ' (&muted)•(&) ', inline: true }] : [item];
|
||||
// }),
|
||||
// ]
|
||||
// },
|
||||
|
||||
{ type: 'blank', content: '' },
|
||||
// { type: 'blank', content: '' },
|
||||
// {
|
||||
// type: 'card',
|
||||
// id: 'music-player',
|
||||
|
||||
+19
-44
@@ -1,6 +1,22 @@
|
||||
|
||||
import type { TerminalLine } from '$lib/components/tui/types';
|
||||
import { user, skills, projects } from '$lib/config';
|
||||
import { user, skills, openSourceProjects } from '$lib/config';
|
||||
|
||||
const openSourceElements:TerminalLine[] = [];
|
||||
|
||||
openSourceProjects.forEach(project => {
|
||||
openSourceElements.push(
|
||||
{
|
||||
type: 'output',
|
||||
content: `(&orange,bold)▸ ${project.name}(&) - ${project.description}`
|
||||
},
|
||||
{
|
||||
type: 'output',
|
||||
content: ` ${project.tech.map(tech => `(&blue)${tech}(&)`).join(' (&muted)•(&) ')}`
|
||||
},
|
||||
{ type: 'blank', content: '' }
|
||||
);
|
||||
});
|
||||
|
||||
export const lines: TerminalLine[] = [
|
||||
// Header command
|
||||
@@ -25,6 +41,7 @@ export const lines: TerminalLine[] = [
|
||||
]
|
||||
},
|
||||
|
||||
{ type: 'blank', content: '' },
|
||||
{ type: 'blank', content: '' },
|
||||
{
|
||||
type: 'group', content: '', groupAlign: 'start', groupGap: '1rem',
|
||||
@@ -86,49 +103,7 @@ export const lines: TerminalLine[] = [
|
||||
|
||||
{ type: 'divider', content: 'PROJECTS', id: 'projects' },
|
||||
|
||||
// Featured projects with buttons
|
||||
...projects.filter(p => p.featured).flatMap(project => [
|
||||
{ type: 'header' as const, content: `(&bold)${project.name}(&)` },
|
||||
{ type: 'output' as const, content: `(&muted)${project.description}(&)` },
|
||||
{ type: 'info' as const, content: `(&info)TechStack:(&) (&magenta)${project.tech.join(', ')}(&)` },
|
||||
...(project.github ? [{
|
||||
type: 'button' as const,
|
||||
content: 'View on GitHub',
|
||||
icon: 'mdi:github',
|
||||
style: 'accent' as const,
|
||||
href: project.github
|
||||
}] : []),
|
||||
...(project.live ? [{
|
||||
type: 'button' as const,
|
||||
content: 'View Live Demo',
|
||||
icon: 'mdi:open-in-new',
|
||||
style: 'accent' as const,
|
||||
href: project.live
|
||||
}] : []),
|
||||
{ type: 'blank' as const, content: '' }
|
||||
]),
|
||||
|
||||
// Other projects
|
||||
...projects.filter(p => !p.featured).flatMap(project => [
|
||||
{ type: 'success' as const, content: `(&success)${project.name}(&)` },
|
||||
{ type: 'output' as const, content: `(&muted)${project.description}(&)` },
|
||||
{ type: 'info' as const, content: `(&info)TechStack:(&) (&magenta)${project.tech.join(', ')}(&)` },
|
||||
...(project.github ? [{
|
||||
type: 'button' as const,
|
||||
content: 'View on GitHub',
|
||||
icon: 'mdi:github',
|
||||
style: 'accent' as const,
|
||||
href: project.github
|
||||
}] : []),
|
||||
...(project.live ? [{
|
||||
type: 'button' as const,
|
||||
content: 'View Live',
|
||||
icon: 'mdi:open-in-new',
|
||||
style: 'accent' as const,
|
||||
href: project.live
|
||||
}] : []),
|
||||
{ type: 'blank' as const, content: '' }
|
||||
]),
|
||||
...openSourceElements,
|
||||
|
||||
// End
|
||||
{ type: 'success', content: `(&success)Portfolio loaded successfully!(&)` }
|
||||
|
||||
+67
-16
@@ -1,16 +1,67 @@
|
||||
import type { TerminalLine } from '$lib/components/tui/types';
|
||||
import { sortedCards, projects } from '$lib/config';
|
||||
import { sortedCards, packageProjects, openSourceProjects } from '$lib/config';
|
||||
|
||||
const totalHackathons = sortedCards.length;
|
||||
const totalAwards = sortedCards.filter(c => c.awards && c.awards.length > 0).length;
|
||||
const featuredCount = sortedCards.filter(c => c.featured).length;
|
||||
|
||||
|
||||
const openSourceElements:TerminalLine[] = [];
|
||||
|
||||
openSourceProjects.forEach(project => {
|
||||
openSourceElements.push(
|
||||
{
|
||||
type: 'card',
|
||||
content: '',
|
||||
cardTitle: project.name,
|
||||
// cardFooter: '' + (project.github ? `(&muted)GitHub:(&) (&link)${project.github}(&)` : ''),
|
||||
image: project.image || '/images/placeholder.png',
|
||||
imageAlt: 'Placeholder image',
|
||||
children: [
|
||||
...project.tech.map(tech => ({
|
||||
type: 'output' as const,
|
||||
content: `(&bg-blue, black)${tech}(&)`,
|
||||
inline: true
|
||||
})),
|
||||
{
|
||||
type: 'button',
|
||||
content: 'View on GitHub',
|
||||
href: project.github || 'https://github.com/',
|
||||
icon: 'mdi:github',
|
||||
style: 'accent',
|
||||
},
|
||||
project.live ? {
|
||||
type: 'button',
|
||||
content: 'View Live Demo',
|
||||
href: project.live,
|
||||
icon: 'mdi:open-in-new',
|
||||
style: 'primary'
|
||||
} : { type: 'blank', content: '' }
|
||||
],
|
||||
inline: true,
|
||||
display: 'flex',
|
||||
cardWidth: '275px'
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
// Build the terminal lines with card grid
|
||||
export const lines: TerminalLine[] = [
|
||||
{ type: 'command', content: 'ls ~/projects' },
|
||||
{ type: 'divider', content: 'PROJECTS' },
|
||||
...projects.filter(p => p.featured).flatMap(project => [
|
||||
{ type: 'header' as const, content: `(&bold)${project.name}(&)` },
|
||||
{ type: 'command' as const, content: 'ls ~/projects' },
|
||||
{
|
||||
type: 'group' as const, content: '', groupAlign: 'start', groupGap: '1rem',
|
||||
children: [
|
||||
{ type: 'link' as const, href: "/projects#opensource", content: `(&bg-blue,black)Open Scourced(&)`, inline: true },
|
||||
{ type: 'link' as const, href: "/projects#packages", content: `(&bg-orange,black)Packages(&)`, inline: true },
|
||||
{ type: 'link' as const, href: "/projects#hackathons", content: `(&bg-green,black)Hackathons(&)`, inline: true },
|
||||
]
|
||||
},
|
||||
{ type: 'divider' as const, content: 'OPEN SOURCED', id: 'opensource' },
|
||||
...openSourceElements,
|
||||
{ type: 'divider' as const, content: 'PACKAGES', id: 'packages' },
|
||||
...packageProjects.filter(p => p.featured).flatMap(project => [
|
||||
{ type: 'header' as const, content: `(&orange)${project.name}(&)` },
|
||||
{ type: 'output' as const, content: `(&muted)${project.description}(&)` },
|
||||
{ type: 'info' as const, content: `(&info)TechStack:(&) (&magenta)${project.tech.join(', ')}(&)` },
|
||||
...(project.github ? [{
|
||||
@@ -29,8 +80,8 @@ export const lines: TerminalLine[] = [
|
||||
}] : []),
|
||||
{ type: 'blank' as const, content: '' }
|
||||
]),
|
||||
...projects.filter(p => !p.featured).flatMap(project => [
|
||||
{ type: 'success' as const, content: `(&success)${project.name}(&)` },
|
||||
...packageProjects.filter(p => !p.featured).flatMap(project => [
|
||||
{ type: 'header' as const, content: `${project.name}` },
|
||||
{ type: 'output' as const, content: `(&muted)${project.description}(&)` },
|
||||
{ type: 'info' as const, content: `(&info)TechStack:(&) (&magenta)${project.tech.join(', ')}(&)` },
|
||||
...(project.github ? [{
|
||||
@@ -49,13 +100,13 @@ export const lines: TerminalLine[] = [
|
||||
}] : []),
|
||||
{ type: 'blank' as const, content: '' }
|
||||
]),
|
||||
{ type: 'divider', content: 'HACKATHONS' },
|
||||
{ type: 'command', content: 'ls ~/hackathons --grid' },
|
||||
{ type: 'blank', content: '' },
|
||||
{ type: 'header', content: `Hackathon Journey` },
|
||||
{ type: 'output', content: `(&muted)Total:(&) (&primary)${totalHackathons}(&) (&muted)| Awards:(&) (&yellow)${totalAwards}(&) (&muted)| Featured:(&) (&accent)${featuredCount}(&)` },
|
||||
{ type: 'blank', content: '' },
|
||||
{ type: 'cardgrid', content: '', cards: sortedCards },
|
||||
{ type: 'blank', content: '' },
|
||||
{ type: 'success', content: `(&success)Ready for the next hackathon! 🚀(&)` },
|
||||
{ type: 'divider' as const, content: 'HACKATHONS', id: 'hackathons' },
|
||||
// { type: 'command', content: 'ls ~/hackathons --grid' },
|
||||
{ type: 'blank' as const, content: '' },
|
||||
{ type: 'header' as const, content: `Hackathon Journey` },
|
||||
{ type: 'output' as const, content: `(&muted)Total:(&) (&primary)${totalHackathons}(&) (&muted)| Awards:(&) (&yellow)${totalAwards}(&) (&muted)| Featured:(&) (&accent)${featuredCount}(&)` },
|
||||
{ type: 'blank' as const, content: '' },
|
||||
{ type: 'cardgrid' as const, content: '', cards: sortedCards },
|
||||
{ type: 'blank' as const, content: '' },
|
||||
{ type: 'success' as const, content: `(&success)Ready for the next hackathon! 🚀(&)` },
|
||||
];
|
||||
Reference in New Issue
Block a user