gin_lp-1.0.x-dev/postcss-glp-classes-generator/index.js

postcss-glp-classes-generator/index.js
const parser = require('postcss-selector-parser');
const fs = require('fs');
const path = require('path');

module.exports = (opts = { }) => {
  return {
    postcssPlugin: 'gin_lp_class_names',
    generate (root, postcss) {
      const ginLbClasses = {}
      const nodeItterator = function(sels) {
        sels.map(function(sel) {
          sel.nodes.forEach((innerNode)=> {

            if (innerNode.type === 'class') {
              if (innerNode.value.indexOf('glp-') === 0) {
                ginLbClasses[innerNode.value] = innerNode.value;
              }
            }
            if (innerNode.type === 'pseudo') {
              innerNode.nodes.forEach((pseudoNode)=> {
                pseudoNode.nodes.forEach((innerPseudoNode)=> {
                  if (innerPseudoNode.value.indexOf('glp-') === 0) {
                    ginLbClasses[innerPseudoNode.value] = innerPseudoNode.value;
                  }
                });
              })
            }
          })
        })
      }
      root.walk((node)=>{
        if (node.selectors != null) {
          return node.selectors.map(function(selector){
            return parser(nodeItterator).process(selector).result
          });
        }
      });
      fs.writeFileSync(opts.targetPath, JSON.stringify(Object.keys(ginLbClasses)));
    },
  }
}
module.exports.postcss = true

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc