unified

Project:syntax-tree/nlcst-search

Package:nlcst-search@2.0.0

  1. Dependencies:3·Dependents:23
  2. nlcst utility to search for patterns in a tree
  1. unist 80
  2. util 78
  3. utility 78
  4. nlcst 13
  5. nlcst-util 8

nlcst-search

Build Coverage Downloads Size Sponsors Backers Chat

nlcst utility to search for patterns in a tree.

Install

npm:

npm install nlcst-search

Use

var search = require('nlcst-search')
var toString = require('nlcst-to-string')

var tree = {
  type: 'SentenceNode',
  children: [
    {
      type: 'WordNode',
      children: [
        {type: 'TextNode', value: 'Don'},
        {type: 'PunctuationNode', value: '’'},
        {type: 'TextNode', value: 't'}
      ]
    },
    {type: 'WhiteSpaceNode', value: ' '},
    {
      type: 'WordNode',
      children: [{type: 'TextNode', value: 'do'}]
    },
    {type: 'WhiteSpaceNode', value: ' '},
    {
      type: 'WordNode',
      children: [
        {type: 'TextNode', value: 'Block'},
        {type: 'PunctuationNode', value: '-'},
        {type: 'TextNode', value: 'level'}
      ]
    }
  ]
}

search(tree, ['dont'], function(nodes) {
  console.log(toString(nodes))
})
// `Don’t`

search(tree, ['do blocklevel'], function(nodes) {
  console.log(toString(nodes))
})
// `do Block-level`

API

search(node, patterns, handler[, allowApostrophes|options])

Search for patterns a tree.

Throws

Error — When not given node or patterns.

Parameters
node

Tree to search in (Node).

patterns

Patterns to search for (Array.<string> or Object). If an Object, uses its keys as patterns. Each pattern is a space-delimited list of words, where each word is normalized to remove casing, apostrophes, and dashes. Spaces in a pattern mean zero or more white space nodes in the tree. Instead of a word, it’s also possible to use a wildcard symbol (*, an asterisk), that matches any word in a pattern (alpha * charlie).

handler

Handler invoked when a match is found (Function).

allowApostrophes

Treated as options.allowApostrophes.

options.allowApostrophes

Passed to nlcst-normalize (boolean, default: false).

options.allowDashes

Passed to nlcst-normalize (boolean, default: false).

options.allowLiterals

Include literal phrases (boolean, default: false).

function handler(nodes, index, parent, pattern)

Handler invoked when a match is found.

Parameters
nodes

List of siblings that match pattern (Array.<Node>).

index

Index where the match starts in parent (number).

parent

Parent node of nodes (Node).

pattern

The matched pattern (string).

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