hast utility to get the state of a <menu>
element.
npm:
npm install hast-util-menu-state
var menuState = require('hast-util-menu-state') // If there’s no last element or that node is not a `menu`: menuState([{type: 'element', tagName: 'a'}]) // => null // If the last node is a `menu` without `type`: menuState([{type: 'element', tagName: 'menu'}]) // => 'toolbar' // If the last node is a `menu` with a `type`, or that node has // a parent `menu` with a type: menuState([ {type: 'element', tagName: 'menu', properties: {type: 'context'}}, {type: 'element', tagName: 'li'}, {type: 'element', tagName: 'menu'} ]) // => 'context'
Get the state of a <menu>
element. The state is calculated from the lowest <menu>
with a valid type
property. If no <menu>
has a type
, it defaults to 'toolbar'
.
The algorithm stops looking for higher <menu>
s if a template
element, or non-element, is found.
nodes
(Array.<Node>
, optional) — Nodes to check, where the lastnode
is a<menu>
element. The first node is its root. All nodes are therefore inclusive ancestors.
string?
— either 'context'
or 'toolbar'
(the state the menu
is in), or null
, if the last node is not a menu
element.
hast-util-menu-state
does not change the syntax tree so there are no openings for cross-site scripting (XSS) attacks.
unist-util-visit-parents
— recursively walk over unist nodes, with ancestral information
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.