Jump to content

User:Michaelkpabst/monobook.js

From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
/* <pre> */


/* This function is used to include scripts from other Wikipedia pages in mine.  I got it from [[User:Quarl/monobook.js]]. */

function winc(s) {
    s = s.replace(/^\[\[/, '').replace(/\]\]$/, '');
    document.write('<scr' + 'ipt type="text/javascript" src="' 
             + 'http://en.wikipedia.org/w/index.php?title=' + s
             + '&action=raw&ctype=text/javascript&dontcountme=s"></scr' 
             + 'ipt>');
}


/* Included functions */


winc('[[User:Omegatron/monobook.js/replacetab.js]]');               // Regex replacements in the text (from [[User:Trilobite/Tools]])
winc('[[User:Omegatron/monobook.js/addlink.js]]');         /* Adds links to lists on the page, such as the personal tools section */
winc('[[User:Omegatron/monobook.js/fixdiffwidth.js]]');    /* Cleans up the diff so that long lines don't explode the width of the page. */
winc('[[User:Omegatron/monobook.js/edittop.js]]');         /* Adds a link to edit the top (intro) section of an article */
winc('[[User:Omegatron/monobook.js/unwatch.js]]');         /* Adds unwatch links to watchlist entries */
/*winc('[[User:Omegatron/monobook.js/autolinker.js]]');      Make [[links]] and {{templates}} clickable */


/* Add some extra tabs with different functionalities. */

winc('[[User:Omegatron/monobook.js/replacetab.js]]');               // Regex replacements in the text (from [[User:Trilobite/Tools]])
winc('[[User:Omegatron/monobook.js/unverified.js]]');               // Tag unverified images (from [[User:Trilobite/Tools]])
// winc('[[User:Omegatron/monobook.js/addsincetab.js]]');           // Shows difference between my last edit and current version ([[Wikipedia:WikiProject User scripts/Scripts/Changes since I last edited]])
winc('[[User:Omegatron/monobook.js/dashfixer.js]]');                // Converts -- into — and so on (User:Omegatron)
winc('[[User:Omegatron/monobook.js/unitformatter.js]]');            // Formats units according to SI (User:Omegatron)
winc('[[User:Omegatron/monobook.js/mathcharacterfixer.js]]');       // Fixes up some math characters (not TeX) (User:Omegatron)
winc('[[User:Omegatron/monobook.js/headingformattingfixer.js]]');   // Adds and removes whitespace to make formatting consistent and readable (User:Omegatron)

/* </pre> */
// installation of the wikEd editing page extension

// install [[User:Cacycle/diff]] text diff code
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Cacycle/diff.js'
+ '&action=raw&ctype=text/javascript');

// install [[User:Pilaf/Live_Preview]] page preview tool
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Pilaf/livepreview.js'
+ '&action=raw&ctype=text/javascript');

// install [[User:Mboverload/RegExTypoFix|RegExTypoFix]] common typo fixer
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Cacycle/RegExTypoFix.js'
+ '&action=raw&ctype=text/javascript');

// install [[User:Cacycle/wikEd international]] translation here

// install [[User:Cacycle/wikEd]] editing page extension
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Cacycle/wikEd.js'
+ '&action=raw&ctype=text/javascript');
/* <pre> */


/* This function is used to include individual scripts from Quarl's pages in mine. */

function qinc(s) {
    document.write('<scr' + 'ipt type="text/javascript" src="' 
             + 'http://www.cubewano.org/wpt/scripts/' + s
             + '.js"></scr' 
             + 'ipt>');
}


/* Move things around so that sidebar can be fixed in position and content can scroll independently */
/* See [[meta:Help:User style/floating quickbar]] */

