UNPKG

react-native-markdown-renderer

Version:

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

31 lines (26 loc) 753 B
import React from 'react'; import { View } from 'react-native'; import tokensToAST from './util/tokensToAST'; import removeInlineTokens from './util/removeInlineTokens'; import groupTextTokens from './util/groupTextTokens'; export function stringToTokens(source, markdownIt) { let result = []; try { result = markdownIt.parse(source, {}); } catch (err) { console.warn(err); } return result; } /** * * @param {string} source * @param {function} [renderer] * @param {AstRenderer} [markdownIt] * @return {View} */ export function parser(source, renderer, markdownIt) { const tokens = groupTextTokens(removeInlineTokens(stringToTokens(source, markdownIt))); const asttree = tokensToAST(tokens); return renderer(asttree); }