Skip to content
This repository was archived by the owner on Aug 9, 2023. It is now read-only.

syntax-tree/hast-util-menu-state

hast-util-menu-state

Build Coverage Downloads Size Sponsors Backers Chat

hast utility to get the state of a <menu> element.

Install

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

npm:

npm install hast-util-menu-state

Use

import {menuState} from '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'

API

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

menuState(nodes)

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.

Parameters
Returns

string? — either 'context' or 'toolbar' (the state the menu is in), or null, if the last node is not a menu element.

Security

hast-util-menu-state does not change the syntax tree so there are no openings for cross-site scripting (XSS) attacks.

Related

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

About

Legacy: utility to get the state of a menu element

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •