$ gnpm install hast-util-parse-selector
hast utility to create an element from a simple CSS selector.
This package is a tiny utility that helps create elements.
This utility is super niche.
You probably want the more powerful hastscript
or
hast-util-from-selector
This package is ESM only. In Node.js (version 14.14+ and 16.0+), install with npm:
npm install hast-util-parse-selector
In Deno with esm.sh
:
import {parseSelector} from 'https://esm.sh/hast-util-parse-selector@3'
In browsers with esm.sh
:
<script type="module">
import {parseSelector} from 'https://esm.sh/hast-util-parse-selector@3?bundle'
</script>
import {parseSelector} from 'hast-util-parse-selector'
console.log(parseSelector('.quux#bar.baz.qux'))
Yields:
{ type: 'element',
tagName: 'div',
properties: { id: 'bar', className: [ 'quux', 'baz', 'qux' ] },
children: [] }
This package exports the identifier parseSelector
.
There is no default export.
parseSelector(selector?[, defaultTagName])
Create a hast element from a simple CSS selector.
selector
(string
, optional)
— simple CSS selector, can contain a tag name (foo
), classes (.bar
),
and an ID (#baz
), multiple classes are allowed, uses the last ID if
multiple IDs are founddefaultTagName
(string
, default: 'div'
)
— tag name to use if selector
does not specify oneBuilt element (Element
).
This package is fully typed with TypeScript. It exports no additional types.
In TypeScript 4.2+, the type system can infer the tag name of literal
selector
s and knows that the return element has that name.
Projects maintained by the unified collective are compatible with all maintained versions of Node.js. As of now, that is Node.js 14.14+ and 16.0+. Our projects sometimes work with older versions, but this is not guaranteed.
Improper use of the selector
or defaultTagName
can open you up to a
cross-site scripting (XSS) attack as the value of tagName
, when
resolving to script
, injects a script
element into the syntax tree.
Do not use user input in selector
or use
hast-util-santize
.
hast-util-from-selector
— parse complex CSS selectors to nodesSee 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.
Copyright 2013 - present © cnpmjs.org | Home |