mdast utility to find and replace text in a tree.
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-replaceimport {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: "."This package exports the following identifiers: findAndReplace. There is no default export.
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.
findAndReplace(tree, find, replace?[, options])findAndReplace(tree, search[, options])
tree(Node) — mdast treefind(stringorRegExp) — Value to find and remove. Whenstring, escaped and made into a globalRegExpreplace(stringorFunction) — Value to insert. Whenstring, turned into aTextnode. WhenFunction, invoked with the results of callingRegExp.execas arguments, in which case it can return a single or a list ofNode, astring(which is wrapped in aTextnode), orfalseto not replacesearch(ObjectorArray) — Perform multiple find-and-replaces. WhenArray, each entry is a tuple (Array) of afind(at0) andreplace(at1). WhenObject, each key is afind(in string form) and each value is areplaceoptions.ignore(Test, default:[]) — Anyunist-util-iscompatible test.
The given, modified, tree.
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.
hast-util-find-and-replace— hast utility to find and replace textunist-util-select— select unist nodes with CSS-like selectors
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.