Merge "Enable mw-ui-radio styles on Special:Preferences"
[lhc/web/wiklou.git] / maintenance / jsduck / eg-iframe.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <title>MediaWiki Code Example</title>
6 <script>
7 /**
8 * Basic log console for the example iframe in documentation pages.
9 */
10 var log = ( function () {
11 var pre;
12 return function () {
13 var str, i, len, line;
14 if ( !pre ) {
15 pre = document.createElement( 'pre' );
16 pre.className = 'mw-jsduck-log';
17 ( document.body || document.documentElement ).appendChild( pre );
18 }
19 str = [];
20 for ( i = 0, len = arguments.length; i < len; i++ ) {
21 str.push( String( arguments[ i ] ) );
22 }
23 line = document.createElement( 'div' );
24 line.className = 'mw-jsduck-log-line';
25 line.appendChild(
26 document.createTextNode( str.join( ' , ' ) + '\n' )
27 );
28 pre.appendChild( line );
29 };
30 }() );
31
32 window.onerror = function ( error, filePath, linerNr ) {
33 log( error + '\n' + filePath + ':' + linerNr );
34 };
35 </script>
36 <script src="modules/src/startup.js"></script>
37 <script>
38 function startUp() {
39 mw.config = new mw.Map();
40 }
41 </script>
42 <script src="modules/lib/jquery/jquery.js"></script>
43 <script src="modules/src/mediawiki/mediawiki.js"></script>
44 <script src="modules/src/mediawiki/mediawiki.startUp.js"></script>
45 <style>
46 .mw-jsduck-log {
47 position: relative;
48 min-height: 3em;
49 margin-top: 2em;
50 background: #f7f7f7;
51 border: 1px solid #e4e4e4;
52 }
53
54 .mw-jsduck-log::after {
55 position: absolute;
56 bottom: 100%;
57 right: -1px;
58 padding: 0.5em;
59 background: #fff;
60 border: 1px solid #e4e4e4;
61 border-bottom: 0;
62 border-radius: 0.5em 0.5em 0 0;
63 font: normal 0.5em sans-serif;
64 content: 'console';
65 }
66
67 .mw-jsduck-log-line {
68 padding: 0.2em 0.5em;
69 white-space: pre-wrap;
70 }
71
72 .mw-jsduck-log-line:nth-child(odd) {
73 background: #fff;
74 }
75 </style>
76 </head>
77 <body>
78 <script>
79 if ( window.mw ) {
80 mw.log = log;
81 }
82
83 window.onerror = function ( error, filePath, linerNr ) {
84 log( filePath + ':' + linerNr );
85 };
86
87 /**
88 * Method called by jsduck to execute the example code.
89 */
90 function loadInlineExample( code, options, callback ) {
91 try {
92 eval( code );
93 callback && callback( true );
94 } catch ( e ) {
95 log( 'Uncaught ' + e );
96 callback && callback( false, e );
97 throw e;
98 }
99 }
100 </script>
101 </body>
102 </html>