11var fs = require ( 'fs' )
22var _ = require ( 'lodash' )
33var path = require ( 'path' )
4+ var mkdirp = require ( 'mkdirp' )
45var glob = require ( 'glob' )
56var titleize = require ( 'titleize' )
67var fm = require ( 'json-front-matter' )
@@ -14,6 +15,7 @@ var removeComments = require('postcss-discard-comments')
1415var cssVariables = require ( 'postcss-css-variables' )
1516var customMedia = require ( 'postcss-custom-media' )
1617var mqPacker = require ( 'css-mqpacker' )
18+ var cssstats = require ( 'cssstats' )
1719
1820var tachyonsCss = fs . readFileSync ( 'src/css/tachyons.css' , 'utf8' )
1921
@@ -27,11 +29,13 @@ module.exports = function () {
2729 var template = fs . readFileSync ( 'src/templates/components.html' , 'utf8' )
2830
2931 components . forEach ( function ( component ) {
30- var newDir = rmHtmlExt ( component . replace ( 'src/' , 'examples/' ) ) + '/index.html'
32+ var newDir = rmHtmlExt ( component . replace ( 'src/' , 'examples/' ) )
33+ var newFile = newDir + '/index.html'
3134 var componentHtml = fs . readFileSync ( component , 'utf8' )
3235
3336 var fmParsed = fm . parse ( componentHtml )
3437 var frontMatter = fmParsed . attributes || { }
38+ frontMatter . bodyClass = frontMatter . bodyClass || ''
3539 frontMatter . title = frontMatter . title || getTitle ( component )
3640 frontMatter . classes = getClasses ( fmParsed . body ) . map ( function ( klass ) {
3741 return '.' + klass
@@ -55,13 +59,16 @@ module.exports = function () {
5559 from : 'src/css/tachyons.css'
5660 } ) . css
5761
62+ frontMatter . stats = cssstats ( frontMatter . componentCss )
63+
5864 // TODO: Update me once src/ uses the npm modules
5965 frontMatter . modules = Object . keys ( moduleSrcs ) . map ( function ( module ) {
6066 return 'tachyons-' + module . split ( '/_' ) [ 1 ] . replace ( '.css' , '' )
6167 } )
6268
6369 var compiledPage = _ . template ( template ) ( frontMatter )
64- fs . writeFileSync ( newDir , compiledPage )
70+ mkdirp . sync ( newDir )
71+ fs . writeFileSync ( newFile , compiledPage )
6572 } )
6673 } )
6774}
0 commit comments