2.0.0 • Published 8 years ago

ocss-parser v2.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
8 years ago

ocss-parser

version build

This is the repository for the syntax parser and stringifier of the OCSS preprocessor. You can try it out in the live editor.

Input

display: block
color: red

child // comment
  color: blue
  background: transparent

  :hover
    color: red

  subchild
    font-size: 12px
// another comment
=big
  font-size: 200%

  child
    color: red

AST Output

{
  "type": "object",
  "name": "test",
  "declarations": [
    {
      "position": {
        "line": 1
      },
      "type": "declaration",
      "property": "display",
      "value": "block"
    },
    {
      "position": {
        "line": 2
      },
      "type": "declaration",
      "property": "color",
      "value": "red"
    }
  ],
  "elements": [
    {
      "position": {
        "line": 4
      },
      "type": "element",
      "name": "child",
      "declarations": [
        {
          "position": {
            "line": 5
          },
          "type": "declaration",
          "property": "color",
          "value": "blue"
        },
        {
          "position": {
            "line": 6
          },
          "type": "declaration",
          "property": "background",
          "value": "transparent"
        }
      ],
      "pseudoelements": [
        {
          "position": {
            "line": 8
          },
          "type": "pseudoelement",
          "name": "hover",
          "declarations": [
            {
              "position": {
                "line": 9
              },
              "type": "declaration",
              "property": "color",
              "value": "red"
            }
          ]
        }
      ],
      "elements": [
        {
          "position": {
            "line": 11
          },
          "type": "element",
          "name": "subchild",
          "declarations": [
            {
              "position": {
                "line": 12
              },
              "type": "declaration",
              "property": "font-size",
              "value": "12px"
            }
          ]
        }
      ]
    }
  ],
  "modifiers": [
    {
      "position": {
        "line": 14
      },
      "type": "modifier",
      "name": "big",
      "declarations": [
        {
          "position": {
            "line": 15
          },
          "type": "declaration",
          "property": "font-size",
          "value": "200%"
        }
      ],
      "elements": [
        {
          "position": {
            "line": 17
          },
          "type": "element",
          "name": "child",
          "declarations": [
            {
              "position": {
                "line": 18
              },
              "type": "declaration",
              "property": "color",
              "value": "red"
            }
          ]
        }
      ]
    }
  ]
}

CSS Output

.test {
  display: block;
  color: red;
}
.test-child {
  color: blue;
  background: transparent;
}
.test-child-subchild {
  font-size: 12px;
}
.test-child:hover {
  color: red;
}
.test--big {
  font-size: 200%;
}
.test--big .test-child {
  color: red;
}

Tests

Install dependencies with npm install once. Afterwards run npm test every time you want to start the tests.

2.0.0

8 years ago

1.4.0

9 years ago

1.3.3

9 years ago

1.3.2

10 years ago

1.3.1

10 years ago

1.3.0

10 years ago

1.2.4

10 years ago

1.2.3

10 years ago

1.2.2

10 years ago

1.2.1

10 years ago

1.2.0

10 years ago

1.1.0

10 years ago

1.0.0

10 years ago