[28897] | 1 | var onDocumentLoad = function ( event ) {
|
---|
| 2 |
|
---|
| 3 | var path;
|
---|
| 4 | var pathname = window.location.pathname;
|
---|
| 5 | var section = /\/(manual|api)\//.exec( pathname )[ 1 ].toString().split( '.html' )[ 0 ];
|
---|
| 6 | var name = /[\-A-z0-9]+\.html/.exec( pathname ).toString().split( '.html' )[ 0 ];
|
---|
| 7 |
|
---|
| 8 | if ( section == 'manual' ) {
|
---|
| 9 |
|
---|
| 10 | name = name.replace(/\-/g, ' ');
|
---|
| 11 |
|
---|
| 12 | path = pathname.replace( /\ /g, '-' );
|
---|
| 13 | path = /\/manual\/[-A-z0-9\/]+/.exec( path ).toString().substr( 8 );
|
---|
| 14 |
|
---|
| 15 | } else {
|
---|
| 16 |
|
---|
| 17 | path = /\/api\/[A-z0-9\/]+/.exec( pathname ).toString().substr( 5 );
|
---|
| 18 |
|
---|
| 19 | }
|
---|
| 20 |
|
---|
| 21 | var text = document.body.innerHTML;
|
---|
| 22 |
|
---|
| 23 | text = text.replace(/\[name\]/gi, name);
|
---|
| 24 | text = text.replace(/\[path\]/gi, path);
|
---|
| 25 | text = text.replace(/\[page:(\w+)\]/gi, "[page:$1 $1]" ); // [page:name] to [page:name title]
|
---|
| 26 | text = text.replace(/\[page:(\w+) ([\w|\.]+)\]/gi, "<a href=\"javascript:window.parent.goTo('$1')\" title=\"$1\">$2</a>" ); // [page:name title]
|
---|
| 27 | text = text.replace(/\[link:([\w|\:|\/|\.|\-|\_]+)\]/gi, "[link:$1 $1]" ); // [link:url] to [link:url title]
|
---|
| 28 | text = text.replace(/\[link:([\w|\:|\/|\.|\-|\_|\(|\)]+) ([\w|\:|\/|\.|\-|\_ ]+)\]/gi, "<a href=\"$1\" target=\"_blank\">$2</a>" ); // [link:url title]
|
---|
| 29 | text = text.replace(/\*([\w|\d|\"|\-|\(][\w|\d|\ |\-|\/|\+|\-|\(|\)|\=|\,|\.\"]*[\w|\d|\"|\)]|\w)\*/gi, "<strong>$1</strong>" ); // *
|
---|
| 30 |
|
---|
| 31 | document.body.innerHTML = text;
|
---|
| 32 |
|
---|
| 33 | // handle code snippets formatting
|
---|
| 34 |
|
---|
| 35 | var elements = document.getElementsByTagName( 'code' );
|
---|
| 36 |
|
---|
| 37 | for ( var i = 0; i < elements.length; i ++ ) {
|
---|
| 38 |
|
---|
| 39 | var element = elements[ i ];
|
---|
| 40 |
|
---|
| 41 | text = element.textContent.trim();
|
---|
| 42 | text = text.replace( /^\t\t/gm, '' );
|
---|
| 43 |
|
---|
| 44 | element.textContent = text;
|
---|
| 45 |
|
---|
| 46 | }
|
---|
| 47 |
|
---|
| 48 | // Edit button
|
---|
| 49 |
|
---|
| 50 | var button = document.createElement( 'div' );
|
---|
| 51 | button.id = 'button';
|
---|
| 52 | button.textContent = 'Edit this page';
|
---|
| 53 |
|
---|
| 54 | button.addEventListener( 'click', function ( event ) {
|
---|
| 55 |
|
---|
| 56 | window.open( 'https://github.com/mrdoob/three.js/blob/dev/docs/' + section + '/' + path + '.html' );
|
---|
| 57 |
|
---|
| 58 | }, false );
|
---|
| 59 |
|
---|
| 60 | document.body.appendChild( button );
|
---|
| 61 |
|
---|
| 62 | // Syntax highlighting
|
---|
| 63 |
|
---|
| 64 | var styleBase = document.createElement( 'link' );
|
---|
| 65 | styleBase.href = '../../prettify/prettify.css';
|
---|
| 66 | styleBase.rel = 'stylesheet';
|
---|
| 67 |
|
---|
| 68 | var styleCustom = document.createElement( 'link' );
|
---|
| 69 | styleCustom.href = '../../prettify/threejs.css';
|
---|
| 70 | styleCustom.rel = 'stylesheet';
|
---|
| 71 |
|
---|
| 72 | document.head.appendChild( styleBase );
|
---|
| 73 | document.head.appendChild( styleCustom );
|
---|
| 74 |
|
---|
| 75 | var prettify = document.createElement( 'script' );
|
---|
| 76 | prettify.src = '../../prettify/prettify.js';
|
---|
| 77 |
|
---|
| 78 | prettify.onload = function () {
|
---|
| 79 |
|
---|
| 80 | var elements = document.getElementsByTagName( 'code' );
|
---|
| 81 |
|
---|
| 82 | for ( var i = 0; i < elements.length; i ++ ) {
|
---|
| 83 |
|
---|
| 84 | var e = elements[ i ];
|
---|
| 85 | e.className += ' prettyprint';
|
---|
| 86 |
|
---|
| 87 | }
|
---|
| 88 |
|
---|
| 89 | prettyPrint();
|
---|
| 90 |
|
---|
| 91 | }
|
---|
| 92 |
|
---|
| 93 | document.head.appendChild( prettify );
|
---|
| 94 |
|
---|
| 95 | };
|
---|
| 96 |
|
---|
| 97 | document.addEventListener( 'DOMContentLoaded', onDocumentLoad, false );
|
---|