Vaulthalla Logo

Blocks

Auto-install into blocks collections

1payloadMarkdown({2  collections: {3    pages: true,4    posts: true,5  },6})7

Manual block registration

1import { MarkdownBlock } from '@valkyrianlabs/payload-markdown'23export const Pages = {4  slug: 'pages',5  fields: [6    {7      name: 'layout',8      type: 'blocks',9      blocks: [MarkdownBlock],10    },11  ],12}13

Render the block

vlMdBlock is the generated block type key used by Payload typings.

1import { MarkdownBlockComponent } from '@valkyrianlabs/payload-markdown/server'23const blockComponents = {4  vlMdBlock: MarkdownBlockComponent,5}67export function RenderBlocks({8  blocks,9  collectionSlug,10}: {11  blocks?: any[]12  collectionSlug?: string13}) {14  if (!blocks?.length) return null1516  return blocks.map((block, i) => {17    const Block = blockComponents[block.blockType]18    if (!Block) return null1920    return <Block key={i} block={block} collectionSlug={collectionSlug} />21  })22}23

Example usage

1<RenderBlocks blocks={layout} collectionSlug="pages" />2