@@ -2,6 +2,7 @@ module.exports = function( grunt ) {
22 "use strict" ;
33
44 var _ = require ( "underscore" ) ,
5+ cheerio = require ( "cheerio" ) ,
56
67 replaceCombinedCssReference = function ( content , processedName ) {
78 return content . replace ( / \. \. \/ c s s \/ / , "css/" )
@@ -393,8 +394,8 @@ module.exports = function( grunt ) {
393394 var processedName = grunt . config . process ( name + "<%= versionSuffix %>" ) ;
394395 content = content . replace ( / _ a s s e t s \/ j s \/ " > / gi, "_assets/js/index.js\">" ) ;
395396 content = content . replace ( / \. \. \/ e x t e r n a l \/ j q u e r y \/ / gi, "js/" ) ;
397+ content = content . replace ( / \. \. \/ j s \/ \" / gi, "js/\"" ) ;
396398 content = content . replace ( / j s \/ " / gi, "js/" + processedName + ".min.js\"" ) ;
397- content = content . replace ( new RegExp ( "../js/" + processedName , "gi" ) , "js/" + processedName ) ;
398399 content = replaceCombinedCssReference ( content , processedName ) ;
399400 content = content . replace ( / ^ \s * < \? p h p i n c l u d e \( \s * [ ' " ] ( [ ^ ' " ] + ) [ ' " ] .* $ / gmi,
400401 function ( match , includePath /*, offset, string */ ) {
@@ -435,15 +436,45 @@ module.exports = function( grunt ) {
435436 } ,
436437 "demos.backbone" : {
437438 options : {
438- processContent : function ( content /*, srcPath */ ) {
439- var processedName = grunt . config . process ( name + "<%= versionSuffix %>" ) ;
440- content = content . replace ( / " j q u e r y " : " \. \. \/ \. \. \/ \. \. \/ j s \/ j q u e r y " / ,
441- "\"jquery\": \"../../js/jquery\"" ) ;
442- content = replaceCombinedCssReference ( content , processedName ) ;
439+ processContent : function ( content , srcPath ) {
440+ var $ ,
441+ processedName = grunt . config . process ( name + "<%= versionSuffix %>" ) ;
442+
443+ if ( / \. h t m l $ / . test ( srcPath ) ) {
444+
445+ content = replaceCombinedCssReference ( content , processedName ) ;
446+
447+ $ = cheerio . load ( content ) ;
448+
449+ $ ( "script" ) . each ( function ( idx , element ) {
450+ var script = $ ( element ) ;
451+ if ( / r e q u i r e j s \. c o n f i g \. j s $ / . test ( script . attr ( "src" ) ) ) {
452+
453+ // Get rid of the requirejs.config.js script tag since we're using the built bundle
454+ script . remove ( ) ;
455+ } else if ( / r e q u i r e .j s $ / . test ( script . attr ( "src" ) ) ) {
456+
457+ // Use the rawgithub.com version for requirejs
458+ script . attr ( "src" ,
459+ "//rawgithub.com/jrburke/requirejs/" +
460+ grunt . template . process ( "<%= pkg.devDependencies.requirejs %>" ) +
461+ "/require.js" ) ;
462+ }
463+ } ) ;
464+
465+ // write out newly created file contents
466+ content = $ . html ( ) ;
467+ } else if ( / \. j s $ / . test ( srcPath ) ) {
468+
469+ // Redifines paths for compiled demos
470+ content = content . replace ( / b a s e U r l : .* $ / m, "baseUrl: \"../js\"," ) ;
471+ content = content . replace ( / \. \. \/ e x t e r n a l \/ j q u e r y \/ / , "" ) ;
472+ content = content . replace ( / j q u e r y \. m o b i l e / , processedName ) ;
473+ content = content . replace (
474+ / " b a c k b o n e - r e q u i r e j s - d e m o s " .* $ / m,
475+ "\"backbone-requirejs-demos\": \"../backbone-requirejs/js\"" ) ;
476+ }
443477
444- // Update dependency to jquery.mobile claimed by jquerymobile.js
445- content = content . replace ( / \[ " \. \. \/ \. \. \/ j s \/ \? n o e x t " \] / ,
446- "[ \"../../../" + processedName + "\" ]" ) ;
447478 return content ;
448479 }
449480 } ,
0 commit comments