Skip to content

@origints/markdown

Markdown parsing with GitHub Flavored Markdown support, YAML frontmatter extraction, and HTML conversion.

Terminal window
npm install @origints/markdown @origints/core
  • GFM (GitHub Flavored Markdown) support
  • YAML frontmatter extraction
  • Source position tracking for all nodes
  • Type-safe navigation and extraction
  • Convert to HTML
  • Tables, task lists, and footnotes
import { Planner, loadFile, run } from '@origints/core'
import { parseMarkdown } from '@origints/markdown'
const plan = new Planner()
.in(loadFile('README.md'))
.mapIn(parseMarkdown())
.emit((out, $) => out
.add('title', $.select('heading').text())
)
.compile()
const result = await run(plan, { readFile, registry })
.emit((out, $) => out
.add('headings', $.selectAll('heading', node => node.text()))
)
.emit((out, $) => out
.add('blocks', $.children(node => node.text()))
)
.emit((out, $) => out
.add('frontmatter', $.select('yaml').text())
)
import { parseMarkdownImpl, MarkdownNode } from '@origints/markdown'
const node = parseMarkdownImpl.execute(markdownString) as MarkdownNode
const heading = node.select('heading')
if (heading.ok) console.log(heading.value.text())
// Attribute selectors
node.select('heading[depth=1]')
node.select('code[lang="typescript"]')
import { parseMarkdownImpl, toHtml } from '@origints/markdown'
const node = parseMarkdownImpl.execute('# Hello\n\nWorld') as MarkdownNode
const html = toHtml(node)
import { parseMarkdownImpl, extractFrontmatter } from '@origints/markdown'
const node = parseMarkdownImpl.execute(markdownWithFrontmatter) as MarkdownNode
const frontmatter = extractFrontmatter(node)
if (frontmatter) console.log(frontmatter.title)
ExportDescription
parseMarkdown(options?)Transform AST for Planner.mapIn()
parseMarkdownImplSync transform implementation
parseMarkdownAsyncImplAsync transform implementation
registerMarkdownTransforms(registry)Register Markdown transforms
MarkdownNodeNavigable wrapper with selector support
toHtml(node)Convert to HTML
extractFrontmatter(node)Extract YAML frontmatter

MIT