61 lines
2.0 KiB
TypeScript
61 lines
2.0 KiB
TypeScript
import { articles } from './data/blog'
|
|
import { events } from './data/events'
|
|
import { WINNERS } from './data/winners'
|
|
|
|
export type SpaPageRegistryEntry = {
|
|
path: string
|
|
slug: string
|
|
title: string
|
|
description?: string
|
|
source: 'static' | 'winner' | 'event' | 'blog'
|
|
}
|
|
|
|
const staticPages: SpaPageRegistryEntry[] = [
|
|
{ path: '/', slug: 'startseite', title: 'Startseite', source: 'static' },
|
|
{ path: '/teilnahme', slug: 'teilnahme', title: 'Teilnahme', source: 'static' },
|
|
{ path: '/preistraeger', slug: 'preistraeger', title: 'Preisträger', source: 'static' },
|
|
{ path: '/der-bmp', slug: 'der-bmp', title: 'Der BMP', source: 'static' },
|
|
{ path: '/netzwerk', slug: 'netzwerk', title: 'Netzwerk', source: 'static' },
|
|
{ path: '/presse', slug: 'presse', title: 'Presse', source: 'static' },
|
|
{ path: '/kontakt', slug: 'kontakt', title: 'Kontakt', source: 'static' },
|
|
{
|
|
path: '/formular-hochladen',
|
|
slug: 'formular-hochladen',
|
|
title: 'Formular hochladen',
|
|
source: 'static',
|
|
},
|
|
{
|
|
path: '/mitglied-werden',
|
|
slug: 'mitglied-werden',
|
|
title: 'Mitglied werden',
|
|
source: 'static',
|
|
},
|
|
{ path: '/datenschutz', slug: 'datenschutz', title: 'Datenschutz', source: 'static' },
|
|
{ path: '/impressum', slug: 'impressum', title: 'Impressum', source: 'static' },
|
|
]
|
|
|
|
export const spaPages: SpaPageRegistryEntry[] = [
|
|
...staticPages,
|
|
...WINNERS.map((winner) => ({
|
|
path: `/preistraeger/${winner.slug}`,
|
|
slug: `preistraeger-${winner.slug}`,
|
|
title: winner.name,
|
|
description: winner.shortDesc,
|
|
source: 'winner' as const,
|
|
})),
|
|
...events.map((event) => ({
|
|
path: `/presse/events/${event.slug}`,
|
|
slug: `presse-events-${event.slug}`,
|
|
title: event.title,
|
|
description: event.description,
|
|
source: 'event' as const,
|
|
})),
|
|
...articles.map((article) => ({
|
|
path: `/presse/blog/${article.slug}`,
|
|
slug: `presse-blog-${article.slug}`,
|
|
title: article.title,
|
|
description: article.excerpt,
|
|
source: 'blog' as const,
|
|
})),
|
|
]
|