User:Seren-dipper/highlight-comments.js

// // highlight-comments.js - written by PleaseStand, 2010. // Source: http://en.wikipedia.org/wiki/User:PleaseStand/highlight-comments.js // (which was last modified on 2010-05-30 at 01:15:31 ). // NOTE: This script is in the public domain (not copyrighted). For details, see // http://en.wikipedia.org/wiki/Template:PD-self // DESCRIPTION: Highlights your posts to discussion pages // (at least a significant part). This is just the JS part; you need a // corresponding CSS line to actually affect text color. An example: // .mycomment { background: #ff9; } /*global window, document, jQuery, wgFormattedNamespaces, wgUserName, HighlightCommentsJsDefault, HighlightCommentsJsDescription, importScriptURI, hookEvent, addPortletLink*/ // Function names var HighlightCommentsJsHighlight, HighlightCommentsJsUnhighlight; // Global variables var HighlightCommentsJsWrapped = false, HighlightCommentsJsTries = 40, HighlightCommentsJsSwitch; HighlightCommentsJsHighlight = function{ // Lists the tags that can contain comments/indented text respectively. var commentTags = "dd,li,p"; var indentTags = "dl,ol,ul"; if(!HighlightCommentsJsWrapped) { // Do the work, adding span wrappers jQuery("a[title=\"" + (wgFormattedNamespaces[2] + ":" +           wgUserName).replace(/"/g, "\\\"") + "\"]").closest(commentTags). contents.not(indentTags). wrap(jQuery("")); // Set the flag that wrapping is done HighlightCommentsJsWrapped = true; } else { // Just change the classes jQuery(".mycomment-off").removeClass("mycomment-off"). addClass("mycomment"); }   var ns = null; if(HighlightCommentsJsSwitch) { ns = HighlightCommentsJsSwitch.parentNode.removeChild(HighlightCommentsJsSwitch); }   HighlightCommentsJsSwitch = mw.util.addPortletLink("p-cactions",        "javascript:HighlightCommentsJsUnhighlight", "Unhighlight",        "ca-highlightcomments",        "Disable highlighting of your own comments on this page", null, ns); }; HighlightCommentsJsUnhighlight = function{ // Change the classes jQuery(".mycomment").removeClass("mycomment").addClass("mycomment-off"); var ns = null; if(HighlightCommentsJsSwitch) { ns = HighlightCommentsJsSwitch.parentNode.removeChild(HighlightCommentsJsSwitch); }   HighlightCommentsJsSwitch = mw.util.addPortletLink("p-cactions",        "javascript:HighlightCommentsJsHighlight", "Highlight",        "ca-highlightcomments",        "Enable highlighting of your own comments on this page", null, ns); }; function HighlightCommentsJsLoaded { var desc; if(typeof HighlightCommentsJsDescription == "undefined") { // Default toolbox link text desc = "Toggle comment highlighting"; } else { // User-defined toolbox link text desc = HighlightCommentsJsDescription; }       if(typeof HighlightCommentsJsDefault == "undefined" || !HighlightCommentsJsDefault) { // Create and add the menu item or tab HighlightCommentsJsSwitch = mw.util.addPortletLink("p-cactions",               "javascript:HighlightCommentsJsHighlight", "Highlight",                "ca-highlightcomments",                "Enable highlighting of your own comments on this page"); } else { HighlightCommentsJsSwitch = null; HighlightCommentsJsHighlight; } } function HighlightCommentsJsWaitForJquery { // We use globals since in Internet Explorer, we cannot pass // function arguments through setTimeout. if(typeof jQuery == "undefined" && HighlightCommentsJsTries) { HighlightCommentsJsTries--; return window.setTimeout(HighlightCommentsJsWaitForJquery, 250); }   if(typeof jQuery == "function") { HighlightCommentsJsLoaded; return true; }   return false; } // Monobook skin, unlike the newer Vector skin, doesn't load jQuery :( if(typeof jQuery == "undefined") {   mw.loader.load("//bits.wikimedia.org/skins-1.5/common/jquery.min.js"); } hookEvent("load", HighlightCommentsJsWaitForJquery); //