Demos: Add new infrastructure using a require.js bootstrap

Fixes #10119
Closes gh-1557
This commit is contained in:
Alexander Schmitz 2015-05-14 09:57:50 -04:00
parent 62446d957e
commit 7336a5869c
3 changed files with 74 additions and 1 deletions

View File

@ -205,9 +205,18 @@ grunt.initConfig({
},
uglify: minify,
htmllint: {
good: [ "demos/**/*.html", "tests/**/*.html" ].concat( htmllintBad.map( function( file ) {
good: [ "tests/**/*.html" ].concat( htmllintBad.map( function( file ) {
return "!" + file;
} ) ),
demos: {
options: {
ignore: [
/The text content of element “script” was not in the required format: Expected space, tab, newline, or slash but found “.” instead/
] },
src: [ "demos/**/*.html" ].concat( htmllintBad.map( function( file ) {
return "!" + file;
} ) )
},
bad: {
options: {
ignore: [

60
demos/bootstrap.js vendored Normal file
View File

@ -0,0 +1,60 @@
/* globals window:true, document:true */
( function() {
// Find the script element
var scripts = document.getElementsByTagName( "script" );
var script = scripts[ scripts.length - 1 ];
// Read the modules
var modules = script.getAttribute( "data-modules" );
var pathParts = window.location.pathname.split( "/" );
var effectsAll = [
"effect-blind",
"effect-bounce",
"effect-clip",
"effect-drop",
"effect-explode",
"effect-fade",
"effect-fold",
"effect-highlight",
"effect-puff",
"effect-pulsate",
"effect-scale",
"effect-shake",
"effect-size",
"effect-slide"
];
// Hide the page while things are loading to prevent a FOUC
document.documentElement.className = "demo-loading";
require.config( {
baseUrl: "../../ui",
paths: {
jquery: "../external/jquery/jquery",
external: "../external/"
},
shim: {
"external/globalize/globalize.culture.de-DE": [ "external/globalize/globalize" ],
"external/globalize/globalize.culture.ja-JP": [ "external/globalize/globalize" ]
}
} );
// Replace effects all shortcut modules with all the effects modules
if ( modules && modules.indexOf( "effects-all" ) !== -1 ) {
modules = modules.replace( /effects-all/, effectsAll.join( " " ) );
}
modules = modules ? modules.replace( /^\s+|\s+$/g, "" ).split( /\s+/ ) : [];
modules.push( pathParts[ pathParts.length - 2 ] );
require( modules, function() {
var newScript = document.createElement( "script" );
document.documentElement.className = "";
newScript.text = "( function() { " + script.innerHTML + " } )();";
document.head.appendChild( script ).parentNode.removeChild( script );
} );
} )();

View File

@ -2,6 +2,10 @@ body {
font-family: Arial, Helvetica, sans-serif;
}
.demo-loading {
visibility: hidden;
}
table {
font-size: 1em;
}