|
|
6 years ago | |
|---|---|---|
| .. | ||
| bin | 6 years ago | |
| doc | 6 years ago | |
| lib | 6 years ago | |
| .npmignore | 6 years ago | |
| .travis.yml | 6 years ago | |
| CHANGELOG.md | 6 years ago | |
| MIT-LICENSE.txt | 6 years ago | |
| README.md | 6 years ago | |
| TODO.nani | 6 years ago | |
| package.json | 6 years ago | |
Parse CSS.
Parameters:
{String} css{{syntax: String, rule: String}} optionsReturns:
{Object} ast.Example:
var css = 'a {color: tomato}';
var ast = gonzales.parse(css);
Example:
var less = 'a {$color: tomato}';
var ast = gonzales.parse(less, {syntax: 'less'});
Example:
var less = '$color: tomato';
var ast = gonzales.parse(less, {syntax: 'less', rule: 'declaration'});
Creates a new node.
Parameters:
{{type: String, content: String|Array}} optionsReturns:
{Object} astExample:
var css = 'a {color: tomato}';
var ast = gonzales.parse(css);
var node = gonzales.createNode({ type: 'animal', content: 'panda' });
ast.content.push(node);
Converts AST to code.
Parameters:
{String} syntaxReturns:
{String} cssExample:
var css = ast.toCSS('css');
var less = ast.toCSS('less');
Checks whether there is a child node of given type.
Parameters:
{String} typeReturns:
{Boolean}Example:
if (ast.contains('panda'))
doSomething();
Returns the first child node of given type.
Parameters:
{String=} typeReturns:
{Node} nodeExample:
var node = ast.first();
node.content = 'panda';
Example:
var node = ast.first('commentML');
node.content = 'panda';
Calls the function for every child node of given type.
Parameters:
{String=} type{Function} functionExample:
ast.forEach('commentML', function(node) {
node.content = 'panda';
});
Checks whether the node is of given type.
Parameters:
{String} typeReturns:
{Boolean}Example:
if (ast.is('s'))
ast.content = '';
Returns the last child node of given type.
Parameters:
{String=} typeReturns:
{Node} nodeExample:
var node = ast.last()
node.content = 'panda';
Example:
var node = ast.last('commentML');
node.content = 'panda';
Calls the function for every node in a tree. Modifies the tree!
Parameters:
{Function} functionExample:
ast.map(function(node) {
if (node.type === 'commentML') node.content = 'panda';
});
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
If you find a bug or want to add a feature, welcome to Issues.
If you are shy but have a question, feel free to drop me a line.