diff --git a/Gruntfile.js b/Gruntfile.js index a10a39a..18e80d3 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -4,122 +4,122 @@ var exec = require( "child_process" ).exec, module.exports = function( grunt ) { -grunt.loadNpmTasks( "grunt-jquery-content" ); - -grunt.initConfig({ - "build-posts": { - page: "page/**" - }, - "build-resources": { - all: "resources/**" - }, - wordpress: (function() { - var config = require( "./config" ); - config.dir = "dist/wordpress"; - return config; - })() -}); - -grunt.registerTask( "build-download", function() { - function writeFiles() { - var frontend = require( "download.jqueryui.com" ).frontend({ - host: "http://download.jqueryui.com", - env: "production" - }), - download = frontend.download, + grunt.loadNpmTasks( "grunt-jquery-content" ); + + grunt.initConfig({ + "build-posts": { + page: "page/**" + }, + "build-resources": { + all: "resources/**" + }, + wordpress: (function() { + var config = require( "./config" ); + config.dir = "dist/wordpress"; + return config; + })() + }); + + grunt.registerTask( "build-download", function() { + function writeFiles() { + var frontend = require( "download.jqueryui.com" ).frontend({ + host: "http://download.jqueryui.com", + env: "production" + }), + download = frontend.download, themeroller = frontend.themeroller, wordpressDir = grunt.config( "wordpress.dir" ), - resourceCount = 0; - - grunt.file.write( wordpressDir + "/posts/page/download.html", - "\n" + download.index() ); - - grunt.file.write( wordpressDir + "/posts/page/themeroller.html", - "\n" + themeroller.index() ); - - grunt.file.expand( { filter: "isFile" }, dir + "/app/dist/**" ).forEach(function( file ) { - grunt.file.copy( file, - file.replace( dir + "/app/dist", wordpressDir + "/resources" ) ); - resourceCount++; - }); - - grunt.log.writeln( "Wrote download.html, themeroller.html and " + - resourceCount + " resources." ); - } - - var path = require( "path" ), - dir = path.dirname( require.resolve( "download.jqueryui.com" ) ), - done = this.async(); - - if ( grunt.option( "noprepare" ) ) { - writeFiles(); - return done(); - } - - // At this point, the download builder repo is available, so let's initialize it - grunt.log.writeln( "Initializing download module, might take a while..." ); - exec( "grunt prepare", { + resourceCount = 0; + + grunt.file.write( wordpressDir + "/posts/page/download.html", + "\n" + download.index() ); + + grunt.file.write( wordpressDir + "/posts/page/themeroller.html", + "\n" + themeroller.index() ); + + grunt.file.expand( { filter: "isFile" }, dir + "/app/dist/**" ).forEach(function( file ) { + grunt.file.copy( file, + file.replace( dir + "/app/dist", wordpressDir + "/resources" ) ); + resourceCount++; + }); + + grunt.log.writeln( "Wrote download.html, themeroller.html and " + + resourceCount + " resources." ); + } + + var path = require( "path" ), + dir = path.dirname( require.resolve( "download.jqueryui.com" ) ), + done = this.async(); + + if ( grunt.option( "noprepare" ) ) { + writeFiles(); + return done(); + } + + // At this point, the download builder repo is available, so let's initialize it + grunt.log.writeln( "Initializing download module, might take a while..." ); + exec( "grunt prepare", { cwd: "node_modules/download.jqueryui.com" - }, function( error, stdout, stderr ) { - if ( error ) { - grunt.log.error( stderr ); - return done( error ); - } - - writeFiles(); - done(); - }); -}); - -grunt.registerTask( "build-demos", function() { - function sortByTitle( a, b ) { - if ( a.filename === "default" ) { - return -1; - } - if ( b.filename === "default" ) { - return 1; - } - return a.title.toLowerCase() > b.title.toLowerCase() ? 1 : -1; - } - - // We hijack the jquery-ui checkout from download.jqueryui.com - this.requires( "build-download" ); - - var jqueryCore, subdir, - path = require( "path" ), - cheerio = require( "cheerio" ), - downloadBuilder = require( "download.jqueryui.com" ), - stable = downloadBuilder.JqueryUi.getStable(), - repoDir = path.normalize( stable.path ), - demosDir = repoDir + "demos", - externalDir = (repoDir + "external").replace( process.cwd() + "/", "" ), - targetDir = grunt.config( "wordpress.dir" ) + "/resources/demos", - highlightDir = targetDir + "-highlight", - demoList = {}; - - jqueryCore = stable.files().jqueryCore[ 0 ].data.match( /jQuery JavaScript Library v([0-9.]*)/ )[ 1 ]; - - // Copy all demos files to /resources/demos - grunt.file.recurse( demosDir, function( abspath, rootdir, subdir, filename ) { - if ( filename === "index.html" ) { - return; - } - - var content, $, - dest = targetDir + "/" + subdir + "/" + filename, - highlightDest = highlightDir + "/" + subdir + "/" + filename; - - if ( /html$/.test( filename ) ) { - content = replaceResources( grunt.file.read( abspath ) ); - - if ( !( /(\/)/.test( subdir ) ) ) { - $ = cheerio.load( content ); + }, function( error, stdout, stderr ) { + if ( error ) { + grunt.log.error( stderr ); + return done( error ); + } + + writeFiles(); + done(); + }); + }); + + grunt.registerTask( "build-demos", function() { + function sortByTitle( a, b ) { + if ( a.filename === "default" ) { + return -1; + } + if ( b.filename === "default" ) { + return 1; + } + return a.title.toLowerCase() > b.title.toLowerCase() ? 1 : -1; + } + + // We hijack the jquery-ui checkout from download.jqueryui.com + this.requires( "build-download" ); + + var jqueryCore, subdir, + path = require( "path" ), + cheerio = require( "cheerio" ), + downloadBuilder = require( "download.jqueryui.com" ), + stable = downloadBuilder.JqueryUi.getStable(), + repoDir = path.normalize( stable.path ), + demosDir = repoDir + "demos", + externalDir = (repoDir + "external").replace( process.cwd() + "/", "" ), + targetDir = grunt.config( "wordpress.dir" ) + "/resources/demos", + highlightDir = targetDir + "-highlight", + demoList = {}; + + jqueryCore = stable.files().jqueryCore[ 0 ].data.match( /jQuery JavaScript Library v([0-9.]*)/ )[ 1 ]; + + // Copy all demos files to /resources/demos + grunt.file.recurse( demosDir, function( abspath, rootdir, subdir, filename ) { + if ( filename === "index.html" ) { + return; + } + + var content, $, + dest = targetDir + "/" + subdir + "/" + filename, + highlightDest = highlightDir + "/" + subdir + "/" + filename; + + if ( /html$/.test( filename ) ) { + content = replaceResources( grunt.file.read( abspath ) ); + + if ( !( /(\/)/.test( subdir ) ) ) { + $ = cheerio.load( content ); if ( !demoList[ subdir ] ) { demoList[ subdir ] = []; } @@ -137,93 +137,95 @@ grunt.registerTask( "build-demos", function() { $ = cheerio.load( "
" );
$( "code" ).text( content );
grunt.file.write( highlightDest, jqueryContent.syntaxHighlight( $.html() ) );
- } else {
+ }
+ else {
grunt.file.write( dest, content );
- }
- } else {
- grunt.file.copy( abspath, dest );
- }
- });
-
- for ( subdir in demoList ) {
- demoList[ subdir ].sort( sortByTitle );
- }
-
- // Create list of all demos
- grunt.file.write( targetDir + "/demo-list.json", JSON.stringify( demoList, null, "\t" ) );
-
- // Copy externals into /resources/demos/external
- grunt.file.expand( { filter: "isFile" }, externalDir + "/**" ).forEach(function( filename ) {
- grunt.file.copy( filename, targetDir + "/external/" + filename.replace( externalDir, "" ) );
- });
-
- function replaceResources( source ) {
- // ../../jquery-x.y.z.js -> CDN
- source = source.replace(
- //,
- "" );
-
- // ../../ui/* -> CDN
- // Only the first script is replaced, all subsequent scripts are dropped,
- // including the full line
- source = source.replace(
- /" );
- source = source.replace(
- /^.* /resources/demos/external/*
- source = source.replace(
- / CDN
- source = source.replace(
- /" );
-
- // ../demos.css -> /resources/demos/style.css
- source = source.replace(
- //,
- "" );
-
- return source;
- }
-});
-
-grunt.registerTask( "copy-taxonomies", function() {
- grunt.file.copy( "taxonomies.json",
- grunt.config( "wordpress.dir" ) + "/taxonomies.json" );
-});
-
-grunt.registerTask( "create-quickdownload", function() {
-
- // We hijack the jquery-ui checkout from download.jqueryui.com
- this.requires( "build-download" );
-
- var done = this.async(),
- path = require( "path" );
-
- exec( "grunt build-packages:" + path.resolve( "resources/download" ), {
- cwd: "node_modules/download.jqueryui.com"
- }, function( error, stdout, stderr ) {
- if ( error ) {
- grunt.log.error( stderr );
- return done( error );
- }
-
- grunt.log.write( stdout );
- done();
- });
-});
-
-grunt.registerTask( "build", [
- "build-posts",
- "build-resources",
- "build-download",
- "build-demos",
- "copy-taxonomies"
-]);
+ }
+ }
+ else {
+ grunt.file.copy( abspath, dest );
+ }
+ });
+
+ for ( subdir in demoList ) {
+ demoList[ subdir ].sort( sortByTitle );
+ }
+
+ // Create list of all demos
+ grunt.file.write( targetDir + "/demo-list.json", JSON.stringify( demoList, null, "\t" ) );
+
+ // Copy externals into /resources/demos/external
+ grunt.file.expand( { filter: "isFile" }, externalDir + "/**" ).forEach(function( filename ) {
+ grunt.file.copy( filename, targetDir + "/external/" + filename.replace( externalDir, "" ) );
+ });
+
+ function replaceResources( source ) {
+ // ../../jquery-x.y.z.js -> CDN
+ source = source.replace(
+ //,
+ "" );
+
+ // ../../ui/* -> CDN
+ // Only the first script is replaced, all subsequent scripts are dropped,
+ // including the full line
+ source = source.replace(
+ /" );
+ source = source.replace(
+ /^.* /resources/demos/external/*
+ source = source.replace(
+ / CDN
+ source = source.replace(
+ /" );
+
+ // ../demos.css -> /resources/demos/style.css
+ source = source.replace(
+ //,
+ "" );
+
+ return source;
+ }
+ });
+
+ grunt.registerTask( "copy-taxonomies", function() {
+ grunt.file.copy( "taxonomies.json",
+ grunt.config( "wordpress.dir" ) + "/taxonomies.json" );
+ });
+
+ grunt.registerTask( "create-quickdownload", function() {
+
+ // We hijack the jquery-ui checkout from download.jqueryui.com
+ this.requires( "build-download" );
+
+ var done = this.async(),
+ path = require( "path" );
+
+ exec( "grunt build-packages:" + path.resolve( "resources/download" ), {
+ cwd: "node_modules/download.jqueryui.com"
+ }, function( error, stdout, stderr ) {
+ if ( error ) {
+ grunt.log.error( stderr );
+ return done( error );
+ }
+
+ grunt.log.write( stdout );
+ done();
+ });
+ });
+
+ grunt.registerTask( "build", [
+ "build-posts",
+ "build-resources",
+ "build-download",
+ "build-demos",
+ "copy-taxonomies"
+ ]);
};