explaingit

jonschlinkert/remarkable

5,831JavaScriptAudience · developerComplexity · 2/5Setup · easy

TLDR

A JavaScript library that converts Markdown text into HTML, with support for CommonMark, GitHub-Flavored Markdown extras like tables and strikethrough, and optional code highlighting via plugins.

Mindmap

mindmap
  root((remarkable))
    What it does
      Markdown to HTML
      CommonMark support
      GitHub Markdown extras
    Features
      Tables and strikethrough
      Footnotes support
      Typographer option
    Configuration
      Enable or disable rules
      Three preset modes
      Custom rule plugins
    Usage
      Node.js via npm
      Browser via CDN
      Single render method
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Parse user-written Markdown in a web app or Node.js backend and render it as formatted HTML for display.

USE CASE 2

Add Markdown support to a documentation system, blog, or comment box by integrating Remarkable into your JavaScript project.

USE CASE 3

Enable syntax-highlighted code blocks in your Markdown output by connecting a code-highlighting library as a plugin.

USE CASE 4

Use the typographer option to automatically convert straight quotes and dashes to proper typographic characters in rendered output.

Tech stack

JavaScriptNode.jsnpm

Getting it running

Difficulty · easy Time to first run · 5min

No standalone app, import the library into your JavaScript project and call the render method with a Markdown string.

License information was not mentioned in the explanation.

In plain English

Remarkable is a JavaScript library that converts Markdown text into HTML. Markdown is the lightweight notation used in README files, comment boxes, and documentation systems where you write things like "# Title" or "bold" and they render as formatted text. Remarkable takes that raw Markdown and turns it into the HTML that a browser can display. It supports the CommonMark specification, which is a formal, well-tested standard for how Markdown should be parsed, along with several popular extensions from GitHub-Flavored Markdown such as tables, strikethrough, and footnotes. A typographer option can automatically convert straight quotes to curly quotes, dashes to proper em-dashes in the output, and common abbreviations like (c) into the copyright symbol. The library is designed to be configurable. You can turn individual syntax rules on or off, add your own custom rules, or swap in a code-highlighting library to color-code fenced code blocks in the output. Plugins install with a single method call. There are three preset configurations: a default mode similar to GitHub Markdown, a strict CommonMark mode, and a "full" mode that enables everything available. Remarkable works in both Node.js (installed via npm) and directly in a browser via a CDN script tag. The description notes it is used by Facebook and the Docusaurus documentation platform, among others. The README is aimed at developers who are integrating a Markdown parser into a project, not at end users composing Markdown. There is no standalone application to run. You import the library into your code, create an instance, call the render method with a Markdown string, and get HTML back.

Copy-paste prompts

Prompt 1
How do I set up Remarkable in a Node.js project to convert a Markdown string to HTML with GitHub-Flavored Markdown features like tables and strikethrough enabled?
Prompt 2
I want to add syntax highlighting to code blocks in Remarkable. How do I connect highlight.js as a plugin and configure Remarkable to use it?
Prompt 3
How do I write a custom Remarkable plugin that adds a new inline syntax rule? Give me an example that converts a custom pattern into an HTML span.
Prompt 4
What are the differences between Remarkable's three preset configurations, default, CommonMark strict, and full mode? When should I use each one?
Open on GitHub → Explain another repo

← jonschlinkert on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.