install gulp
This commit is contained in:
+227
@@ -0,0 +1,227 @@
|
||||
## API
|
||||
|
||||
### gonzales.parse(css, options)
|
||||
|
||||
Parse CSS.
|
||||
|
||||
Parameters:
|
||||
|
||||
* `{String} css`
|
||||
* `{{syntax: String, rule: String}} options`
|
||||
|
||||
Returns:
|
||||
|
||||
* `{Object} ast`.
|
||||
|
||||
Example:
|
||||
```js
|
||||
var css = 'a {color: tomato}';
|
||||
var ast = gonzales.parse(css);
|
||||
```
|
||||
|
||||
Example:
|
||||
```js
|
||||
var less = 'a {$color: tomato}';
|
||||
var ast = gonzales.parse(less, {syntax: 'less'});
|
||||
```
|
||||
|
||||
Example:
|
||||
```js
|
||||
var less = '$color: tomato';
|
||||
var ast = gonzales.parse(less, {syntax: 'less', rule: 'declaration'});
|
||||
```
|
||||
|
||||
### gonzales.createNode(options)
|
||||
|
||||
Creates a new node.
|
||||
|
||||
Parameters:
|
||||
|
||||
* `{{type: String, content: String|Array}} options`
|
||||
|
||||
Returns:
|
||||
|
||||
* `{Object} ast`
|
||||
|
||||
Example:
|
||||
```js
|
||||
var css = 'a {color: tomato}';
|
||||
var ast = gonzales.parse(css);
|
||||
var node = gonzales.createNode({ type: 'animal', content: 'panda' });
|
||||
ast.content.push(node);
|
||||
```
|
||||
|
||||
### ast.length
|
||||
|
||||
### ast.toString()
|
||||
|
||||
### ast.toCSS(syntax)
|
||||
|
||||
Converts AST to code.
|
||||
|
||||
Parameters:
|
||||
|
||||
* `{String} syntax`
|
||||
|
||||
Returns:
|
||||
|
||||
* `{String} css`
|
||||
|
||||
Example:
|
||||
```js
|
||||
var css = ast.toCSS('css');
|
||||
var less = ast.toCSS('less');
|
||||
```
|
||||
### ast.contains(type)
|
||||
|
||||
Checks whether there is a child node of given type.
|
||||
|
||||
Parameters:
|
||||
|
||||
* `{String} type`
|
||||
|
||||
Returns:
|
||||
|
||||
* `{Boolean}`
|
||||
|
||||
Example:
|
||||
```js
|
||||
if (ast.contains('panda'))
|
||||
doSomething();
|
||||
```
|
||||
|
||||
### ast.first(type)
|
||||
|
||||
Returns the first child node of given type.
|
||||
|
||||
Parameters:
|
||||
|
||||
* `{String=} type`
|
||||
|
||||
Returns:
|
||||
|
||||
* `{Node} node`
|
||||
|
||||
Example:
|
||||
```js
|
||||
var node = ast.first();
|
||||
node.content = 'panda';
|
||||
```
|
||||
|
||||
Example:
|
||||
```js
|
||||
var node = ast.first('commentML');
|
||||
node.content = 'panda';
|
||||
```
|
||||
|
||||
### ast.forEach(type, function)
|
||||
|
||||
Calls the function for every child node of given type.
|
||||
|
||||
Parameters:
|
||||
|
||||
* `{String=} type`
|
||||
* `{Function} function`
|
||||
|
||||
Example:
|
||||
```js
|
||||
ast.forEach('commentML', function(node) {
|
||||
node.content = 'panda';
|
||||
});
|
||||
```
|
||||
|
||||
### ast.get(index)
|
||||
|
||||
### ast.insert(index, node)
|
||||
|
||||
### ast.is(type)
|
||||
|
||||
Checks whether the node is of given type.
|
||||
|
||||
Parameters:
|
||||
|
||||
* `{String} type`
|
||||
|
||||
Returns:
|
||||
|
||||
* `{Boolean}`
|
||||
|
||||
Example:
|
||||
```js
|
||||
if (ast.is('s'))
|
||||
ast.content = '';
|
||||
```
|
||||
|
||||
### ast.last(type)
|
||||
|
||||
Returns the last child node of given type.
|
||||
|
||||
Parameters:
|
||||
|
||||
* `{String=} type`
|
||||
|
||||
Returns:
|
||||
|
||||
* `{Node} node`
|
||||
|
||||
Example:
|
||||
```js
|
||||
var node = ast.last()
|
||||
node.content = 'panda';
|
||||
```
|
||||
|
||||
Example:
|
||||
```js
|
||||
var node = ast.last('commentML');
|
||||
node.content = 'panda';
|
||||
```
|
||||
|
||||
### ast.map(function)
|
||||
|
||||
Calls the function for every node in a tree. Modifies the tree!
|
||||
|
||||
Parameters:
|
||||
|
||||
* `{Function} function`
|
||||
|
||||
Example:
|
||||
```js
|
||||
ast.map(function(node) {
|
||||
if (node.type === 'commentML') node.content = 'panda';
|
||||
});
|
||||
```
|
||||
|
||||
|
||||
## Test
|
||||
|
||||
To run tests:
|
||||
|
||||
npm test
|
||||
|
||||
This command will build library files from sources and run tests on all files
|
||||
in syntax directories.
|
||||
|
||||
Every test has 3 files: source stylesheet, expected AST and expected string
|
||||
compiled back from AST to css.
|
||||
|
||||
If some tests fail, you can find information in test logs:
|
||||
|
||||
- `log/test.log` contains all information from stdout;
|
||||
- `log/expected.txt` contains only expected text;
|
||||
- `log/result.txt` contains only result text.
|
||||
|
||||
The last two are made for your convenience: you can use any diff app to see
|
||||
the defference between them.
|
||||
|
||||
If you want to test one specific string or get a general idea of how Gonzales
|
||||
works, you can use `test/ast.js` file.
|
||||
Simply change the first two strings (`css` and `syntax` vars) and run:
|
||||
|
||||
node test/single-test.js
|
||||
|
||||
## Report
|
||||
|
||||
If you find a bug or want to add a feature, welcome to [Issues](https://github.com/tonyganch/gonzales-pe/issues).
|
||||
|
||||
If you are shy but have a question, feel free to [drop me a
|
||||
line](mailto:tonyganch+gonzales@gmail.com).
|
||||
Reference in New Issue
Block a user