From 26105034da4fcce7ac883c899d781f016559310d Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 8 Nov 2018 00:38:48 +0800 Subject: switch to vuepress --- node_modules/css-what/readme.md | 51 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 node_modules/css-what/readme.md (limited to 'node_modules/css-what/readme.md') diff --git a/node_modules/css-what/readme.md b/node_modules/css-what/readme.md new file mode 100644 index 00000000..4097a95a --- /dev/null +++ b/node_modules/css-what/readme.md @@ -0,0 +1,51 @@ +# css-what [![Build Status](https://secure.travis-ci.org/fb55/css-what.svg?branch=master)](http://travis-ci.org/fb55/css-what) + +a CSS selector parser + +## Example + +```js +require('css-what')('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 selectors separated by commas (eg. `sub1, sub2`), the second contains the relevant tokens for that selector. Possible token types are: + +name | attributes | example | output +---- | ---------- | ------- | ------ +`tag`| `name` | `div` | `{ type: 'tag', name: 'div' }` +`universal`| - | `*` | `{ type: 'universal' }` +`pseudo`| `name`, `data`|`:name(data)`| `{ type: 'pseudo', name: 'name', data: 'data' }` +`pseudo`| `name`, `data`|`:name`| `{ type: 'pseudo', name: 'name', data: null }` +`pseudo-element`| `name` |`::name`| `{ type: 'pseudo-element', name: 'name' }` +`attribute`|`name`, `action`, `value`, `ignoreCase`|`[attr]`|`{ type: 'attribute', name: 'attr', action: 'exists', value: '', ignoreCase: false }` +`attribute`|`name`, `action`, `value`, `ignoreCase`|`[attr=val]`|`{ type: 'attribute', name: 'attr', action: 'equals', value: 'val', ignoreCase: false }` +`attribute`|`name`, `action`, `value`, `ignoreCase`|`[attr^=val]`|`{ type: 'attribute', name: 'attr', action: 'start', value: 'val', ignoreCase: false }` +`attribute`|`name`, `action`, `value`, `ignoreCase`|`[attr$=val]`|`{ type: 'attribute', name: 'attr', action: 'end', value: 'val', ignoreCase: false }` +`child`| - | `>` | `{ type: 'child' }` +`parent`| - | `<` | `{ type: 'parent' }` +`sibling`| - | `~` | `{ type: 'sibling' }` +`adjacent`| - | `+` | `{ type: 'adjacent' }` +`descendant`| - | | `{ type: 'descendant' }` + + +__Options:__ + +- `xmlMode`: When enabled, tag names will be case-sensitive (meaning they won't be lowercased). + +--- + +License: BSD-2-Clause -- cgit v1.2.3