Files
blog-frontend-v2/src/pages/blogs/[blog_id].astro
passthem 4c5abe8b01
All checks were successful
continuous-integration/drone/push Build is passing
用 Markdoc 而非 Markdown 渲染博客,以在未来支持自定义元素
2026-03-27 17:06:03 +08:00

28 lines
708 B
Plaintext

---
import { getBlog } from '../../lib/apis/legacy/blog'
import BaseLayout from '../../layout/BaseLayout.astro'
import { MarkdocTreeRender } from '../../components/MarkdocRenderer.tsx'
import { toMarkdocTree } from '../../lib/markdoc'
export const prerender = false
const { blog_id = '' } = Astro.params
const blog_id_num = parseInt(blog_id)
if (isNaN(blog_id_num) || blog_id_num < 0) {
return Astro.redirect('/404')
}
const blogData = await getBlog(blog_id_num)
if (blogData === null) {
return Astro.redirect('/404')
}
const tree = await toMarkdocTree(blogData.content)
---
<!-- <BaseLayout set:html={blogRendered} /> -->
<BaseLayout>
<MarkdocTreeRender tree={tree} client:load />
</BaseLayout>