0.4.7 • Published 10 years ago

CSSwhat v0.4.7

Weekly downloads
56,016
License
BSD-like
Repository
github
Last release
10 years ago

#CSSwhat Build Status

a CSS selector parser

##Example

require('CSSwhat')('foo[bar]:baz')

~> [ [ { type: 'tag', name: 'foo' },
    { type: 'attribute',
      name: 'bar',
      action: 'exists',
      value: '',
      ignoreCase: false },
    { type: 'pseudo',
      name: 'baz',
      data: null } ] ]

##API

CSSwhat(selector, options) - Parses str, with the passed options.

The function returns a two-dimensional array. The first array represents subselects separated by commas (eg. sub1, sub2), the second contains the relevant tokens for that selector. Possible token types are:

nameattributesexampleoutput
tagnamediv{ type: 'tag', name: 'div' }
universal-*{ type: 'universal' }
pseudoname, data:name(data){ type: 'pseudo', name: 'name', data: 'data' }
pseudoname, data:name{ type: 'pseudo', name: 'name', data: null }
attributename, action, value, ignoreCase[attr]{ type: 'attribute', name: 'attr', action: 'exists', value: '', ignoreCase: false }
attributename, action, value, ignoreCase[attr=val]{ type: 'attribute', name: 'attr', action: 'equals', value: 'val', ignoreCase: false }
attributename, action, value, ignoreCase[attr^=val]{ type: 'attribute', name: 'attr', action: 'start', value: 'val', ignoreCase: false }
attributename, action, value, ignoreCase[attr$=val]{ type: 'attribute', name: 'attr', action: 'end', value: 'val', ignoreCase: false }

//TODO complete list

Options:

  • xmlMode: When enabled, tagnames will be case-sensitive (ie. the output won't be lowercased).

License: BSD-like

0.4.7

10 years ago

0.4.6

10 years ago

0.4.5

10 years ago

0.4.4

10 years ago

0.4.3

10 years ago

0.4.2

10 years ago

0.4.1

11 years ago

0.4.0

11 years ago

0.3.0

11 years ago

0.2.0

11 years ago

0.1.1

11 years ago

0.1.0

12 years ago

0.0.0

12 years ago