Catalog npm
Back to packageRELEASE DETAILS

1.0.0

npm

02strich-markdown

ReadMe's React-based Markdown parser

Published21 Mar 2023
Direct dependencies76
Transitive dependenciesNot calculated

README

Current package documentation

@readme/markdown

ReadMe's flavored Markdown parser and MDX rendering engine. <img align=center src=https://github.com/readmeio/markdown/workflows/CI/badge.svg alt="RDMD CI Status">

npm install --save @readme/markdown

Usage

By default, the updated markdown package exports a function which takes a string of ReadMe-flavored markdown and returns a tree of React components:

import React from 'react';
import rdmd from "@readme/markdown";

export default ({ body }) => (
  <div className="markdown-body">
    {rdmd(body)}
  </div>
);

Export Methods

In addition to the default React processor, the package exports some other methods for transforming ReadMe-flavored markdown:

ExportDescriptionArguments
react(default) returns a VDOM tree objecttext, options
mdtransform mdast in to ReadMe-flavored markdowntree, options
htmltransform markdown in to HTMLtext, options
mdasttransform markdown to an mdast objecttext, options
hasttransform markdown to HAST objecttext, options
plaintransform markdown to plain texttext, options
utilscontexts, defaults, helpers, etc.N/A

Settings & Options

Each processor method takes an options object which you can use to adjust the output HTML or React tree. These options include:

  • compatibilityMode — Enable compatibility features from our old markdown engine.
  • copyButtons — Automatically insert a button to copy a block of text to the clipboard. Currently used on <code> elements.
  • correctnewlines — Render new line delimeters as <br> tags.
  • markdownOptions — Remark parser options.
  • safeMode — Render html blocks as <pre> elements. We normally allow all manner of html attributes that could potentially execute JavaScript.

Flavored Syntax

Our old editor rendered "Magic Block" components from a custom, JSON-based syntax. To provide seamless backwards-compatibility, our new processor ships with built in support for parsing this old format, and transpiles it straight in to our new, flavored Markdown.

We've also sprinkled a bit of our own syntactic sugar on top to let you supercharge your docs. Learn more about ReadMe's flavored syntax!

Local Development

To make changes to the RDMD engine locally, run the local development server. Clone the repo, cd in to it, npm install, and npm run start!

Environment setup

Running the browser tests requires docker. Follow the docker install instructions for mac. You may want to increase the memory usage. If you have not already, you'll need to create an account for docker hub and sign-in locally.

Running visual regression tests

If you make changes to the docs or how the markdown is rendered, you may need to update the visual regression snapshots. You can run the visual regression tests in a docker container with:

make updateSnapshot

Credits

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 80