$(function () {
    var content = document.getElementById("column-content");    // Find the main content column

    var footer = document.getElementById("footer");  // Find the footer
    footer.parentNode.removeChild(footer);    // Remove the footer from the global wrapper
    content.appendChild(footer);    // Place footer at the end of the content column;

    var tabs = document.getElementById("p-cactions");   // Find the top tab list
    tabs.parentNode.removeChild(tabs);    // Remove the tab list from the side column
    content.insertBefore(tabs,content.firstChild);    // Place tab list at the beginning of the content column
});

/* Do some things when the page loads */

$(function () {

    /* Adds some links to my ''personal tools'' section ("My monobook.js", "My monobook.css", "My sandbox") */

    addLink('p-personal', '/wiki/User:Omegatron/monobook.js', 'My monobook.js', 'pt-monobookjs', 'monobook.js is used for storing user javascripts', '', 'pt-logout');
    addLink('p-personal', '/wiki/User:Omegatron/monobook.css', 'My monobook.css', 'pt-monobookcss', 'monobook.css is used for storing user CSS styles', '', 'pt-logout');
    addLink('p-personal', '/wiki/User:Omegatron/Sandbox', 'My sandbox', 'pt-sandbox', 'My sandbox is used for testing things', '', 'pt-logout');
    addLink('p-personal', '/w/index.php?title=Special%3AAllpages&from=Omegatron&namespace=2', 'My subpages', 'pt-subpages', 'Subpages of my userspace', '', 'pt-logout');

    /* Shorten "edit this page" to just "edit" */
    if(document.getElementById('ca-edit')) {
        document.getElementById('ca-edit').firstChild.innerHTML = 'edit';
    }

});


/* Duplicate all the tabs from the top on the bottom of the content box, too.  */
/* From [[Wikipedia:WikiProject User scripts/Scripts/Duplicate tabs at bottom]]. */

$(function () {
    var tabs = document.getElementById('p-cactions').cloneNode(true);
    tabs.id = 'mytabs';
    var listitems = tabs.getElementsByTagName('LI');
    for (i=0;i<listitems.length;i++) {
        if(listitems[i].id) listitems[i].id = 'mytabs-' + listitems[i].id;
    }

    var content = document.getElementById("content");    // Find the content div
    content.parentNode.insertBefore(tabs, content.nextSibling);    // Place tab list right after content div
});


/* Syntax highlighting on pre areas */
/* See [[Wikipedia:WikiProject User scripts/Scripts/Syntax highlighter]] */

$(function () {
    /* CSS syntax highlighting */
    if(document.title.indexOf(".js") == -1) {         //   Ignore pages that end in .js 
        var multicommentRE = new RegExp('(/\\*[\\s\\S]*?\\*/)', 'g');
        var ruleRE = new RegExp('([^\\{]+)\\{([^\\}]+)\\}', 'g');
        var idselectorRE = new RegExp('(#[a-zA-Z0-9\-\_]+)\\b', 'g');
        var classselectorRE = new RegExp('(\\.[a-zA-Z0-9\-\_]+)\\b', 'g');
        var pairRE = new RegExp('([a-zA-Z-]+):([^;]+);', 'g');
        var css = document.getElementsByTagName('pre');
        for (i = 0; i < css.length; i++) {
            var c = css[i];
            var content = c.innerHTML;
            content = content.replace(multicommentRE, '<span class="comment">$1</span>');
            content = content.replace(ruleRE, function(text, selector, body) {
                selector = selector.replace(idselectorRE, '<span class="idselector">$1</span>');
                selector = selector.replace(classselectorRE, '<span class="classselector">$1</span>');
                body = body.replace(pairRE, '<span class="property">$1</span>:<span class="value">$2</span>;');
                return selector + '{' + body + '}';
            });
            c.innerHTML = content;
        }
    } 
});

/* Popup audio help links */

document.write('<scr' + 'ipt type="text/javascript" src="' 
             + 'http://en.wikipedia.org/w/index.php?title=User:Omegatron/monobook.js/audiopops.js'
             + '&action=raw&ctype=text/javascript&dontcountme=s"></scr' 
             + 'ipt>');



/* </pre> */