|
|
преди 7 години | |
|---|---|---|
| .. | ||
| lib | преди 7 години | |
| node_modules | преди 7 години | |
| test | преди 7 години | |
| .npmignore | преди 7 години | |
| README.md | преди 7 години | |
| TODO.nani | преди 7 години | |
| coverage.html | преди 7 години | |
| package.json | преди 7 години | |
CSScomb Core is a framework for writing postprocessors.
It provides you with a nice set of features:
var Comb = require('csscomb-core');
// Constructor accepts a list of options to use and list of acceptable syntaxes.
var comb = new Comb(options, 'css');
For a simple example of usage take a look at a template project.
Feel free to fork it and modify.
There are a number of methods that become available once you create an instance.
Use a plugin.
Load configuration from JSON.
Activate and configure needed options.
Get list of available options in exact order they will be processed.
Can be used for testing purpose.
Get option's value.
Can be used inside plugin's process method.
Get name of syntax that is currently being used.
Can be used inside plugin's process method.
Process a file or a directory.
Process all files in a directory.
Process a single file.
Process a string.
css being a default value.A plugin is a JavaScript object that has methods to set value and process AST
nodes.
Take a look at Flip Comb for an example.
There are some fields you should take care of.
Option's name as it should be used in config.
"flip-comments"List of syntaxes the option supports.
This depends on parser possibilities.
Currently the following work fine: css, less, sass and scss.
['css']In order to tell CSScomb Core which values are acceptable, plugin should have
either accepts or setValue field.
accepts should be used to provide patterns, while setValue is good for
modifying value before using it.
You can use one or several of the following:
– boolean: [true]
– boolean: [false]
– boolean: [true, false]
– string: /regexp/
– number: true
setValue must be set{ boolean: [true] }Function to modify option's value before using it.
This field overrides accepts field if it's set in the plugin too.
accepts must be setfunction(value) { return value * 4; }Run the plugin before another option.
"block-indent"Modify AST nodes.
function(nodeType, nodeContent) {
if (nodeType === 'commentML') node[0] = ' (╯°□°)╯︵ ┻━┻ ';
}