css-parse

    1.7.0 • Public • Published

    css-parse Build Status

    JavaScript CSS parser for nodejs and the browser.

    Installation

    $ npm install css-parse

    Usage

    var parse = require('css-parse');
     
    // CSS input string
    var css = "body { \n background-color: #fff;\n }";
     
    var output_obj = parse(css);
     
    // Position and Source parameters
    var output_obj_pos = parse(css, { position: true, source: 'file.css' });
     
    // Print parsed object as CSS string
    console.log(JSON.stringify(output_obj, null, 2));
     

    Example

    css:

    body {
      background: #eee;
      color: #888;
    }

    parse tree:

    {
      "type": "stylesheet",
      "stylesheet": {
        "rules": [
          {
            "type": "rule",
            "selectors": [
              "body"
            ],
            "declarations": [
              {
                "type": "declaration",
                "property": "background",
                "value": "#eee"
              },
              {
                "type": "declaration",
                "property": "color",
                "value": "#888"
              }
            ]
          }
        ]
      }
    }

    parse tree with .position enabled:

    {
      "type": "stylesheet",
      "stylesheet": {
        "rules": [
          {
            "type": "rule",
            "selectors": [
              "body"
            ],
            "declarations": [
              {
                "type": "declaration",
                "property": "background",
                "value": "#eee",
                "position": {
                  "start": {
                    "line": 3,
                    "column": 3
                  },
                  "end": {
                    "line": 3,
                    "column": 19
                  }
                }
              },
              {
                "type": "declaration",
                "property": "color",
                "value": "#888",
                "position": {
                  "start": {
                    "line": 4,
                    "column": 3
                  },
                  "end": {
                    "line": 4,
                    "column": 14
                  }
                }
              }
            ],
            "position": {
              "start": {
                "line": 2,
                "column": 1
              },
              "end": {
                "line": 5,
                "column": 2
              }
            }
          }
        ]
      }
    }

    If you also pass in source: 'path/to/original.css', that will be set on node.position.source.

    Performance

    Parsed 15,000 lines of CSS (2mb) in 40ms on my macbook air.

    Related

    css-stringify
    css-value

    License

    MIT

    Install

    npm i [email protected]

    Version

    1.7.0

    License

    MIT

    Last publish

    Collaborators

    • tjholowaychuk
    • jonathanong
    • jongleberry
    • conradz
    • necolas
    • anthonyshort
    • ianstormtaylor
    • moox
    • clintwood
    • lydell
    • slexaxton