hast-util-parse-selector

hast utility to create an element from a simple CSS selector

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
hast-util-parse-selector
1204.0.08 months ago8 years agoMinified + gzip package size for hast-util-parse-selector in KB

Readme

hast-util-parse-selector
!Buildbuild-badgebuild !Coveragecoverage-badgecoverage !Downloadsdownloads-badgedownloads !Sizesize-badgesize !Sponsorssponsors-badgecollective !Backersbackers-badgecollective !Chatchat-badgechat
hast utility to create an element from a simple CSS selector.

Contents

*   [`parseSelector(selector?[, defaultTagName])`](#parseselectorselector-defaulttagname)

What is this?

This package is a tiny utility that helps create elements.

When should I use this?

This utility is super niche. You probably want the more powerful hastscripthastscript or hast-util-from-selectorhast-util-from-selector

Install

This package is ESM onlyesm. In Node.js (version 16+), install with npm:
npm install hast-util-parse-selector

In Deno with esm.shesmsh:
import {parseSelector} from 'https://esm.sh/hast-util-parse-selector@4'

In browsers with esm.shesmsh:
<script type="module">
  import {parseSelector} from 'https://esm.sh/hast-util-parse-selector@4?bundle'
</script>

Use

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: [] }

API

This package exports the identifier parseSelectorapi-parse-selector. There is no default export.

parseSelector(selector?[, defaultTagName])

Create a hast element from a simple CSS selector.
Parameters
  • 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 found
  • defaultTagName (string, default: 'div')
— tag name to use if `selector` does not specify one
Returns
Built element (Elementelement).

Types

This package is fully typed with TypeScript. It exports no additional types.

Compatibility

Projects maintained by the unified collective are compatible with maintained versions of Node.js.
When we cut a new major release, we drop support for unmaintained versions of Node. This means we try to keep the current release line, hast-util-parse-selector@^4, compatible with Node.js 16.

Security

Improper use of the selector or defaultTagName can open you up to a cross-site scripting (XSS)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-santizehast-util-sanitize.

Related

— parse complex CSS selectors to nodes

Contribute

See contributing.mdcontributing in syntax-tree/.githubhealth for ways to get started. See support.mdsupport for ways to get help.
This project has a code of conductcoc. By interacting with this repository, organization, or community you agree to abide by its terms.

License

MITlicense © Titus Wormerauthor