Need help with remark-html?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

remarkjs
189 Stars 19 Forks MIT License 197 Commits 0 Opened issues

Description

plugin to compile Markdown to HTML

Services available

!
?

Need anything else?

Contributors list

remark-html

Build Coverage Downloads Size Sponsors Backers Chat

remark plugin to serialize Markdown as HTML.

⚠️ This package essentially packs

remark-rehype
and
rehype-stringify
, and although it does support some customisation, it isn’t very pluggable. It’s probably smarter to use

remark-rehype
directly and benefit from the rehype ecosystem.

Install

This package is ESM only: Node 12+ is needed to use it and it must be

import
ed instead of
require
d.

npm:

npm install remark-html

Use

Say we have the following file,

example.md
:
# Hello & World

> A block quote.

  • Some emphasis, importance, and code.

And our module,

example.js
, looks as follows:
import fs from 'node:fs'
import {unified} from 'unified'
import remarkParse from 'remark-parse'
import remarkHtml from 'remark-html'



const buf = fs.readFileSync('example.md')

unified() .use(remarkParse) .use(remarkHtml) .process(buf) .then((file) => { console.log(String(file)) })

Now, running

node example
yields:

Hello & World

A block quote.

  • Some emphasis, importance, and code.

API

This package exports no identifiers. The default export is

remarkHtml
.

unified().use(remarkHtml[, options])

Serialize Markdown as HTML.

options

All options except for

sanitize
and
handlers
are passed to
hast-util-to-html
.

The underlying tools allow much more customisation. It is recommended to replace this project with

remark-rehype
and
rehype-stringify
;

options.handlers

Object mapping mdast nodes to functions handling them. This option is passed to

mdast-util-to-hast
.

options.sanitize

How to sanitize the output (

Object
or
boolean
, default:
true
):
  • false
    — HTML is not sanitized, dangerous HTML persists
  • true
    — HTML is sanitized according to GitHub’s sanitation rules, dangerous HTML is dropped
  • Object
    — the object is treated as a
    schema
    for how to sanitize with
    hast-util-sanitize
    , dangerous HTML is dropped

Note that raw HTML in Markdown cannot be sanitized, so it’s removed. A schema can still be used to allow certain values from other plugins though. To support HTML in Markdown, use

rehype-raw
.

For example, to add strict sanitation but allowing

className
s, use something like:
// ...
var merge = require('deepmerge')
var github = require('hast-util-sanitize/lib/github')

var schema = merge(github, {attributes: {'*': ['className']}})

remark() .use(html, {sanitize: schema}) .processSync(/* … */)

Security

Use of

remark-html
is unsafe by default and opens you up to a cross-site scripting (XSS) attack. Pass
sanitize: true
to prevent attacks. Settings
sanitize
to anything else may be unsafe.

Contribute

See

contributing.md
in
remarkjs/.github
for ways to get started. See
support.md
for ways to get help.

This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.

License

MIT © Titus Wormer

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.