Socket
Socket
Sign inDemoInstall

mdast-util-find-and-replace

Package Overview
Dependencies
4
Maintainers
2
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    mdast-util-find-and-replace

mdast utility to find and replace text in a tree


Version published
Maintainers
2
Install size
69.9 kB
Created

Readme

Source

mdast-util-find-and-replace

Build Coverage Downloads Size Sponsors Backers Chat

mdast utility to find and replace text in a tree.

Install

This package is ESM only: Node 12+ is needed to use it and it must be imported instead of required.

npm:

npm install mdast-util-find-and-replace

Use

import {u} from 'unist-builder'
import {inspect} from 'unist-util-inspect'
import {findAndReplace} from 'mdast-util-find-and-replace'

const tree = u('paragraph', [
  u('text', 'Some '),
  u('emphasis', [u('text', 'emphasis')]),
  u('text', ' and '),
  u('strong', [u('text', 'importance')]),
  u('text', '.')
])

findAndReplace(tree, 'and', 'or')

findAndReplace(tree, {emphasis: 'em', importance: 'strong'})

findAndReplace(tree, {
  Some: function ($0) {
    return u('link', {url: '//example.com#' + $0}, [u('text', $0)])
  }
})

console.log(inspect(tree))

Yields:

paragraph[8]
├─ link[1] [url="//example.com#Some"]
│  └─ text: "Some"
├─ text: " "
├─ emphasis[1]
│  └─ text: "em"
├─ text: " "
├─ text: "or"
├─ text: " "
├─ strong[1]
│  └─ text: "strong"
└─ text: "."

API

This package exports the following identifiers: findAndReplace. There is no default export.

findAndReplace(tree, find[, replace][, options])

Find and replace text in mdast trees. The algorithm searches the tree in preorder for complete values in Text nodes. Partial matches are not supported.

Signatures
  • findAndReplace(tree, find, replace?[, options])
  • findAndReplace(tree, search[, options])
Parameters
  • tree (Node) — mdast tree
  • find (string or RegExp) — Value to find and remove. When string, escaped and made into a global RegExp
  • replace (string or Function) — Value to insert. When string, turned into a Text node. When Function, invoked with the results of calling RegExp.exec as arguments, in which case it can return a single or a list of Node, a string (which is wrapped in a Text node), or false to not replace
  • search (Object or Array) — Perform multiple find-and-replaces. When Array, each entry is a tuple (Array) of a find (at 0) and replace (at 1). When Object, each key is a find (in string form) and each value is a replace
  • options.ignore (Test, default: []) — Any unist-util-is compatible test.
Returns

The given, modified, tree.

Security

Use of mdast-util-find-and-replace does not involve hast or user content so there are no openings for cross-site scripting (XSS) attacks.

Contribute

See contributing.md in syntax-tree/.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

Keywords

FAQs

Last updated on 26 Jul 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc