webapp/src/pages/[...slug].astro

23 lines
549 B
Plaintext
Raw Normal View History

2022-09-09 11:53:35 +00:00
---
import { ArticlePage } from '../components/Views/ArticlePage'
import Zine from '../layouts/zine.astro'
import { apiClient } from '../utils/apiClient'
2022-09-14 15:44:06 +00:00
2022-09-09 11:53:35 +00:00
const slug = Astro.params.slug as string
2022-09-13 09:59:04 +00:00
if (slug.includes('/') || slug.includes('.map')) {
return Astro.redirect('/404')
}
const article = await apiClient.getArticle({ slug })
if (!article) {
return Astro.redirect('/404')
2022-09-09 11:53:35 +00:00
}
2022-09-13 09:59:04 +00:00
Astro.response.headers.set('Cache-Control', 's-maxage=1, stale-while-revalidate')
2022-09-09 11:53:35 +00:00
---
<Zine>
<ArticlePage slug={slug} article={article} client:idle />
</Zine>