function renderGallery () {
  var tachyons = require('../package.json')

  var css = fs.readFileSync('./css/tachyons.css', 'utf8')
  var cssMin = fs.readFileSync('./css/tachyons.min.css', 'utf8')

  var obj = cssstats(cssMin)
  var size = filesize(obj.gzipSize)

  var template = fs.readFileSync('./src/templates/gallery.html', 'utf8')
  var head = fs.readFileSync('./src/templates/head.html', 'utf8')
  var siteFooter = fs.readFileSync('./src/templates/footer.html', 'utf8')
  var siteHeader = fs.readFileSync('./src/templates/header.html', 'utf8')

  var tpl = _.template(template)
  var html = tpl({
    size: size,
    version: tachyons.version,
    siteFooter: siteFooter,
    siteHeader: siteHeader,
    head: head,
  })

  fs.writeFileSync('./gallery/index.html', html)
}
Пример #2
0
compile = function() {
  var dir = path.join(__dirname, '../src/')
  var dest = path.join(__dirname, '../css/')

  var src = fs.readFileSync(dir + 'basscss.css', 'utf8')

  var css = cssnext(src, {
    features: {
      customProperties: {
        strict: false, // disable variable fallbacks from being redundantly added
      },
      rem: false,
      pseudoElements: false,
      colorRgba: false
    }
  })
  css =
    postcss()
    .use(removeComments())
    .use(removeRoot())
    .process(css)
    .css
  var minified = new Cleancss({
      advanced: false,
    }).minify(css).styles

  var stats = cssstats(css)
  console.log('Size: ' + filesize(stats.size))
  console.log('Gzipped: ' + filesize(stats.gzipSize))
  console.log('Rules: ' + stats.rules.length)
  console.log('Selectors: ' + stats.aggregates.selectors)
  console.log('Declarations: ' + stats.aggregates.declarations)

  css = 
    [
      '/*',
      '',
      '    Basscss v' + pkg.version,
      '    ' + pkg.description,
      '    http://basscss.com',
      '',
      '    ' + filesize(stats.size),
      '    ' + filesize(stats.gzipSize) + ' Gzipped',
      '    ' + stats.rules.length + ' Rules',
      '    ' + stats.aggregates.selectors + ' Selectors',
      '    ' + stats.aggregates.declarations + ' Declarations',
      '    ' + stats.aggregates.properties.length + ' Properties',
      '',
      '*/',
      '',
      '',
      css
    ].join('\n')
  fs.writeFileSync(dest + 'basscss.css', css)
  fs.writeFileSync(dest + 'basscss.min.css', minified)
  console.log('Compiled to css/basscss.css and css/basscss.min.css')

}
 cssFiles.forEach(function(file) {
   try {
     var css = fs.readFileSync(file, 'utf8')
     var stats = cssstats(css)
     fs.writeFileSync('cssstats/' + file.split('./css/')[1] + '.json', JSON.stringify(stats))
   } catch(e) {
     console.log(e)
   }
 })
      }).then(function () {
        frontMatter.stats = cssstats(frontMatter.componentCss)

        // TODO: Update me once src/ uses the npm modules
        frontMatter.modules = Object.keys(moduleSrcs).map(function (module) {
          return 'tachyons-' + module.split('/_')[1].replace('.css', '')
        })

        var compiledPage = _.template(template)(frontMatter)
        mkdirp.sync(newDir)
        fs.writeFileSync(newFile, compiledPage)
      })
Пример #5
0
module.exports = async function (req, res) {
  try {
    const url = normalizeUrl(req.url.replace('/?url=', ''))
    const styles = await getInline(url)

    const stats = cssstats(styles.map(style => `${style.tag} { ${style.style} }`).join(''))

    res.setHeader('Access-Control-Allow-Origin', '*')

    send(res, 200, stats)
  } catch (e) {
    send(res, 422)
  }
}
      }).then(function (result) {
        console.log('component css selection complete for', component)
        frontMatter.componentCss = result.css
        frontMatter.stats = cssstats(frontMatter.componentCss)

        // TODO: Update me once src/ uses the npm modules
        frontMatter.modules = Object.keys(moduleSrcs).map(function (module) {
          return 'tachyons-' + module.split('/_')[1].replace('.css', '')
        })

        var compiledPage = _.template(template)(frontMatter)
        console.log('creating new dir', newDir)
        mkdirp.sync(newDir)
        fs.writeFileSync(newFile, compiledPage)
        console.log('finished component build for', component)
      }).catch(function (e) { console.log(e) })
