jsduck: Add 'mediawiki.startUp.js' to eg-iframe
[lhc/web/wiklou.git] / maintenance / jsduck / eg-iframe.html
index 86eae4b..4e61140 100644 (file)
 <!DOCTYPE html>
 <html>
 <head>
-    <meta charset="utf-8">
-    <title>MediaWiki Code Example</title>
-    <script src="modules/startup.js"></script>
-    <script>
-        function startUp() {
-            mw.config = new mw.Map();
-        }
-    </script>
-    <script src="modules/jquery/jquery.js"></script>
-    <script src="modules/mediawiki/mediawiki.js"></script>
-    <style>
-        .mw-jsduck-log {
-            position: relative;
-            min-height: 3em;
-            margin-top: 2em;
-            background: #f7f7f7;
-            border: 1px solid #e4e4e4;
-        }
+       <meta charset="utf-8">
+       <title>MediaWiki Code Example</title>
+       <script>
+               /**
+                * Basic log console for the example iframe in documentation pages.
+                */
+               var log = ( function () {
+                       var pre;
+                       return function () {
+                               var str, i, len, line;
+                               if ( !pre ) {
+                                       pre = document.createElement( 'pre' );
+                                       pre.className = 'mw-jsduck-log';
+                                       ( document.body || document.documentElement ).appendChild( pre );
+                               }
+                               str = [];
+                               for ( i = 0, len = arguments.length; i < len; i++ ) {
+                                       str.push( String( arguments[ i ] ) );
+                               }
+                               line = document.createElement( 'div' );
+                               line.className = 'mw-jsduck-log-line';
+                               line.appendChild(
+                                               document.createTextNode( str.join( ' , ' ) + '\n' )
+                               );
+                               pre.appendChild( line );
+                       };
+               }() );
 
-        .mw-jsduck-log::after {
-            position: absolute;
-            bottom: 100%;
-            right: -1px;
-            padding: 0.5em;
-            background: #fff;
-            border: 1px solid #e4e4e4;
-            border-bottom: 0;
-            border-radius: 0.5em 0.5em 0 0;
-            font: normal 0.5em sans-serif;
-            content: 'console';
-        }
+               window.onerror = function ( error, filePath, linerNr ) {
+                       log( error + '\n' + filePath + ':' + linerNr  );
+               };
+       </script>
+       <script src="modules/src/startup.js"></script>
+       <script>
+               function startUp() {
+                       mw.config = new mw.Map();
+               }
+       </script>
+       <script src="modules/lib/jquery/jquery.js"></script>
+       <script src="modules/src/mediawiki/mediawiki.js"></script>
+       <script src="modules/src/mediawiki/mediawiki.startUp.js"></script>
+       <style>
+               .mw-jsduck-log {
+                       position: relative;
+                       min-height: 3em;
+                       margin-top: 2em;
+                       background: #f7f7f7;
+                       border: 1px solid #e4e4e4;
+               }
 
-        .mw-jsduck-log-line {
-            padding: 0.2em 0.5em;
-            white-space: pre-wrap;
-        }
+               .mw-jsduck-log::after {
+                       position: absolute;
+                       bottom: 100%;
+                       right: -1px;
+                       padding: 0.5em;
+                       background: #fff;
+                       border: 1px solid #e4e4e4;
+                       border-bottom: 0;
+                       border-radius: 0.5em 0.5em 0 0;
+                       font: normal 0.5em sans-serif;
+                       content: 'console';
+               }
 
-        .mw-jsduck-log-line:nth-child(odd) {
-            background: #fff;
-        }
-    </style>
+               .mw-jsduck-log-line {
+                       padding: 0.2em 0.5em;
+                       white-space: pre-wrap;
+               }
+
+               .mw-jsduck-log-line:nth-child(odd) {
+                       background: #fff;
+               }
+       </style>
 </head>
 <body>
-    <script>
-        /**
-         * Basic log console for the example iframe in documentation pages.
-         */
-        ( function () {
-            var pre;
-            mw.log = function () {
-                var str, i, len, line;
-                if ( !pre ) {
-                    pre = document.createElement( 'pre' );
-                    pre.className = 'mw-jsduck-log';
-                    document.body.appendChild( pre );
-                }
-                str = [];
-                for ( i = 0, len = arguments.length; i < len; i++ ) {
-                    str.push( String( arguments[ i ] ) );
-                }
-                line = document.createElement( 'div' );
-                line.className = 'mw-jsduck-log-line';
-                line.appendChild(
-                    document.createTextNode( str.join( ' , ' ) + '\n' )
-                );
-                pre.appendChild( line );
-            };
-        }() );
+<script>
+       if ( window.mw ) {
+               mw.log = log;
+       }
+
+       window.onerror = function ( error, filePath, linerNr ) {
+               log( filePath + ':' + linerNr  );
+       };
 
-        /**
-         * Method called by jsduck to execute the example code.
-         */
-        function loadInlineExample( code, options, callback ) {
-            try {
-                eval( code );
-                callback && callback( true );
-            } catch (e) {
-                mw.log( 'Uncaught exception: ' + e );
-                callback && callback( false, e );
-                throw e;
-            }
-        }
-    </script>
+       /**
+        * Method called by jsduck to execute the example code.
+        */
+       function loadInlineExample( code, options, callback ) {
+               try {
+                       eval( code );
+                       callback && callback( true );
+               } catch ( e ) {
+                       log( 'Uncaught ' + e );
+                       callback && callback( false, e );
+                       throw e;
+               }
+       }
+</script>
 </body>
 </html>