0.8.0 • Published 4 years ago

css-selector-tokenizer v0.8.0

Weekly downloads
4,475,840
License
MIT
Repository
github
Last release
4 years ago

CSS Modules: css-selector-tokenizer

Build Status coveralls.io codecov.io

Parses and stringifies CSS selectors.

import Tokenizer from "css-selector-tokenizer";

let input = "a#content.active > div::first-line [data-content], a:not(:visited)";

Tokenizer.parse(input); // === expected
let expected = {
  type: "selectors",
  nodes: [
    {
      type: "selector",
      nodes: [
        { type: "element", name: "a" },
        { type: "id", name: "content" },
        { type: "class", name: "active" },
        { type: "operator", operator: ">", before: " ", after: " " },
        { type: "element", name: "div" },
        { type: "pseudo-element", name: "first-line" },
        { type: "spacing", value: " " },
        { type: "attribute", content: "data-content" },
      ]
    },
    {
      type: "selector",
      nodes: [
        { type: "element", name: "a" },
        { type: "nested-pseudo-class", name: "not", nodes: [
          {
            type: "selector",
            nodes: [
              { type: "pseudo-class", name: "visited" }
            ]
          }
        ] }
      ],
      before: " "
    }
  ]
}

Tokenizer.stringify(expected) // === input

// * => { type: "universal" }
// foo|element = { type: "element", name: "element", namespace: "foo" }
// *|* = { type: "universal", namespace: "*" }
// :has(h1, h2) => { type: "nested-pseudo-class", name: "has", nodes: [
//     {
//       type: "selector",
//       nodes: [
//         { type: "element", name: "h1" }
//       ]
//     },
//     {
//       type: "selector",
//       nodes: [
//         { type: "element", name: "h2" }
//       ],
//       before: " "
//     }
//   ] }

Building

npm install
npm test

Development

  • npm test -- -w will watch lib and test for changes and retest

License

MIT

With thanks

  • Mark Dalgleish
  • Glen Maddern
  • Guy Bedford

Tobias Koppers, 2015.

codelyzer@sooha/clicloud-archive-s3@olivervorasai/sliderasterjs@infinitebrahmanuniverse/nolb-css-s@iuijs/clisuperiorui@everything-registry/sub-chunk-1420p149-tableta-css-loadervusion-css-loadersuperdesk-coresticky-scroll-catchvue-compmentvision-css-loader@dimanech/cssstat-core@cloudscape-design/test-utils-core@ct-note/table@ct-note/inline-code@ct-note/marker@ct-note/quote@ct-note/simple-image@ct-note/checklist@ct-note/delimiter@ct-note/header@dinert/component@dragonzap/heml-styles@dr.pogodin/postcss-modules-resolve-importsgenerator-bootstrap-boilerplate-templatekafirchain-tetrischain_diggerstrip-pseudosstyled-css-loaderstylablestylable-intelligence-serverstylable-intelligence-servicestylable-webpack-pluginsuit-upumi-plugin-better-themeterra-toolkitterra-dev-site@artiso-solutions/vue-html-to-paper@artbc-ui/base@artbc-ui/react@applaud/css-loader@alta-ng-timeago/hiamtanh-alta@alisyahidin/core@awsui/test-utils-core@ballerine/daisyui@bitfirer/vue-qriously@cerner/webpack-config-terra@ddder/css-loader@devorso/dcountdownygd-pro-merge-lessyan-css-loadervue-merge-lessunfort@fishx/fishx-merge-less@hazyflame/vue-jitsi-meet@icestack/postcss-utils@elevenia/edts-ui-core@gotoeasy/css-selector-classes@gotoeasy/css-selector-elements@graines-digitales/nice-handsome-button@kristoffertonning/vue-laravel-errors@leiyulf/gantt-task-react@liip/class-prefixer-core@liip/postcss-class-prefixer@mpxjs/webpack-plugin@ngxvoice/ngx-voicelistner@nice-labs/typed-css-modules@nodaomg/cssstats@nodecraft/css-loader@enirisdev/angular-google-charts@ersinfotech/antd-pro-merge-less@mkeeorg/postcss-prefixer@mmmcorp/css-loader@jdxcode/postcss-modules-resolve-imports@jackfranklin/css-loader-fork@jackfranklin/css-loader-with-module-mapping@jarrydark/editorsimplejs@jmvtrinidad/postcss-prefixer@kimploo/daisyui@kommunicate/kommunicate-chatbot-plugin@randomjs/css-loader@pxfed/dcui@sak1sham/react-toc-highlight@sanity/css-loader@refactorpro/pixi-virtual-joystick@renato92/daisyui@snoweast/antd-pro-merge-less@semcore/babel-plugin-stylesmodular-css-loadermkcp-solarpunkmggauharmiguelcostero-ng2-toastyn9-codelyzern4nativescript-css-loader
0.8.0

4 years ago

0.7.3

5 years ago

0.7.2

5 years ago

0.7.1

7 years ago

0.7.0

9 years ago

0.6.0

9 years ago

0.5.4

10 years ago

0.5.3

10 years ago

0.5.2

10 years ago

0.5.1

10 years ago

0.5.0

10 years ago

0.4.1

10 years ago

0.4.0

10 years ago

0.3.1

10 years ago

0.3.0

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.0

10 years ago