import type { Metadata } from 'next'; import Link from 'next/link'; import { t } from '@/i18n'; import { routes } from '@/lib/site'; import { STORIES, storyChartCount, storyIndicators } from '@/lib/stories'; import { topicById } from '@/lib/topics'; import { PageHeader } from '@/components/explore/page-header'; import { JsonLd } from '@/components/platform/json-ld'; import { jsonLd } from '@/lib/seo'; export const revalidate = 3600; export const metadata: Metadata = { title: t('stories.title'), description: t('stories.description'), alternates: { canonical: routes.stories() }, openGraph: { title: `${t('stories.title')} — ${t('site.name')}`, description: t('stories.description'), url: routes.stories(), type: 'website' }, }; /** /stories — editorial index: one rule per story, standfirst, topics, chart count. */ export default function StoriesPage() { return ( <>
    {STORIES.map((s, i) => { const topics = s.topics.map((tp) => topicById(tp)?.short ?? tp); return (
  1. {String(i + 1).padStart(2, '0')} {s.title} {s.standfirst} {topics.join(' · ')} {t('stories.charts', { n: storyChartCount(s) })} {t('stories.minutes', { n: Math.max(2, Math.round(storyChartCount(s) * 0.8)) })} {storyIndicators(s).length === 1 ? t('stories.indicatorsOne') : t('stories.indicatorsN', { n: storyIndicators(s).length })}
  2. ); })}

{t('stories.methodText')}

); }