Files
Website/src/lib/config/navigation.ts
2025-11-29 19:05:54 +00:00

73 lines
2.5 KiB
TypeScript

import { user, skills } from './user';
// ============================================================================
// NAVIGATION
// ============================================================================
export const navigation = [
{ name: 'home', path: '/', icon: '~' },
{ name: 'portfolio', path: '/portfolio', icon: '📁' },
// { name: 'models', path: '/models', icon: '🎨' },
{ name: 'projects', path: '/projects', icon: '🏆' },
// { name: 'components', path: '/components', icon: '🧩' },
{ name: 'blog', path: 'https://blog.sirblob.co', icon: '📝', external: true }
];
// ============================================================================
// SITE METADATA
// ============================================================================
export const site = {
title: `${user.displayname} | Portfolio`,
description: `${user.title} - ${user.bio}`,
keywords: ['developer', 'portfolio', 'programming', ...skills.languages, ...skills.frameworks],
ogImage: '/og-image.png',
twitterHandle: '@yourusername'
};
// ============================================================================
// PAGE META (per-route)
// ============================================================================
export interface PageMeta {
title: string;
description?: string;
icon?: string; // Iconify id or path to an image (e.g. 'mdi:home' or '/icons/home.svg')
keywords?: string[];
ogImage?: string;
}
// Map route => meta. Use route paths as keys (e.g. '/', '/portfolio')
export const pageMeta: Record<string, PageMeta> = {
'/': {
title: `${user.displayname} — Home`,
description: `Home — ${user.title} portfolio and projects.`,
icon: 'mdi:home',
keywords: ['home', 'portfolio', 'about']
},
'/portfolio': {
title: `${user.displayname} — Portfolio`,
description: 'Selected projects, highlights and case studies.',
icon: 'mdi:folder-multiple',
keywords: ['projects', 'portfolio', 'showcase']
},
'/models': {
title: `${user.displayname} — 3D Models`,
description: 'A curated collection of 3D models and previews.',
icon: 'mdi:cube-outline',
keywords: ['3d', 'models', 'glb', 'gltf']
},
'/projects': {
title: `${user.displayname} — Projects`,
description: 'Hackathon projects, demos and awards.',
icon: 'mdi:trophy',
keywords: ['hackathon', 'projects', 'events']
},
'/components': {
title: `${user.displayname} — Components`,
description: 'Terminal UI components showcase and documentation.',
icon: 'mdi:puzzle',
keywords: ['components', 'ui', 'terminal', 'tui']
}
};