Plugins
February 24, 2026 Β· View on GitHub
Plugins
remark is a tool that transforms markdown with plugins. See the monorepo readme for info on what the remark ecosystem is. This page lists existing plugins.
Contents
List of plugins
For the most awesome projects in the ecosystem,
see remarkjs/awesome-remark.
More plugins can be found on GitHub tagged with the
remark-plugin topic.
π Note: some plugins donβt work with recent versions of remark due to changes in its underlying parser (micromark). Plugins that are up to date or unaffected are marked with
π’while plugins that are currently broken are marked withβ οΈ.
π‘ Tip: remark plugins work with markdown and rehype plugins work with HTML. See Β§ List of plugins in
rehypejs/rehypefor more plugins.
The list of plugins:
remark-a11y-emojiβ accessible emoji- β οΈ
remark-abbrβ new syntax for abbreviations (new node type, rehype compatible) - β οΈ
remark-admonitionsβ new syntax for admonitions (π note:remark-directiveis similar and up to date) - β οΈ
remark-alignβ new syntax to align text or blocks (new node types, rehype compatible) - π’
remark-apiβ generate an API section - β οΈ
remark-attrβ new syntax to add attributes to markdown - π’
remark-beheadβ increase or decrease heading depth - π’
remark-breaksβ hard breaks w/o needing spaces (like on issues) - π’
remark-capitalizeβ transform all titles w/title.sh - π’
remark-capitalize-headingsβ selectively capitalize headings (π note: alternative toremark-capitalize) - π’
remark-citeβ new syntax for Pandoc-style citations - π’
remark-cjk-friendlyβ recognize emphasis in CJK languages ββmore reliably - π’
remark-cjk-friendly-gfm-strikethroughβ recognize GFM strikethrough in CJK languages ββmore reliably - π’
remark-cloudinary-docusaurusβ allows Docusaurus to use Cloudinary to serve optimised images - π’
remark-code-blocksβ select and store code blocks - π’
remark-code-extraβ add to or transform the HTML output of code blocks (rehype compatible) - π’
remark-code-frontmatterβ extract frontmatter from code blocks - π’
remark-code-importβ populate code blocks from files - π’
remark-code-screenshotβ turn code blocks intocarbon.now.shscreenshots - π’
remark-code-titleβ add titles to code blocks - π’
remark-codesandboxβ create CodeSandbox from code blocks - π’
remark-collapseβ make a section collapsible - π’
remark-comment-configβ configure remark w/ comments - β οΈ
remark-commentsβ new syntax to ignore things - β οΈ
remark-containerβ new syntax for containers (π note:remark-directiveis similar and up to date) - β οΈ
remark-containersβ new syntax for containers (π note:remark-directiveis similar and up to date) - π’
remark-contributorsβ add a table of contributors - π’
remark-copy-linked-filesβ find and copy files linked files to a destination directory - π’
remark-corebcβ transforms Core Blockchain notations into markdown links - π’
remark-corepassβ transform CorePass notations into markdown links - β οΈ
remark-custom-blocksβ new syntax for custom blocks (new node types, rehype compatible) (π note:remark-directiveis similar and up to date) - π’
remark-custom-header-idβ add custom ID attribute to headers ({#some-id}) - π’
remark-definition-listβ support definition lists - π’
remark-defsplitβ change links and images to references w/ separate definitions - β οΈ
remark-disable-tokenizersβ turn some or all remarkβs tokenizers on or off - π’
remark-directiveβ new syntax for directives (generic extensions) - π’
remark-directive-rehypeβ turn directives into HTML custom elements (rehype compatible) - π’
remark-directive-sugarβ predefined directives for customizable badges, links, video embeds, and more - π’
remark-docxβ compile markdown to docx - π’
@m2d/remark-docxβ compile markdown to docx with support for GFM, tables, html, and more. - π’
remark-dropcapβ fancy and accessible drop caps - π’
remark-embed-imagesβ embed local images as base64-encoded data URIs - π’
remark-emojiβ transform Gemoji short-codes to emoji - π’
remark-extended-tableβ extended table syntax allowing colspan / rowspan - π’
remark-extract-frontmatterβ store front matter in vfiles - π’
remark-fediverse-userβ transform Fediverse user notations into markdown links - π’
remark-first-headingβ change the first heading in a document - π’
remark-fix-guillemetsβ support ASCII guillements (<<,>>) mapping them to HTML - π’
remark-flexible-code-titlesβ add titles or/and containers for code blocks with customizable attributes - π’
remark-flexible-containersβ add custom/flexible containers with customizable properties - π’
remark-flexible-markersβ add custom/flexible mark element with customizable properties - π’
remark-flexible-paragraphsβ add custom/flexible paragraphs with customizable properties - π’
remark-flexible-tocβ expose the table of contents (toc) via Vfile.data or an option reference - π’
remark-footnotes-extraβ add footnotes via short syntax - π’
remark-frontmatterβ support frontmatter (yaml, toml, and more) - π’
remark-gemojiβ better support for Gemoji shortcodes - β οΈ
remark-generic-extensionsβ new syntax for the CommonMark generic directive extension (π note:remark-directiveis similar and up to date) - π’
remark-gfmβ support GFM (autolink literals, footnotes, strikethrough, tables, tasklists) - π’
remark-git-contributorsβ add a table of contributors based on Git history, options, and more - π’
remark-githubβ autolink references to commits, issues, pull-requests, and users - π’
remark-github-admonitions-to-directivesβ convert GitHubβs blockquote-based admonitions syntax to directives syntax - π’
remark-github-beta-blockquote-admonitionsβ GitHub beta blockquote-based admonitions - π’
remark-github-blockquote-alertβ remark plugin to add support for GitHub Alert - β οΈ
remark-grid-tablesβ new syntax to describe tables (rehype compatible) - π’
@adobe/remark-grid-tablesβ pandoc compatible grid-table syntax - π’
remark-heading-idβ custom heading id support{#custom-id} - π’
remark-heading-gapβ serialize w/ more blank lines between headings - π’
@vcarl/remark-headingsβ extract a list of headings as data - π’
remark-hexoβ renders Hexo tags - π’
remark-highlight.jsβ highlight code blocks w/highlight.js(rehype compatible) - π’
remark-hintβ add hints/tips/warnings to markdown - π’
remark-htmlβ serialize markdown as HTML - β οΈ
remark-iframesβ new syntax to create iframes (new node type, rehype compatible) - π’
remark-ignoreβ use comments to exclude nodes from transformation - π’
remark-imagesβ add an improved image syntax - π’
remark-img-linksβ prefix relative image paths with an absolute URL - π’
@it-service-npm/remark-includeβ add::include{file=path.md}statements to compose markdown files together - π’
remark-inline-linksβ change references and definitions to links and images - π’
remark-insβ add ins element for inserted texts opposite to deleted texts - π’
remark-join-cjk-linesβ remove extra space between CJK Characters. - β οΈ
remark-kbdβ new syntax for keyboard keys (new node type, rehype compatible) - β οΈ
remark-kbd-plusβ new syntax for keyboard keys w/ plusses (new node type, rehype compatible) - π’
remark-licenseβ add a license section - π’
remark-link-rewriteβ customize link URLs dynamically - π’
remark-linkify-regexβ change text matching a regex to links - π’
remark-lintβ check markdown code style - π’
remark-manβ serialize markdown as man pages (roff) - π’
remark-mathβ new syntax for math (new node types, rehype compatible) - π’
remark-mdxβ support MDX (JSX, expressions, ESM) - π’
remark-mentionsβ replace @ mentions with links - π’
remark-merge-dataβ merge globally defined data with data declared across code blocks - π’
remark-mermaidjsβ transform mermaid code blocks into inline SVGs - π’
remark-message-controlβ turn some or all messages on or off - π’
remark-normalize-headingsβ make sure at most one top-level heading exists - π’
remark-numbered-footnote-labelsβ label footnotes w/ numbers - π’
@agentofuser/remark-oembedβ transform URLs for youtube, twitter, etc. embeds - π’
remark-oembedβ transform URLs surrounded by newlines into asynchronously loading embeds - π’
remark-package-dependenciesβ inject your dependencies - β οΈ
remark-parse-yamlβ parse YAML nodes and expose their value asparsedValue - π’
remark-pdfβ compile markdown to pdf - β οΈ
remark-pingβ new syntax for mentions w/ configurable existence check (new node type, rehype compatible) - π’
remark-plugin-autonbspβ replace whitespace with non-breaking spaces to avoid hanging articles, prepositions and digits - π’
remark-prepend-urlβ prepend an absolute url to relative links - π’
remark-prettierβ check and format markdown using Prettier - π’
remark-prismβ highlight code blocks w/ Prism (supporting most Prism plugins) - π’
@handlewithcare/remark-prosemirrorβ compile markdown to ProseMirror documents - β οΈ
remark-redactβ new syntax to conceal text matching a regex - π’
remark-redactableβ write plugins to redact content from a markdown document, then restore it later - π’
remark-refer-plantumlβ automatically transform PlantUML code into referenced embeddable image URLs - π’
remark-reference-linksβ transform links and images into references and definitions - π’
remark-rehypeβ transform to rehype - π’
remark-relative-linksβ change absolute URLs to relative ones - π’
remark-remove-commentsβ remove HTML comments from the processed output - π’
remark-remove-unused-definitionsβ remove unused reference-style link definitions - π’
remark-remove-url-trailing-slashβ remove trailing slashes from the ends of all URL paths - π’
remark-renumber-referencesβ renumber numeric reference-style link ids contiguously starting from 1 - π’
remark-retextβ transform to retext - π’
remark-rubyβ new syntax for ruby (furigana) - π’
remark-sectionizeβ wrap headings and subsequent content in section tags (new node type, rehype compatible) - β οΈ
remark-shortcodesβ new syntax for Wordpress- and Hugo-like shortcodes (new node type) (π note:remark-directiveis similar and up to date) - π’
remark-simple-plantumlβ turn PlantUML code blocks to images - π’
remark-slateβ compile markdown to Slate nodes - π’
remark-slate-transformerβ compile markdown to Slate nodes and Slate nodes to markdown - π’
remark-smartypantsβ SmartyPants - π’
remark-smcatβ state machine cat - π’
remark-sort-definitionsβ reorder reference-style link definitions - π’
remark-sourcesβ insert source code - π’
remark-strip-badgesβ remove badges (such asshields.io) - π’
remark-strip-htmlβ remove HTML - π’
remark-squeeze-paragraphsβ remove empty paragraphs - β οΈ
remark-sub-superβ new syntax for super- and subscript (new node types, rehype compatible) - β οΈ
remark-termsβ new customizable syntax for special terms and phrases - π’
remark-textrβ transform text w/Textr - π’
remark-tight-commentsβ selectively remove newlines around comments - π’
remark-titleβ check and add the document title - π’
remark-tocβ add a table of contents - π’
remark-torchlightβ syntax highlighting powered by torchlight.dev - π’
remark-tree-sitterβ highlight code blocks in markdown files using Tree-sitter (rehype compatible) - π’
remark-truncate-linksβ truncate/shorten urls not manually named - π’
remark-twemojiβ turn emoji into Twemoji - π’
remark-typedoc-symbol-linksβ turn Typedoc symbol link expressions into markdown links - π’
remark-typescriptβ turn TypeScript code to JavaScript - π’
remark-typografβ transform text w/ Typograf - π’
remark-unlinkβ remove all links, references, and definitions - π’
remark-usageβ add a usage example - π’
remark-utf8β turn bolds, italics, and code into UTF 8 special characters - π’
remark-validate-linksβ check links to headings and files - β οΈ
remark-variablesβ new syntax for variables - π’
remark-vdomβ compile markdown to VDOM - π’
remark-wiki-linkβ new syntax for wiki links (rehype compatible) - π’
remark-yaml-configβ configure remark w/ YAML
List of utilities
For things that work with the syntax tree used in remark for markdown,
see Β§ List of utilities in syntax-tree/mdast.
For tools that work with mdast and other syntax trees,
see Β§ List of utilities in syntax-tree/unist.
For tools that work with the virtual file format used in remark,
see Β§ List of utilities in vfile/vfile.
Use plugins
To use a plugin programmatically (from JavaScript),
call the use() method.
To use plugin with remark-cli (from the terminal),
pass a --use flag or
specify it in a
configuration file.
Create plugins
To create a plugin,
first read up on what they are in
Β§ Plugin in unifiedjs/unified.
After that read
Β§ Create a remark plugin on unifiedjs.com
for a practical introduction.
Finally take one of the existing plugins,
which looks similar to what youβre about to make,
and work from there.
If you get stuck,
discussions is a good place 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-.
If it works with virtual files use vfile-.
Use default exports to expose plugins from your packages.
Add remark-plugin keywords in package.json.
Add a remark-plugin topic to your repo on GitHub.
Create a pull request to add the plugin here on this page!