UNPKG

react-native-markdown-renderer

Version:

Markdown renderer for react-native, with CommonMark spec support + adds syntax extensions & sugar (URL autolinking, typographer).

23 lines (19 loc) 772 B
import type { ReactElement } from 'react'; import type MarkdownIt from 'markdown-it'; import tokensToAST from './util/tokensToAST'; import { stringToTokens } from './util/stringToTokens'; import { cleanupTokens } from './util/cleanupTokens'; import groupTextTokens from './util/groupTextTokens'; import type { ASTNode } from '../types'; export default function parser( source: string, renderer: (nodes: ASTNode[]) => ReactElement, markdownIt: MarkdownIt ): ReactElement { const tokens = stringToTokens(source, markdownIt); // eslint-disable-next-line @typescript-eslint/no-explicit-any const cleaned = cleanupTokens(tokens as any[]); const grouped = groupTextTokens(cleaned); const astTree = tokensToAST(grouped as any[]); return renderer(astTree); }