Native requirements
76 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
@readme/emojis
Environment
{
  "local_name": "@readme/emojis",
  "alias": false,
  "peer_metadata": null
}
^5.0.0runtime
@readme/syntax-highlighter
Environment
{
  "local_name": "@readme/syntax-highlighter",
  "alias": false,
  "peer_metadata": null
}
^12.0.2runtime
copy-to-clipboard
Environment
{
  "local_name": "copy-to-clipboard",
  "alias": false,
  "peer_metadata": null
}
^3.3.2runtime
emoji-regex
Environment
{
  "local_name": "emoji-regex",
  "alias": false,
  "peer_metadata": null
}
^10.2.1runtime
hast-util-sanitize
Environment
{
  "local_name": "hast-util-sanitize",
  "alias": false,
  "peer_metadata": null
}
^4.0.0runtime
lodash.escape
Environment
{
  "local_name": "lodash.escape",
  "alias": false,
  "peer_metadata": null
}
^4.0.1runtime
lodash.kebabcase
Environment
{
  "local_name": "lodash.kebabcase",
  "alias": false,
  "peer_metadata": null
}
^4.1.1runtime
mdast-util-toc
Environment
{
  "local_name": "mdast-util-toc",
  "alias": false,
  "peer_metadata": null
}
^5.1.0runtime
path-browserify
Environment
{
  "local_name": "path-browserify",
  "alias": false,
  "peer_metadata": null
}
^1.0.1runtime
process
Environment
{
  "local_name": "process",
  "alias": false,
  "peer_metadata": null
}
^0.11.10runtime
prop-types
Environment
{
  "local_name": "prop-types",
  "alias": false,
  "peer_metadata": null
}
^15.8.1runtime
rehype-raw
Environment
{
  "local_name": "rehype-raw",
  "alias": false,
  "peer_metadata": null
}
^5.1.0runtime
rehype-react
Environment
{
  "local_name": "rehype-react",
  "alias": false,
  "peer_metadata": null
}
^6.2.1runtime
rehype-sanitize
Environment
{
  "local_name": "rehype-sanitize",
  "alias": false,
  "peer_metadata": null
}
^4.0.0runtime
rehype-stringify
Environment
{
  "local_name": "rehype-stringify",
  "alias": false,
  "peer_metadata": null
}
^6.0.0runtime
remark-breaks
Environment
{
  "local_name": "remark-breaks",
  "alias": false,
  "peer_metadata": null
}
^1.0.0runtime
remark-disable-tokenizers
Environment
{
  "local_name": "remark-disable-tokenizers",
  "alias": false,
  "peer_metadata": null
}
^1.0.24runtime
remark-frontmatter
Environment
{
  "local_name": "remark-frontmatter",
  "alias": false,
  "peer_metadata": null
}
^2.0.0runtime
remark-parse
Environment
{
  "local_name": "remark-parse",
  "alias": false,
  "peer_metadata": null
}
^7.0.2runtime
remark-rehype
Environment
{
  "local_name": "remark-rehype",
  "alias": false,
  "peer_metadata": null
}
^7.0.0runtime
remark-slug
Environment
{
  "local_name": "remark-slug",
  "alias": false,
  "peer_metadata": null
}
^6.0.0runtime
remark-stringify
Environment
{
  "local_name": "remark-stringify",
  "alias": false,
  "peer_metadata": null
}
^8.0.0runtime
trim
Environment
{
  "local_name": "trim",
  "alias": false,
  "peer_metadata": null
}
^1.0.1runtime
unified
Environment
{
  "local_name": "unified",
  "alias": false,
  "peer_metadata": null
}
^8.4.0runtime
unist-util-flatmap
Environment
{
  "local_name": "unist-util-flatmap",
  "alias": false,
  "peer_metadata": null
}
^1.0.0runtime
unist-util-map
Environment
{
  "local_name": "unist-util-map",
  "alias": false,
  "peer_metadata": null
}
^3.1.2runtime
unist-util-select
Environment
{
  "local_name": "unist-util-select",
  "alias": false,
  "peer_metadata": null
}
^4.0.0runtime
unist-util-visit
Environment
{
  "local_name": "unist-util-visit",
  "alias": false,
  "peer_metadata": null
}
^4.1.1runtime
@babel/core
Environment
{
  "local_name": "@babel/core",
  "alias": false,
  "peer_metadata": null
}
^7.19.3development
@babel/eslint-parser
Environment
{
  "local_name": "@babel/eslint-parser",
  "alias": false,
  "peer_metadata": null
}
^7.19.1development
@babel/plugin-proposal-class-properties
Environment
{
  "local_name": "@babel/plugin-proposal-class-properties",
  "alias": false,
  "peer_metadata": null
}
^7.18.6development
@babel/plugin-proposal-object-rest-spread
Environment
{
  "local_name": "@babel/plugin-proposal-object-rest-spread",
  "alias": false,
  "peer_metadata": null
}
^7.19.4development
@babel/plugin-proposal-optional-chaining
Environment
{
  "local_name": "@babel/plugin-proposal-optional-chaining",
  "alias": false,
  "peer_metadata": null
}
^7.18.9development
@babel/plugin-transform-runtime
Environment
{
  "local_name": "@babel/plugin-transform-runtime",
  "alias": false,
  "peer_metadata": null
}
^7.19.1development
@babel/preset-env
Environment
{
  "local_name": "@babel/preset-env",
  "alias": false,
  "peer_metadata": null
}
^7.19.4development
@babel/preset-react
Environment
{
  "local_name": "@babel/preset-react",
  "alias": false,
  "peer_metadata": null
}
^7.18.6development
@commitlint/cli
Environment
{
  "local_name": "@commitlint/cli",
  "alias": false,
  "peer_metadata": null
}
^17.1.2development
@commitlint/config-angular
Environment
{
  "local_name": "@commitlint/config-angular",
  "alias": false,
  "peer_metadata": null
}
^17.1.0development
@commitlint/config-conventional
Environment
{
  "local_name": "@commitlint/config-conventional",
  "alias": false,
  "peer_metadata": null
}
^17.1.0development
@hot-loader/react-dom
Environment
{
  "local_name": "@hot-loader/react-dom",
  "alias": false,
  "peer_metadata": null
}
^16.14.0development
@readme/eslint-config
Environment
{
  "local_name": "@readme/eslint-config",
  "alias": false,
  "peer_metadata": null
}
^10.1.1development
@readme/variable
Environment
{
  "local_name": "@readme/variable",
  "alias": false,
  "peer_metadata": null
}
^15.1.2development
@semantic-release/changelog
Environment
{
  "local_name": "@semantic-release/changelog",
  "alias": false,
  "peer_metadata": null
}
^6.0.1development
@semantic-release/git
Environment
{
  "local_name": "@semantic-release/git",
  "alias": false,
  "peer_metadata": null
}
^10.0.1development
@testing-library/jest-dom
Environment
{
  "local_name": "@testing-library/jest-dom",
  "alias": false,
  "peer_metadata": null
}
^5.16.5development
@testing-library/react
Environment
{
  "local_name": "@testing-library/react",
  "alias": false,
  "peer_metadata": null
}
^12.1.2development
@tippyjs/react
Environment
{
  "local_name": "@tippyjs/react",
  "alias": false,
  "peer_metadata": null
}
^4.2.6development
babel-jest
Environment
{
  "local_name": "babel-jest",
  "alias": false,
  "peer_metadata": null
}
^29.2.1development
babel-loader
Environment
{
  "local_name": "babel-loader",
  "alias": false,
  "peer_metadata": null
}
^8.2.5development
codemirror
Environment
{
  "local_name": "codemirror",
  "alias": false,
  "peer_metadata": null
}
^5.54.0development
core-js
Environment
{
  "local_name": "core-js",
  "alias": false,
  "peer_metadata": null
}
^3.25.5development
css-loader
Environment
{
  "local_name": "css-loader",
  "alias": false,
  "peer_metadata": null
}
^6.7.1development
eslint
Environment
{
  "local_name": "eslint",
  "alias": false,
  "peer_metadata": null
}
^8.25.0development
husky
Environment
{
  "local_name": "husky",
  "alias": false,
  "peer_metadata": null
}
^8.0.1development
identity-obj-proxy
Environment
{
  "local_name": "identity-obj-proxy",
  "alias": false,
  "peer_metadata": null
}
^3.0.0development
jest
Environment
{
  "local_name": "jest",
  "alias": false,
  "peer_metadata": null
}
^28.1.3development
jest-environment-jsdom
Environment
{
  "local_name": "jest-environment-jsdom",
  "alias": false,
  "peer_metadata": null
}
^29.2.1development
jest-environment-puppeteer
Environment
{
  "local_name": "jest-environment-puppeteer",
  "alias": false,
  "peer_metadata": null
}
^6.1.1development
jest-image-snapshot
Environment
{
  "local_name": "jest-image-snapshot",
  "alias": false,
  "peer_metadata": null
}
^5.2.0development
jest-puppeteer
Environment
{
  "local_name": "jest-puppeteer",
  "alias": false,
  "peer_metadata": null
}
^6.1.1development
mini-css-extract-plugin
Environment
{
  "local_name": "mini-css-extract-plugin",
  "alias": false,
  "peer_metadata": null
}
^2.6.1development
node-sass
Environment
{
  "local_name": "node-sass",
  "alias": false,
  "peer_metadata": null
}
^7.0.3development
prettier
Environment
{
  "local_name": "prettier",
  "alias": false,
  "peer_metadata": null
}
^2.7.1development
puppeteer
Environment
{
  "local_name": "puppeteer",
  "alias": false,
  "peer_metadata": null
}
^19.0.0development
react
Environment
{
  "local_name": "react",
  "alias": false,
  "peer_metadata": null
}
^16.14.0development
react-dom
Environment
{
  "local_name": "react-dom",
  "alias": false,
  "peer_metadata": null
}
^16.14.0development
react-hot-loader
Environment
{
  "local_name": "react-hot-loader",
  "alias": false,
  "peer_metadata": null
}
^4.13.0development
regenerator-runtime
Environment
{
  "local_name": "regenerator-runtime",
  "alias": false,
  "peer_metadata": null
}
^0.13.10development
sass-loader
Environment
{
  "local_name": "sass-loader",
  "alias": false,
  "peer_metadata": null
}
^13.1.0development
semantic-release
Environment
{
  "local_name": "semantic-release",
  "alias": false,
  "peer_metadata": null
}
^19.0.5development
string.prototype.trimend
Environment
{
  "local_name": "string.prototype.trimend",
  "alias": false,
  "peer_metadata": null
}
^1.0.5development
terser-webpack-plugin
Environment
{
  "local_name": "terser-webpack-plugin",
  "alias": false,
  "peer_metadata": null
}
^5.3.6development
webpack
Environment
{
  "local_name": "webpack",
  "alias": false,
  "peer_metadata": null
}
^5.74.0development
webpack-cli
Environment
{
  "local_name": "webpack-cli",
  "alias": false,
  "peer_metadata": null
}
^4.10.0development
webpack-dev-server
Environment
{
  "local_name": "webpack-dev-server",
  "alias": false,
  "peer_metadata": null
}
^4.11.1development
webpack-merge
Environment
{
  "local_name": "webpack-merge",
  "alias": false,
  "peer_metadata": null
}
^5.8.0development
@readme/variable
Environment
{
  "local_name": "@readme/variable",
  "alias": false,
  "peer_metadata": null
}
^15.1.0peer
@tippyjs/react
Environment
{
  "local_name": "@tippyjs/react",
  "alias": false,
  "peer_metadata": null
}
^4.1.0peer
react
Environment
{
  "local_name": "react",
  "alias": false,
  "peer_metadata": null
}
^16.14.0peer
react-dom
Environment
{
  "local_name": "react-dom",
  "alias": false,
  "peer_metadata": null
}
^16.14.0peer

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "integrity": "sha512-5+c06jJjV/R3Sd3EP4zB1NP1LM39O9P2ABdt+XuFa06IwmrqjGn9tBYRYhHKxBrFsqMlQZ5mVc8Rjt9LYwc1Pw==",
  "shasum": "a1360f4908c79f573a3a912052c3fb1342dab1a2",
  "tarball": "https://registry.npmjs.org/02strich-markdown/-/02strich-markdown-1.0.0.tgz",
  "fileCount": 32,
  "unpackedSize": 3011938,
  "signatures": [
    {
      "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA",
      "sig": "MEUCIQD0GIQtQAt24+0eAAqxL5mTVZ/02bqy2dzhc2wBaVViRgIgKEOsU0/6RXW2x58aFkl84UnsPdq6CpZGPFEzBrxdsxI="
    }
  ],
  "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGfzDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmosOA//auWILPsC/XjPb/GOgY4lnH4rFA8edcw8Pdd/eMzhaGRzSWx7\r\n9UU5zVqDLW37Gcghl8lVSuEUc6+GsUvM63COcbKsm6OdtLhucbBmg5giDBAv\r\nddadIr5iFMrJpI7jeTzpOx57CJcbfIRhh3UN53MGFQWyVFbXQ/R+rIikY1Jv\r\nqQ0y1RUqHatzHKAxzsuzZKghpcJCpOjGPRyffChhHmB5ekvd0b5cydcWKjzL\r\no19YY9EtbpXv7G97MW7ls5VYYy5nEQWsI6xbgpu8bCswS0+rDuoA1o1IpNmP\r\nYk/WaU1HmVyA1o0cROBDEZVojRvp8az8W4lTqjICi+4pHP/hYmKzIOCor7rI\r\nY46xkTQqNQQBnCMu7I5n3kpRcyZ1CCLErygrF9O3g3DTcMmeB0b61gdzcIF8\r\nduuX/5OpYRyShpTX8ug6bgoPFFV6aAsUCUDtrfHzY1kkscn4FW3DQ7Ngv/5s\r\nDj3CHCMEVqXve6ZAeSWbcQfG2TNbVxRX7rcG3cH9JuCXGYqfXFL9MhPO781w\r\nccgYsz1AlzgbnGITB9ood7axYJNzGGzSwhyBournXOeitgbZySu1zvGxyhud\r\nRc1L9x5V1kRixFoXbSNNrfmEiZIOmjoi9a6VzVrUdyEJqVVS2PrpqGNngOvg\r\nEc+tqA548tAwNyPgdUgpUMBL8xMh3IH4cZM=\r\n=4kBi\r\n-----END PGP SIGNATURE-----\r\n"
}

Repository

PENDING
02strich/markdown

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 17:00 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:ea4b85f28cfcaf89ceef23db6d30840eebcc8fed61861301e2e9918bccd1ae34

Other collected versions

1.0.25 Apr1.0.121 MarView all collected versions →