Skip to content
Switch branches/tags
Go to file
41 contributors

Users who have contributed to this file



remark is a markdown processor powered by plugins part of the unified collective.


List of plugins

See awesome remark for the most awesome projects in the ecosystem. More plugins can be found on GitHub tagged with the remark-plugin topic.

Have a good idea for a new plugin? See Creating plugins below.

Some plugins are affected by the recent switch in the underlying parser of remark. Their status is encoded below as:

  • 🟢 This plugin was not affected or a new version is already released
  • ⚠️ This plugin is affected: it’s currently broken and maintainers have been notified

The list of plugins:

List of presets

See npm search or github search for available and often inspirational presets.

List of utilities

See mdast for a list of utilities for working with the syntax tree. See unist for other utilities which work with mdast nodes, too. Finally, see vfile for a list of utilities working with virtual files.

Using plugins

To use a plugin programmatically, call the use() function.

To use plugin with remark-cli, pass a --use flag or specify it in a configuration file.

Creating plugins

Have an idea for a plugin? Post it in ideas and make it happen!

To create a plugin, first read up on the concept of plugins. Then, read the guide on “Creating a plugin with unified”. Finally, take one of existing plugins, which looks similar to what you’re about to make, and work from there. If you get stuck, ideas, issues, and discussions are good places to get help.

You should pick a name prefixed by 'remark-', such as remark-lint.

Do not use the remark- prefix if the thing you create doesn’t work with remark().use(): it isn’t a “plugin” and will confuse users. If it works with mdast, use 'mdast-util-', if it works with any unist tree, use unist-util-, and if it works with virtual files, use vfile-.