Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/danielroe/roe.dev. This is the code and content for my personal website, built in Nuxt. roe.dev
Something went wrong. Try again.
879 B · 24 lines
TypeScript
12345678910111213141516171819202122232425import { CalSchedule, MarkdownDocument, ProseA, ProseH2, ProseH3, ProseImg, ProseTh, SocialPost } from '#components'import { blogBodyLoaders } from '#build/markdown/blog/index.mjs'import { pageBodyLoaders } from '#build/markdown/page/index.mjs'
const components = { CalSchedule, ProseA, ProseH2, ProseH3, ProseImg, ProseTh, SocialPost }
export default defineComponent({ props: { collection: { type: String as () => 'page' | 'blog', required: true }, path: { type: String, required: true }, }, async setup (props) { const slug = props.path.replace(/^\/(?:blog\/)?/, '').replace(/\/$/, '') const loaders = props.collection === 'blog' ? blogBodyLoaders : pageBodyLoaders const loader = loaders[slug]
if (!loader) { return () => null }
const value = await loader() return () => h(MarkdownDocument, { value, components }) },})