Skip to main content

createAtomBlockMarkdownSpec

@blockslides/core


@blockslides/core / createAtomBlockMarkdownSpec

Function: createAtomBlockMarkdownSpec()

createAtomBlockMarkdownSpec(options): object

Defined in: blockslides/packages/core/src/utilities/markdown/createAtomBlockMarkdownSpec.ts:58

Creates a complete markdown spec for atomic block nodes using Pandoc syntax.

The generated spec handles:

  • Parsing self-closing blocks with :::blockName {attributes}
  • Extracting and parsing attributes
  • Validating required attributes
  • Rendering blocks back to markdown

Parameters

options

AtomBlockMarkdownSpecOptions

Configuration for the atomic block markdown spec

Returns

object

Complete markdown specification object

parseMarkdown()

parseMarkdown: (token, h) => MarkdownParseResult

Parameters

token

MarkdownToken

h

MarkdownParseHelpers

Returns

MarkdownParseResult

markdownTokenizer

markdownTokenizer: MarkdownTokenizer

renderMarkdown()

renderMarkdown: (node) => string

Parameters

node

JSONContent

Returns

string

Example

const youtubeSpec = createAtomBlockMarkdownSpec({
nodeName: 'youtube',
requiredAttributes: ['src'],
defaultAttributes: { start: 0 },
allowedAttributes: ['src', 'start', 'width', 'height'] // Only these get rendered to markdown
})

// Usage in extension:
export const Youtube = Node.create({
// ... other config
markdown: youtubeSpec
})