2022-09-09 11:53:35 +00:00
|
|
|
---
|
2022-09-22 09:37:49 +00:00
|
|
|
import { Root } from '../components/Root'
|
2022-09-09 11:53:35 +00:00
|
|
|
import Zine from '../layouts/zine.astro'
|
|
|
|
import { apiClient } from '../utils/apiClient'
|
2022-09-14 15:44:06 +00:00
|
|
|
|
2022-09-22 09:37:49 +00:00
|
|
|
const slug = Astro.params.slug?.toString() || ''
|
2022-09-09 11:53:35 +00:00
|
|
|
|
2022-09-13 09:59:04 +00:00
|
|
|
if (slug.includes('/') || slug.includes('.map')) {
|
|
|
|
return Astro.redirect('/404')
|
|
|
|
}
|
|
|
|
|
|
|
|
const article = await apiClient.getArticle({ slug })
|
2022-09-22 09:37:49 +00:00
|
|
|
|
2022-09-13 09:59:04 +00:00
|
|
|
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>
|
2022-09-22 09:37:49 +00:00
|
|
|
<Root article={article} client:load />
|
2022-09-09 11:53:35 +00:00
|
|
|
</Zine>
|