1.1.2 • Published 8 years ago
unist-find-node v1.1.2
unist-find-node
Find the nearest MDAST node matching the position (inline nodes excluded).
Install
npm:
npm i --save unist-find-nodeUsage
See the following example as Example.md:
# hello, This is Markdown
... any other textslet vfile = require("to-vfile");
let unified = require("unified");
let parse = require("remark-parse");
let findNode = require("./index.js");
let assert = require("assert");
let tree = unified()
.use(parse)
.parse("Example.md");
let child = findNode(tree, { line: 1, column: 1 });Then the child is the first heading node which would be intercepted as
let inspect = require("unist-util-inspect");
console.log(inspect(child));
// heading[1] (1:1-1:27, 0-26) [depth=1]
// -- text: "hello, This is Markdown" (1:3-1:26, 2-25)API
child = findNode(node, position, customizeRules = [] )node: the AST node parsed byunistposition:{line, column}an object withlineandcolumnpropertycustomizeRules: An array of Functions customizing your rules for looking for nodes;
It is an function of(node, parent) => true|fasle|null|undefined], takingnodeand itsparentand return one of the four. Rules are executed sequetially in the array, and- If a function returns
true, thenfindNodereturnnode; - If a function returns
flase, thenfindNodereturnparent - If a function returns
null, thenfindNodewill stop executing following rules and try to find result in thenode.children; If no result exists innode.children(when and only when position ranges ofnode.childrendoes not coverpositopn), then returnnode. - If a function returns
undefined, thenfindNodewill continue following rules; If all rules returnundefined, the node will continue to search atnode.children; If no result exists innode.children, returnnode
- If a function returns