Пример #7
0
}).then(function (result) {
  if (cli.flags.generateDocs) {
    const stats = cssstats(result.css)
    const pkg = require(cli.flags.package)
    const template = fs.readFileSync(__dirname + '/templates/readme.md', 'utf8')
    const tpl = _.template(template)

    let authors = `* [mrmrs](http://mrmrs.io)
* [johno](http://johnotander.com)
`

    if (cli.flags.authors) {
      authors = authorsToMd(pkg)
    }

    const srcMd = /^\/\*!!![\s\S]*?\*\/.*/.exec(input)

    const defaultMd = `
      # ${pkg.name} ${pkg.version}

      ${pkg.description}
    `

    const md = tpl({
      stats,
      authors,
      module: pkg,
      srcMd: dedent(srcMd && srcMd[0] || defaultMd).replace(/^\/\*!!!/, '').replace(/\*\/$/, ''),
      srcCss: trailingLines(result.css)
    })

    console.log(trailingLines(md))
    process.exit(0)
  } else {
    console.log(trailingLines(result.css))
    process.exit(0)
  }
})
Пример #8
0
module.exports = function(obj) {

  var model = obj;
  model.cssPretty = beautify(obj.css);

  model.stats = cssstats(obj.css, {
    safe: true
  });
  if (!model.stats) {
    console.log('no stats');
  }

  model.totals = parseTotals(model.stats);
  model.uniques = parseUniques(model.stats);
  model.uniquesGraph = uniquesGraph(model.stats);
  model.specificityGraph = model.stats.selectors.getSpecificityGraph();
  model.rulesizeGraph = model.stats.rules.size.graph;
  model.mediaQueries = _.uniq(model.stats.mediaQueries.values);
  model.spacingResets = spacingResets(model.stats);

  return model;

};
Пример #9
0
    this.files.forEach(function (file) {
      // Concat specified files.
      var src = file.src.filter(function (filepath) {
        // Warn on and remove invalid source files (if nonull was set).
        if (!grunt.file.exists(filepath)) {
          grunt.log.warn('Source file "' + filepath + '" not found.');
          return false;
        } else {
          return true;
        }
      }).map(function (filepath) {
        // Read file source.
        return grunt.file.read(filepath);
      });

      // Write the destination file.

      var results = cssstats(src.toString(), options);
      var results = JSON.stringify(results, undefined, 2);
      grunt.file.write(file.dest, results);

      // Print a success message.
      grunt.log.writeln('File "' + file.dest + '" created.');
    });
Пример #10
0
var _ = require('lodash')
var fs = require('fs')
var gzip = require('gzip-size')
var filesize = require('filesize')
var cssstats = require('cssstats')


var module = require('tachyons-links/package.json')
var moduleCss = fs.readFileSync('node_modules/tachyons-links/css/tachyons-links.min.css', 'utf8')
var moduleObj = cssstats(moduleCss)
var moduleSize = filesize(moduleObj.gzipSize)
var moduleName = module.name

var srccss = fs.readFileSync('./src/css/_links.css', 'utf8')
var navDocs = fs.readFileSync('./src/templates/nav_docs.html', 'utf8')
var siteFooter = fs.readFileSync('./src/templates/footer.html', 'utf8')
var siteHeader = fs.readFileSync('./src/templates/header.html', 'utf8')
var head = fs.readFileSync('./src/templates/head.html', 'utf8')
var googleAnalytics = fs.readFileSync('./src/templates/ga.html', 'utf8')


