Skip to content
This repository has been archived by the owner on Jul 15, 2019. It is now read-only.

YahooArchive/css-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CSS Parser

CSS 2.1/3.0 compliant parser generated by jison.

npm version dependency status

Quick Start

Install the npm css-js from the npm repo.

npm install css-js

Server-side Use (node.js)

Parse the full CSS.

/* create the css parser */
var CSSParser = require("css-js");

var config = {};
config.ver = "3.0"; /* CSS 3.0 */
parser = new CSSParser(config);

var cssString = "...";
var ast = parser.parse(cssString);

The returned AST structure

{
    { charset: '...' },
    { imports: [ { import: '...', mediaqueries: [ { prefix: '...', media_type: '...', expression: { media_feature: '...', value: '...' }, ... } ] } ] },
    { rulesets: [ { selector: '...', declaration: [ { key: '...', value: '...' }, { key: '...', value: '...' } ] } ] },
    { medias: { mediaqueries: [ { prefix: '...', media_type: '...', expression: { media_feature: '...', value: '...' }, ... } ], rulesets: [ { selector: '...', declaration: [ { key: '...', value: '...' } ] } ] },
    { pages: { pseudo_class: '...', declaration: [ { key: '...', value: '...' } ] } },
}

Parse the CSS string in style attribute value of HTML5 page.

/* create the css parser */
var CSSParser = require("css-js");

var config = {};
config.ver = "3.0"; /* CSS 3.0 */
parser = new CSSParser(config);

var cssString = "...";
var result = parser.parseCssString(cssString);

The returned result array

[ { key: '...', value: '...' }, { key: '...', value: '...' } ]

Development

Build

grunt

How to test

grunt test

Future Work

Continue to enhance the grammar to support the CSS 3.0 and its future extension.

License

This software is free to use under the BSD license. See the LICENSE file for license text and copyright information.