User:Y2K/monobook.js
From Homestar Runner Wiki
(Difference between revisions)
(Import from the fanstuff wiki) |
DorianGray (Talk | contribs) (Revert per user request) |
||
Line 1: | Line 1: | ||
- | // | + | // ==UserScript== |
- | document. | + | // @name Y2K's Monobook JS |
- | + | // @namespace http://fanstuff.hrwiki.org/ | |
- | + | // @include http://hrwiki.org/* | |
+ | // @include http://www.hrwiki.org/* | ||
+ | // @include http://fanstuff.hrwiki.org/* | ||
+ | // ==/UserScript== | ||
+ | // The code above is for if you wanna install this as a Greasemonkey user script. | ||
+ | // NOTE: If you install this as a user script, the time will never "finish loading". | ||
+ | |||
+ | function addQuickbarLink(href, title, before, tooltip) | ||
+ | { | ||
+ | var li = document.createElement('li'); | ||
+ | var a = document.createElement('a'); | ||
+ | a.appendChild(document.createTextNode(title)); | ||
+ | a.href = href; | ||
+ | a.title = tooltip; | ||
+ | li.appendChild(a); | ||
+ | if (!before) | ||
+ | { | ||
+ | document.getElementById('pt-logout').parentNode.appendChild(li); | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | before = document.getElementById('pt-'+before); | ||
+ | before.parentNode.insertBefore(li, before); | ||
+ | } | ||
+ | } | ||
+ | function addLinks() | ||
+ | { | ||
+ | addQuickbarLink("/index.php/User:Y2K/monobook.js", "my js", "preferences", "My custom MonoBook JavaScript"); | ||
+ | addQuickbarLink("/index.php/User:Y2K/monobook.css", "my css", "preferences", "My custom Monobook CSS"); | ||
+ | addQuickbarLink("http://fanstuff.hrwiki.org/index.php/User:Y2K/IRC", "my irc toolkit", "preferences", "My toolbox for IRC emulators"); | ||
+ | addQuickbarLink("http://fanstuff.hrwiki.org/index.php/User_talk:Y2K#.2Fjoin_.23virus-irc", "#virus-irc", "preferences", "My IRC emulator"); | ||
+ | addQuickbarLink("http://fanstuff.hrwiki.org/index.php/What's Her Face Answering Machine", "whf answering machine", "preferences", "What's Her Face Answering Machine"); | ||
+ | addQuickbarLink("/index.php/User:Y2K/sig", "my sig", "preferences", "My signature"); | ||
+ | } | ||
+ | if (window.addEventListener) window.addEventListener('load', addLinks, false); | ||
+ | else if (window.attachEvent) window.attachEvent('onload', addLinks); | ||
+ | |||
+ | // Add Sydney time just below the "personal menu" list at the top of the page. | ||
+ | // Created by Wikipedia:User:Mathwiz2020, modified by User:JoeyDay, modified again by User:Y2K to show Sydney time | ||
+ | // | ||
+ | function getTime() { | ||
+ | var time = new Date(); | ||
+ | var hours = time.getUTCHours(); | ||
+ | if (hours < 14) { hours = 10 + hours; } | ||
+ | else if (hours > 13) | ||
+ | { | ||
+ | hours = hours - 14 | ||
+ | if (hours < 10) { hours = "0" + hours; } | ||
+ | } | ||
+ | var minutes = time.getUTCMinutes(); | ||
+ | if (minutes < 10) { minutes = "0" + minutes; } | ||
+ | var seconds = time.getUTCSeconds(); | ||
+ | if (seconds < 10) { seconds = "0" + seconds; } | ||
+ | var currentTime = hours + ":" + minutes + ":" + seconds; | ||
+ | document.getElementById('pt-time').childNodes[0].childNodes[0].replaceData(0, 8, currentTime); | ||
+ | doTime = window.setTimeout("getTime()", 1000); | ||
+ | } | ||
+ | function makeTime() { | ||
+ | var div = document.createElement( 'div' ); | ||
+ | div.id = 'pt-time'; | ||
+ | var mySpan = document.createElement( 'span' ); | ||
+ | mySpan.appendChild( document.createTextNode( '10:00:00' ) ); | ||
+ | div.appendChild( mySpan ); | ||
+ | document.getElementById( 'globalWrapper' ).parentNode.appendChild( div ); | ||
+ | doTime = window.setTimeout("getTime()", 1000); | ||
+ | } | ||
+ | if (window.addEventListener) window.addEventListener ('load', makeTime, false); | ||
+ | else if (window.attachEvent) window.attachEvent ('onload', makeTime); | ||
+ | |||
+ | // Adds a purge tab. Found this on Lapper's JS. | ||
+ | function addPurgeButton() | ||
+ | { | ||
+ | var href = document.location.href; | ||
+ | { | ||
+ | var historyHref = document.getElementById( "ca-history" ).firstChild.href; | ||
+ | var div = document.getElementById( "p-cactions" ); | ||
+ | var ul = div.getElementsByTagName( "ul" )[0]; | ||
+ | var newLi = document.createElement( "li" ); | ||
+ | var newA = document.createElement( "a" ); | ||
+ | newA.setAttribute( "href" , historyHref.replace( "=history" , "=purge" ) ); | ||
+ | var text = document.createTextNode( "purge" ); | ||
+ | newA.appendChild( text ); | ||
+ | newLi.appendChild( newA ); | ||
+ | ul.appendChild( newLi ); | ||
+ | } | ||
+ | } | ||
+ | if ( window.addEventListener ) window.addEventListener( "load" , addPurgeButton , false ); | ||
+ | else if ( window.attachEvent ) window.attachEvent( "onload", addPurgeButton ); | ||
+ | |||
+ | // include comfortable javascript editor by [[wikipedia:User:Cacycle]] | ||
+ | |||
+ | |||
+ | // levels of undo (each level holds the whole text) | ||
+ | undoBufferMax = 20; | ||
+ | |||
+ | |||
+ | // style for preview box | ||
+ | stylePreviewBox = 'background-color: #f9f9f9;'; | ||
+ | |||
+ | |||
+ | // style for custom edit buttons | ||
+ | styleButtons = 'font-size: smaller; padding-left: 0.1em; padding-right: 0.1em'; | ||
+ | |||
+ | |||
+ | // presets for input field dropdown options | ||
+ | findHistoryLength = 10; | ||
+ | |||
+ | |||
+ | // preset for combo box select options | ||
+ | presetOptions = []; | ||
+ | presetOptions['summary'] = [ | ||
+ | |||
+ | |||
+ | 'Copyedit', | ||
+ | 'Linkfix', | ||
+ | 'Reverting vandalism', | ||
+ | 'Formatting source text' | ||
+ | |||
+ | |||
+ | |||
+ | ]; | ||
+ | |||
+ | |||
+ | // expiration time span for history cookies in seconds | ||
+ | cookieExpireSec = (365 * 24 * 60 * 60); | ||
+ | |||
+ | |||
+ | // enable cursor horizontal position memory | ||
+ | cursorMemory = true; | ||
+ | |||
+ | |||
+ | // show at least this number of lines ahead of cursor movement | ||
+ | scrollMargin = 1; | ||
+ | |||
+ | |||
+ | // show at least this number of lines ahead of cursor movement for | ||
+ | findMargin = 2; | ||
+ | |||
+ | |||
+ | // find ahead checkbox selected by default | ||
+ | findAheadSelected = true; | ||
+ | |||
+ | |||
+ | // css for change indicators | ||
+ | styleDelete = 'font-weight: normal; text-decoration: none; color: #ffffff; background-color: #990033;'; | ||
+ | styleInsert = 'font-weight: normal; text-decoration: none; color: #ffffff; background-color: #009933;'; | ||
+ | styleMoved = 'font-weight: bold; vertical-align: text-bottom; font-size: xx-small; padding: 0; border: solid 1px;'; | ||
+ | styleBlock = [ | ||
+ | |||
+ | |||
+ | 'background-color: #ffff44;', | ||
+ | 'background-color: #b0ff90;', | ||
+ | 'background-color: #ffcc99;', | ||
+ | 'background-color: #99ffff;', | ||
+ | 'background-color: #99ccff;', | ||
+ | 'background-color: #cc99ff;', | ||
+ | 'background-color: #ff99cc;', | ||
+ | 'background-color: #ffd040;', | ||
+ | 'background-color: #d0d0d0;' | ||
+ | |||
+ | |||
+ | |||
+ | ]; | ||
+ | |||
+ | |||
+ | // html for change indicators, {number} is replaced by the block number, {block} is replaced by the block style | ||
+ | htmlMovedRight = '<input type="button" value=">" style="' + styleMoved + ' {block}">'; | ||
+ | htmlMovedLeft = '<input type="button" value="<" style="' + styleMoved + ' {block}">'; | ||
+ | |||
+ | |||
+ | htmlBlockStart = '<span style="{block}">'; | ||
+ | htmlBlockEnd = '</span>'; | ||
+ | |||
+ | |||
+ | htmlDeleteStart = '<span style="' + styleDelete + '">'; | ||
+ | htmlDeleteEnd = '</span>'; | ||
+ | |||
+ | |||
+ | htmlInsertStart = '<span style="' + styleInsert + '">'; | ||
+ | htmlInsertEnd = '</span>'; | ||
+ | |||
+ | |||
+ | // minimal number of real words for a moved block (0 for always displaying block move indicators) | ||
+ | blockMinLength = 3; | ||
+ | |||
+ | |||
+ | // exclude identical sequence starts and endings from change marking | ||
+ | wordDiff = true; | ||
+ | |||
+ | |||
+ | // enable recursive diff to resolve problematic sequences | ||
+ | recursiveDiff = true; | ||
+ | |||
+ | |||
+ | // enable block move display | ||
+ | showBlockMoves = true; | ||
+ | |||
+ | // Installation code for editor removed as I have it running on Greasemonkey |
Revision as of 07:15, 3 October 2006
// ==UserScript== // @name Y2K's Monobook JS // @namespace http://fanstuff.hrwiki.org/ // @include http://hrwiki.org/* // @include http://www.hrwiki.org/* // @include http://fanstuff.hrwiki.org/* // ==/UserScript== // The code above is for if you wanna install this as a Greasemonkey user script. // NOTE: If you install this as a user script, the time will never "finish loading". function addQuickbarLink(href, title, before, tooltip) { var li = document.createElement('li'); var a = document.createElement('a'); a.appendChild(document.createTextNode(title)); a.href = href; a.title = tooltip; li.appendChild(a); if (!before) { document.getElementById('pt-logout').parentNode.appendChild(li); } else { before = document.getElementById('pt-'+before); before.parentNode.insertBefore(li, before); } } function addLinks() { addQuickbarLink("/index.php/User:Y2K/monobook.js", "my js", "preferences", "My custom MonoBook JavaScript"); addQuickbarLink("/index.php/User:Y2K/monobook.css", "my css", "preferences", "My custom Monobook CSS"); addQuickbarLink("http://fanstuff.hrwiki.org/index.php/User:Y2K/IRC", "my irc toolkit", "preferences", "My toolbox for IRC emulators"); addQuickbarLink("http://fanstuff.hrwiki.org/index.php/User_talk:Y2K#.2Fjoin_.23virus-irc", "#virus-irc", "preferences", "My IRC emulator"); addQuickbarLink("http://fanstuff.hrwiki.org/index.php/What's Her Face Answering Machine", "whf answering machine", "preferences", "What's Her Face Answering Machine"); addQuickbarLink("/index.php/User:Y2K/sig", "my sig", "preferences", "My signature"); } if (window.addEventListener) window.addEventListener('load', addLinks, false); else if (window.attachEvent) window.attachEvent('onload', addLinks); // Add Sydney time just below the "personal menu" list at the top of the page. // Created by Wikipedia:User:Mathwiz2020, modified by User:JoeyDay, modified again by User:Y2K to show Sydney time // function getTime() { var time = new Date(); var hours = time.getUTCHours(); if (hours < 14) { hours = 10 + hours; } else if (hours > 13) { hours = hours - 14 if (hours < 10) { hours = "0" + hours; } } var minutes = time.getUTCMinutes(); if (minutes < 10) { minutes = "0" + minutes; } var seconds = time.getUTCSeconds(); if (seconds < 10) { seconds = "0" + seconds; } var currentTime = hours + ":" + minutes + ":" + seconds; document.getElementById('pt-time').childNodes[0].childNodes[0].replaceData(0, 8, currentTime); doTime = window.setTimeout("getTime()", 1000); } function makeTime() { var div = document.createElement( 'div' ); div.id = 'pt-time'; var mySpan = document.createElement( 'span' ); mySpan.appendChild( document.createTextNode( '10:00:00' ) ); div.appendChild( mySpan ); document.getElementById( 'globalWrapper' ).parentNode.appendChild( div ); doTime = window.setTimeout("getTime()", 1000); } if (window.addEventListener) window.addEventListener ('load', makeTime, false); else if (window.attachEvent) window.attachEvent ('onload', makeTime); // Adds a purge tab. Found this on Lapper's JS. function addPurgeButton() { var href = document.location.href; { var historyHref = document.getElementById( "ca-history" ).firstChild.href; var div = document.getElementById( "p-cactions" ); var ul = div.getElementsByTagName( "ul" )[0]; var newLi = document.createElement( "li" ); var newA = document.createElement( "a" ); newA.setAttribute( "href" , historyHref.replace( "=history" , "=purge" ) ); var text = document.createTextNode( "purge" ); newA.appendChild( text ); newLi.appendChild( newA ); ul.appendChild( newLi ); } } if ( window.addEventListener ) window.addEventListener( "load" , addPurgeButton , false ); else if ( window.attachEvent ) window.attachEvent( "onload", addPurgeButton ); // include comfortable javascript editor by [[wikipedia:User:Cacycle]] // levels of undo (each level holds the whole text) undoBufferMax = 20; // style for preview box stylePreviewBox = 'background-color: #f9f9f9;'; // style for custom edit buttons styleButtons = 'font-size: smaller; padding-left: 0.1em; padding-right: 0.1em'; // presets for input field dropdown options findHistoryLength = 10; // preset for combo box select options presetOptions = []; presetOptions['summary'] = [ 'Copyedit', 'Linkfix', 'Reverting vandalism', 'Formatting source text' ]; // expiration time span for history cookies in seconds cookieExpireSec = (365 * 24 * 60 * 60); // enable cursor horizontal position memory cursorMemory = true; // show at least this number of lines ahead of cursor movement scrollMargin = 1; // show at least this number of lines ahead of cursor movement for findMargin = 2; // find ahead checkbox selected by default findAheadSelected = true; // css for change indicators styleDelete = 'font-weight: normal; text-decoration: none; color: #ffffff; background-color: #990033;'; styleInsert = 'font-weight: normal; text-decoration: none; color: #ffffff; background-color: #009933;'; styleMoved = 'font-weight: bold; vertical-align: text-bottom; font-size: xx-small; padding: 0; border: solid 1px;'; styleBlock = [ 'background-color: #ffff44;', 'background-color: #b0ff90;', 'background-color: #ffcc99;', 'background-color: #99ffff;', 'background-color: #99ccff;', 'background-color: #cc99ff;', 'background-color: #ff99cc;', 'background-color: #ffd040;', 'background-color: #d0d0d0;' ]; // html for change indicators, {number} is replaced by the block number, {block} is replaced by the block style htmlMovedRight = '<input type="button" value=">" style="' + styleMoved + ' {block}">'; htmlMovedLeft = '<input type="button" value="<" style="' + styleMoved + ' {block}">'; htmlBlockStart = '<span style="{block}">'; htmlBlockEnd = '</span>'; htmlDeleteStart = '<span style="' + styleDelete + '">'; htmlDeleteEnd = '</span>'; htmlInsertStart = '<span style="' + styleInsert + '">'; htmlInsertEnd = '</span>'; // minimal number of real words for a moved block (0 for always displaying block move indicators) blockMinLength = 3; // exclude identical sequence starts and endings from change marking wordDiff = true; // enable recursive diff to resolve problematic sequences recursiveDiff = true; // enable block move display showBlockMoves = true; // Installation code for editor removed as I have it running on Greasemonkey