var template = fs.readFileSync('./src/templates/docs/links/index.html', 'utf8')
var tpl = _.template(template)
var html = tpl({
  moduleVersion: module.version,
  moduleSize: moduleSize,
  name: moduleName,
  moduleObj: moduleObj,
  srccss: srccss,
  navDocs: navDocs,
  siteFooter: siteFooter,
Пример #11
0
compile = function() {
  var dir = path.join(__dirname, '../')
  var dest = path.join(__dirname, '../css/')

  var src = fs.readFileSync(dir + 'index.css', 'utf8')

  var result =
    postcss()
    .use(cssnext({
      features: {
        customProperties: {
          strict: false, // disable variable fallbacks from being redundantly added
        },
        rem: false,
        pseudoElements: false,
        colorRgba: false
      }
    }))
    .use(removeComments())
    .use(cssstats())
    .use(autoprefixer())
    .use(nested())
    .use(packer())
    .use(mover())
    .use(reporter())
    .process(src)

  var css = result.css
  var minified = new Cleancss({
      advanced: true,
    }).minify(css).styles

  var stats = result.messages.filter(function (message) {
    return message.stats
  })
  .map(function (message) {
    return message.stats
  })[0]

  console.log('Size: ' + filesize(stats.size))
  console.log('Gzipped: ' + filesize(stats.gzipSize))
  console.log('Rules: ' + stats.rules.total)
  console.log('Selectors: ' + stats.selectors.total)
  console.log('Declarations: ' + stats.declarations.total)

  css =
    [
      '/*',
      '',
      '    Utility OpenType v' + pkg.version,
      '    ' + pkg.description,
      '    ' + pkg.homepage,
      '',
      '*/',
      '',
      '',
      css
    ].join('\n')

  fs.writeFileSync(dest + pkg.name + '.css', css)
  fs.writeFileSync(dest + pkg.name + '.min.css', minified)
  console.log('Compiled to css/' + pkg.name + '.css and css/' + pkg.name + '.min.css')

}
 setUp: function(done) {
     this.testCss = grunt.file.read('test/fixtures/test.css');
     this.cssJson = cssStats(this.testCss);
     done();
 },
Пример #13
0
Object.keys(stylesheets).map(function(key) {
  var css = stylesheets[key];
  var stats = cssstats(css);
  fs.writeFileSync(path.join(__dirname, './visual/' + key + '.css'), css);
  fs.writeFileSync(path.join(__dirname, './visual/' + key + '-stats.json'), JSON.stringify(stats.aggregates, null, 2));
});
Пример #14
0
 assert.doesNotThrow(function() {
   stats = cssstats(css, { safe: false })
 })
Пример #15
0
 assert.doesNotThrow(function() {
   stats = cssstats(css)
 })
Пример #16
0
 (done) => {
   let css = fs.readFileSync(paths.buildDist(CSS_PATH), 'utf8');
   let stats = cssstats(css);
   done(null, formatStats(stats));
 }
Пример #17
0
function compile() {
  var src = fs.readFileSync(path.join(__dirname, 'base.css'), 'utf8');
  var dest = path.join(__dirname, '/');

  var result =
    postcss()
    .use(importCSS())
    .use(cssnext({
      features: {
        customProperties: {
          strict: false // disable variable fallbacks from being redundantly added
        },
        rem: false,
        pseudoElements: false,
        colorRgba: false
      }
    }))
    .use(removeComments({ removeAll: true }))
    .use(removeRoot())
    .use(selectorPrefix('.pgp'))
    .use(cssstats())
    .use(reporter())
    .process(src)

  var css = result.css
  var minified = new Cleancss({
      advanced: false,
    }).minify(css).styles

  var stats = result.messages.filter(function (message) {
    return message.stats
  })
  .map(function (message) {
    return message.stats
  })[0]

  console.log('Size: ' + filesize(stats.size))
  console.log('Gzipped: ' + filesize(stats.gzipSize))
  console.log('Rules: ' + stats.rules.total)
  console.log('Selectors: ' + stats.selectors.total)
  console.log('Declarations: ' + stats.declarations.total)

  css =
    [
      '/*',
      '',
      '    Basscss for cypher',
      '    http://basscss.com',
      '',
      '    ' + filesize(stats.size),
      '    ' + filesize(stats.gzipSize) + ' Gzipped',
      '    ' + stats.rules.total + ' Rules',
      '    ' + stats.selectors.total + ' Selectors',
      '    ' + stats.declarations.total + ' Declarations',
      '    ' + Object.keys(stats.declarations.properties).length + ' Properties',
      '',
      '*/',
      '',
      '',
      css
    ].join('\n')

  fs.writeFileSync(dest + 'compiled.css', css)
  fs.writeFileSync(dest + 'compiled.min.css', minified)
  console.log('Compiled to compiled.css and compiled.min.css')

}