https://github.com/featurist/bo-selector
JavaScript CSS selector parser
https://github.com/featurist/bo-selector
Last synced: 3 months ago
JSON representation
JavaScript CSS selector parser
- Host: GitHub
- URL: https://github.com/featurist/bo-selector
- Owner: featurist
- License: bsd-2-clause
- Created: 2013-12-29T09:43:18.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2020-12-05T19:33:17.000Z (about 5 years ago)
- Last Synced: 2025-04-03T03:22:29.456Z (10 months ago)
- Language: JavaScript
- Homepage:
- Size: 246 KB
- Stars: 5
- Watchers: 6
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# bo-selector
A CSS selector parser based on [jison](http://zaach.github.io/jison/)
[](http://travis-ci.org/featurist/bo-selector)
### Example
```js
var parser = require('./bo-selector').parser;
var ast = parser.parse(".a[b = c], c[d]:e:f(g *:h:i[j]:k), :l > m[n ~= 'o']");
console.log(require('util').inspect(ast, false, null));
```
...generates:
```js
{ type: 'selector_list',
selectors:
[ { type: 'constraint_list',
constraints:
[ { type: 'class', name: 'a' },
{ type: 'attribute_equals', name: 'b', value: 'c' } ] },
{ type: 'element',
name: 'c',
constraints:
[ { type: 'has_attribute', name: 'd' },
{ type: 'pseudo_class', name: 'e' },
{ type: 'pseudo_func',
func:
{ type: 'function',
name: 'f',
args:
{ type: 'selector_list',
selectors:
[ { type: 'combinator_selector',
left: { type: 'element', name: 'g', constraints: [] },
right:
{ type: 'element',
name: '*',
constraints:
[ { type: 'pseudo_class', name: 'h' },
{ type: 'pseudo_class', name: 'i' },
{ type: 'has_attribute', name: 'j' },
{ type: 'pseudo_class', name: 'k' } ] },
combinator: 'descendant' } ] } } } ] },
{ type: 'combinator_selector',
left:
{ type: 'constraint_list',
constraints: [ { type: 'pseudo_class', name: 'l' } ] },
right:
{ type: 'element',
name: 'm',
constraints: [ { type: 'attribute_contains_word', name: 'n', value: 'o' } ] },
combinator: 'child' } ] }
```
### Bo?
[Craig David - Bo' Selecta Ruined My Life](http://www.youtube.com/watch?v=gpOA8AMZG8M)
### License
BSD