chore: migrate pages and media to be cms controlled.
This commit is contained in:
60
src/spa/pageRegistry.ts
Normal file
60
src/spa/pageRegistry.ts
Normal file
@@ -0,0 +1,60 @@
|
||||
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,
|
||||
})),
|
||||
]
|
||||
Reference in New Issue
Block a user