npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ronradtke/react-native-markdown-display

v9.0.3

Published

Markdown renderer for react-native, with CommonMark spec support + adds syntax extensions & sugar (URL autolinking, typographer), originally created by Mient-jan Stelling as react-native-markdown-renderer

Downloads

254,626

Readme

React Native Markdown Display

npm version npm downloads license: MIT Known Vulnerabilities

Markdown rendering and editing primitives for React Native, running only in JS. No native code needed.

@ronradtke/react-native-markdown-display turns markdown into real React Native views, not a WebView. It pairs a typed markdown viewer with optional input and composer components, so the same package can power read-only content, message previews, documentation screens, and markdown authoring flows.

✨ Why This Package

  • Native rendering pipeline: markdown is parsed with markdown-it, normalized into an AST, and rendered with React Native components.
  • 🧱 No WebView dependency: content participates in your React Native layout, styling, theming, navigation, and event handling.
  • 🧩 Typed customization surface: override styles, render rules, link handling, parser behavior, and image handling with TypeScript-friendly APIs.
  • ✍️ Viewer and editor pieces: use <Markdown> for display, MarkdownStream for streaming text, or MarkdownTextInput / MarkdownComposer for authoring.
  • 🔌 Extensible markdown support: bring your own markdown-it instance or opt into bundled plugins such as underline.

This package is intended as a modern replacement for react-native-markdown-renderer, with stricter typing and a maintained native rendering architecture.

📦 Install

Yarn

yarn add @ronradtke/react-native-markdown-display

npm

npm install @ronradtke/react-native-markdown-display

🚀 Quick Start

👁️ Viewer

import React from 'react';
import {SafeAreaView, ScrollView} from 'react-native';
import Markdown from '@ronradtke/react-native-markdown-display';

const value = `
# Hello

This is **markdown** rendered with native React Native components.
`;

export default function App(): React.JSX.Element {
    return (
        <SafeAreaView>
            <ScrollView>
                <Markdown>{value}</Markdown>
            </ScrollView>
        </SafeAreaView>
    );
}

✍️ Composer

import React from 'react';
import {SafeAreaView, View} from 'react-native';
import Markdown, {MarkdownComposer} from '@ronradtke/react-native-markdown-display';

export default function App(): React.JSX.Element {
    const [value, setValue] = React.useState('## Draft message');

    return (
        <SafeAreaView>
            <View style={{flex: 1, gap: 16, padding: 16}}>
                <MarkdownComposer onChangeText={setValue} previewEnabled value={value} />
                <Markdown>{value}</Markdown>
            </View>
        </SafeAreaView>
    );
}

🛠️ What You Can Build

| Use case | Component | | --- | --- | | 📖 Render markdown content | <Markdown> | | ⏱️ Render actively streaming markdown text | MarkdownStream | | ⌨️ Add a markdown-aware text input | MarkdownTextInput | | 🧰 Ship an opinionated markdown composer with toolbar and preview | MarkdownComposer | | 🔎 Preview an editor value with the same renderer | MarkdownPreview |

📝 Supported Markdown

The default parser supports common markdown content including:

  • headings, paragraphs, horizontal rules, and blockquotes
  • bold, italic, strikethrough, inline code, and links
  • ordered and unordered lists
  • fenced and indented code blocks
  • tables
  • images with configurable URL handlers
  • typographer replacements from markdown-it

You can extend or restrict the syntax by passing a custom markdown-it instance through the markdownit prop. Underline support is included as an opt-in plugin via createMarkdownIt({underline: true}) or underlinePlugin.

🎛️ Customization

The viewer is designed to be customized at the right layer:

  • 🎨 use style for visual changes
  • 🧬 use rules when a markdown node should render differently
  • 🔗 use onLinkPress to control navigation
  • ⚙️ use markdownit to change parsing behavior
  • 🖼️ use allowedImageHandlers and defaultImageHandler to control image sources
  • 🧭 use debugPrintTree to inspect the AST while integrating custom syntax

📚 Documentation

📄 License

MIT