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.

// adds a 'logs for this page' link to the toolbox bar

// if the page is a user's page, talk page or subpage, the link will go to logs for the user instead

// if the page is a special page, then no link is displayed



addOnloadHook(function () {

 

 // if this is a user, show the logs for the user rather than the page

 if ( mw.config.get('wgCanonicalNamespace') == "User" || mw.config.get('wgCanonicalNamespace') == "User_talk" ) {

  url = mw.config.get('wgServer') + "/?title=Special:Log&user=" + mw.config.get('wgTitle').split("/")[0];

 } else if ( mw.config.get('wgCanonicalNamespace') == "Special" ) {

  // don't display link for special pages

  return;

 } else {

  url = mw.config.get('wgServer') + "/?title=Special:Log&page=" + mw.config.get('wgPageName');

 }

 

 mw.util.addPortletLink("p-tb", url, "Logs", "pt-logs");



});



addOnloadHook(function () {

    if (mw.config.get('wgCanonicalNamespace') == "Special")

        return;  // no links for special pages

 

    var title = mw.config.get('wgTitle');

    if (mw.config.get('wgCanonicalNamespace') != "")

        title = title.replace(/^.*\//, "");  // subpage name only

 

    var query = encodeURIComponent('"'+title+'" -Wikipedia' ); 

    mw.util.addPortletLink('p-tb',

                   'http://www.google.com/search?ie=utf-8&oe=utf-8&q='+query,

                   'Google search',

                   't-googlesearch',

                   'Search Google for "'+title+'"',

                   'G');

    mw.util.addPortletLink('p-tb',

                   'http://www.google.com/search?ie=utf-8&oe=utf-8&q='+title+'%20site:wikipedia.org%20-site:en.wikipedia.org%20-site:nostalgia.wikipedia.org%20-site:mobile.wikipedia.org',

                   'Google interwiki',

                   't-interwikisearch',

                   'Search Google for interwiki articles on "'+title+'"');

});



// addPurge

addOnloadHook(function () {

    var hist; var url;

    if (!(hist = document.getElementById('ca-history') )) return;

    if (!(url = hist.getElementsByTagName('a')[0 )) return;

    if (!(url = url.href )) return;

    mw.util.addPortletLink('p-cactions', url.replace(/([?&]action=)history([&#]|$)/, '$1purge$2'),

                   'purge', 'ca-purge', 'Purge server cache for this page', '0');

});



 //<pre>

//This function adds a link to the toolbox which, when clicked, displays the size of the page

//and the size of the prose. See the talk page for more details.

//

//To use this function add {{subst:js|User:Dr pda/prosesize.js}} to your monobook.js

//

function loadXMLDocPassingTemplate(url,handler, page)

{

    // branch for native XMLHttpRequest object

    if (window.XMLHttpRequest) {

        var req = new XMLHttpRequest();

    }

    // branch for IE/Windows ActiveX version

    else if (window.ActiveXObject) {

        var req = new ActiveXObject("Microsoft.XMLHTTP");

   }

   if (req) {

     req.onreadystatechange = function () {handler(req, page)};

     req.open("GET", url, true);

     req.send("");

   }

}

 

function getWikiText(req, page) {

    // only if req shows "loaded"

    if (req.readyState == 4) {

        // only if "OK"

        if (req.status == 200) {

            // ...processing statements go here...

	 response = req.responseXML.documentElement;

         var rev = response.getElementsByTagName('rev');

	 if(rev.length > 0){

	   result = rev0].getAttribute('size');

           if(result > 10240){

             result = (result/1024).toFixed(0)+'&nbsp;kB';

           }

           else{

             result = result+'&nbsp;B';

           }

           wiki_value = document.createElement("li");

	   wiki_value.id = "wiki-size";

	   wiki_value.innerHTML = '<b>Wiki text: </b>'+result;

	   var output = document.getElementById("document-size-stats");

	   prose_value = document.getElementById("prose-size");

	   output.insertBefore(wiki_value,prose_value);

	 }

	 else{

	  //alert("There was a problem using the Wikipedia Search to find the wiki text size\nEither the search is not working or the correct article did not appear on the first page of results");

           wiki_value = document.createElement("li");

	   wiki_value.id = "wiki-size";

	   wiki_value.innerHTML = '<b>Wiki text: </b>Problem getting wiki text size';

	   var output = document.getElementById("document-size-stats");

	   prose_value = document.getElementById("prose-size");

	   output.insertBefore(wiki_value,prose_value);

	 }

        } else {

            alert("There was a problem retrieving the XML data:\n" +

                req.statusText);

        }

    }

}

 

function getFileSize(req, page) {

    // only if req shows "loaded"

    if (req.readyState == 4) {

        // only if "OK"

        if (req.status == 200) {

            // ...processing statements go here...

	  var fsize = req.responseText.length;

	  window.status = fsize;

	  var total_value = document.createElement("li");

	  total_value.id = "total-size";

	  total_value.innerHTML='<b>File size: </b>'+(fsize/1024).toFixed(0)+'&nbsp;kB';

	  var output = document.getElementById("document-size-stats");

	  var prose_html_value = document.getElementById("prose-size-html");

	  output.insertBefore(total_value,prose_html_value);

         } else {

            alert("There was a problem retrieving the XML data:\n" +

                req.statusText + "\n(" + url + ")");

        }

    }

}

 

function getLength(id){

 var textLength = 0;

 for(var i=0;i<id.childNodes.length; i++){

  if(id.childNodesi].nodeName == '#text'){

   textLength += id.childNodesi].nodeValue.length;

  }

  else if(id.childNodesi].id == 'coordinates'){

    //special case for {{coord}} template

  }

  else{

    textLength += getLength(id.childNodesi]);

  }

 }

 return textLength;

}

 

function getRefMarkLength(id,html){

 var textLength = 0;

 for(var i=0;i<id.childNodes.length; i++){

  if(id.childNodesi].className == 'reference'){

   textLength += (html)? id.childNodesi].innerHTML.length : getLength(id.childNodesi]);

  }

 }

 return textLength;

}

 

function getDocumentSize(){

 contentDivName = '';

 if(skin == 'monobook' || skin == 'chick' || skin == 'myskin' || skin == 'simple'){

   contentDivName = 'bodyContent';

 }

 else if (skin == 'modern'){

   contentDivName = 'mw_contentholder';

 }

 else if (skin == 'standard' || skin == 'cologneblue' || skin == 'nostalgia'){

   contentDivName = 'article';

 }

 else{

   //fallback case; the above covers all currently existing skins

   contentDivName = 'bodyContent';

 }

 //Same for all skins if previewing page

 if(mw.config.get('wgAction') == 'submit') contentDivName = 'wikiPreview';

 

 var bodyContent = document.getElementById(contentDivName);

 if(document.getElementById("document-size-stats")){

   //if statistics already exist, turn them off and remove highlighting

   var output = document.getElementById("document-size-stats");

   var oldStyle = output.className;

   var pList = bodyContent.getElementsByTagName("p");

   for(var i=0;i<pList.length; i++){

     if(pListi].parentNode.id == contentDivName) pListi].style.cssText = oldStyle;

   }

   output.parentNode.removeChild(output);

   var header = document.getElementById("document-size-header");

   header.parentNode.removeChild(header);

 }

 else{

 var output = document.createElement("ul");

 output.id = "document-size-stats";

 

 var prose_html_value = document.createElement("li");

 prose_html_value.id = "prose-size-html";

 output.appendChild(prose_html_value);

 

 var ref_html_value = document.createElement("li");

 ref_html_value.id = "ref-size-html";

 output.appendChild(ref_html_value);

 

 var prose_value = document.createElement("li");

 prose_value.id = "prose-size";

 output.appendChild(prose_value);

 output.className = bodyContent.getElementsByTagName("p").item(0).style.cssText;

 

 var ref_value = document.createElement("li");

 ref_value.id = "ref-size";

 output.appendChild(ref_value);

 

 var dummy = document.getElementById("siteSub");

 dummy.parentNode.insertBefore(output, dummy.nextSibling);

 

 var header = document.createElement("span");

 header.id = "document-size-header";

 header.innerHTML = '<br/>Document statistics: <small><i>(See <a href="http://en.wikipedia.org/wiki/User_talk:Dr_pda/prosesize.js">here</a> for details.)<i></small>';

 dummy.parentNode.insertBefore(header,output);

 

 //File size not well defined for preview mode or section edit

 if(mw.config.get('wgAction') != 'submit'){

   //If browser supports document.fileSize property (IE)

   if(document.fileSize){

     var total_value = document.createElement("li");

     total_value.id = "total-size";

     total_value.innerHTML='<b>File size: </b>'+(document.fileSize/1024).toFixed(0)+'&nbsp;kB';

     output.insertBefore(total_value,prose_html_value);

   }

   else{

    loadXMLDocPassingTemplate(location.pathname,getFileSize,'')

   }

 }

 

 //Get size of images only if browser supports filesize property (IE)

 var iList = bodyContent.getElementsByTagName("img");

 if(iList.length >0 && iList0].fileSize){

 //Get size of images included in document

   var image_size = 0;

   var first_magnify = true;

 

   for (var i=0;i<iList.length; i++){

    var im = iListi];

    if(im.getAttribute("src").indexOf("magnify-clip.png") != -1){

      if(first_magnify){

        image_size += im.fileSize*1;

        first_magnify = false;

      }

    }

    else{

      image_size += im.fileSize*1;

    }

   }

   var image_value = document.createElement("li");

   image_value.id = "image-size";

   image_value.innerHTML='<b>Images: </b>'+(image_size/1024).toFixed(0)+'&nbsp;kB';

   output.appendChild(image_value);

 

  }

 //Calculate prose size and size of reference markers ([1] etc)

 var pList = bodyContent.getElementsByTagName("p");

 

 prose_size = 0;

 prose_size_html = 0;

 refmark_size = 0;

 refmark_size_html = 0;

 word_count = 0;

 for(var i=0;i<pList.length; i++){

   var para = pListi];

   if(para.parentNode.id == contentDivName){

    prose_size += getLength(para);

    prose_size_html += para.innerHTML.length;

    refmark_size += getRefMarkLength(para,false);

    refmark_size_html += getRefMarkLength(para,true);

    word_count += para.innerHTML.replace(/(<([^>]+)>)/ig,"").split(' ').length

    para.style.cssText = "background-color:yellow";

   }

 }

 

 if((prose_size-refmark_size)>10240){

   prose_value.innerHTML='<b>Prose size (text only): </b>'+((prose_size-refmark_size)/1024).toFixed(0)+'&nbsp;kB ('+word_count+' words) "readable prose size"';

 }

 else{

   prose_value.innerHTML='<b>Prose size (text only): </b>'+(prose_size-refmark_size)+'&nbsp;B ('+word_count+' words) "readable prose size"';

 }

 

 if((prose_size_html-refmark_size_html)>10240){

   prose_html_value.innerHTML='<b>Prose size (including all HTML code): </b>'+((prose_size_html-refmark_size_html)/1024).toFixed(0)+'&nbsp;kB';

 }

 else{

   prose_html_value.innerHTML='<b>Prose size (including all HTML code): </b>'+(prose_size_html-refmark_size_html)+'&nbsp;B';

 }

 

 //Calculate size of references (i.e. output of <references/>)

 var rList = bodyContent.getElementsByTagName("ol");

 var ref_size = 0;

 var ref_size_html = 0;

 for (var i=0; i<rList.length; i++){

   if(rListi].className == "references"){

     ref_size = getLength(rListi]);

     ref_size_html = rListi].innerHTML.length;

   }

 }

 

 if((ref_size+refmark_size)>10240){

   ref_value.innerHTML='<b>References (text only): </b>'+((ref_size+refmark_size)/1024).toFixed(0)+'&nbsp;kB';

 }

 else{

   ref_value.innerHTML='<b>References (text only): </b>'+(ref_size+refmark_size)+'&nbsp;B';

 }

 

 if((ref_size_html+refmark_size_html)>10240){

   ref_html_value.innerHTML='<b>References (including all HTML code): </b>'+((ref_size_html+refmark_size_html)/1024).toFixed(0)+'&nbsp;kB';

 }

 else{

   ref_html_value.innerHTML='<b>References (including all HTML code): </b>'+(ref_size_html+refmark_size_html)+'&nbsp;B';

 }

 

 //get correct name of article from wikipedia-defined global variables

 var pageNameUnderscores = mw.config.get('wgPageName');

 var pageNameSpaces = pageNameUnderscores.replace(/_/g,' ')

 

 //if page is a permalink, diff, etc don't try to search

 if(!location.pathname.match('/')){ 

  //Get revision size from API

  var searchURL = mw.config.get('wgScriptPath') + '/api.php?action=query&prop=revisions&rvprop=size&format=xml&revids=' + mw.config.get('wgCurRevisionId');

  loadXMLDocPassingTemplate(searchURL,getWikiText,pageNameSpaces);

 }

 else if(mw.config.get('wgAction') == 'submit'){

   //Get size of text in edit box

   result = document.getElementById('wpTextbox1').value.length;

   if(result > 10240){

     result = (result/1024).toFixed(0)+'&nbsp;kB';

   }

   else{

     result = result+'&nbsp;B';

   }

   wiki_value = document.createElement("li");

   wiki_value.id = "wiki-size";

   wiki_value.innerHTML = '<b>Wiki text: </b>'+result;

   var output = document.getElementById("document-size-stats");

   prose_value = document.getElementById("prose-size");

   output.insertBefore(wiki_value,prose_value);

 }

}

}

 

addOnloadHook(function () {

  if(mw.config.get('wgAction') == 'edit' || (mw.config.get('wgAction') == 'submit' && document.getElementById('wikiDiff')) ){

    mw.util.addPortletLink('p-tb', 'javascript:alert("You need to preview the text for the prose size script to work in edit mode.")', 'Page size', 't-page-size', 'Calculate page and prose size', '', '');

    document.getElementById("t-page-size").firstChild.style.cssText = "color:black;"

  }

  else if(mw.config.get('wgAction') == 'view' || mw.config.get('wgAction') == 'submit' || mw.config.get('wgAction') == 'purge'){

    mw.util.addPortletLink('p-tb', 'javascript:getDocumentSize()', 'Page size', 't-page-size', 'Calculate page and prose size', '', '');

  }

});

 

 //</pre>
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.

// adds a 'logs for this page' link to the toolbox bar

// if the page is a user's page, talk page or subpage, the link will go to logs for the user instead

// if the page is a special page, then no link is displayed



addOnloadHook(function () {

 

 // if this is a user, show the logs for the user rather than the page

 if ( mw.config.get('wgCanonicalNamespace') == "User" || mw.config.get('wgCanonicalNamespace') == "User_talk" ) {

  url = mw.config.get('wgServer') + "/?title=Special:Log&user=" + mw.config.get('wgTitle').split("/")[0];

 } else if ( mw.config.get('wgCanonicalNamespace') == "Special" ) {

  // don't display link for special pages

  return;

 } else {

  url = mw.config.get('wgServer') + "/?title=Special:Log&page=" + mw.config.get('wgPageName');

 }

 

 mw.util.addPortletLink("p-tb", url, "Logs", "pt-logs");



});



addOnloadHook(function () {

    if (mw.config.get('wgCanonicalNamespace') == "Special")

        return;  // no links for special pages

 

    var title = mw.config.get('wgTitle');

    if (mw.config.get('wgCanonicalNamespace') != "")

        title = title.replace(/^.*\//, "");  // subpage name only

 

    var query = encodeURIComponent('"'+title+'" -Wikipedia' ); 

    mw.util.addPortletLink('p-tb',

                   'http://www.google.com/search?ie=utf-8&oe=utf-8&q='+query,

                   'Google search',

                   't-googlesearch',

                   'Search Google for "'+title+'"',

                   'G');

    mw.util.addPortletLink('p-tb',

                   'http://www.google.com/search?ie=utf-8&oe=utf-8&q='+title+'%20site:wikipedia.org%20-site:en.wikipedia.org%20-site:nostalgia.wikipedia.org%20-site:mobile.wikipedia.org',

                   'Google interwiki',

                   't-interwikisearch',

                   'Search Google for interwiki articles on "'+title+'"');

});



// addPurge

addOnloadHook(function () {

    var hist; var url;

    if (!(hist = document.getElementById('ca-history') )) return;

    if (!(url = hist.getElementsByTagName('a')[0 )) return;

    if (!(url = url.href )) return;

    mw.util.addPortletLink('p-cactions', url.replace(/([?&]action=)history([&#]|$)/, '$1purge$2'),

                   'purge', 'ca-purge', 'Purge server cache for this page', '0');

});



 //<pre>

//This function adds a link to the toolbox which, when clicked, displays the size of the page

//and the size of the prose. See the talk page for more details.

//

//To use this function add {{subst:js|User:Dr pda/prosesize.js}} to your monobook.js

//

function loadXMLDocPassingTemplate(url,handler, page)

{

    // branch for native XMLHttpRequest object

    if (window.XMLHttpRequest) {

        var req = new XMLHttpRequest();

    }

    // branch for IE/Windows ActiveX version

    else if (window.ActiveXObject) {

        var req = new ActiveXObject("Microsoft.XMLHTTP");

   }

   if (req) {

     req.onreadystatechange = function () {handler(req, page)};

     req.open("GET", url, true);

     req.send("");

   }

}

 

function getWikiText(req, page) {

    // only if req shows "loaded"

    if (req.readyState == 4) {

        // only if "OK"

        if (req.status == 200) {

            // ...processing statements go here...

	 response = req.responseXML.documentElement;

         var rev = response.getElementsByTagName('rev');

	 if(rev.length > 0){

	   result = rev0].getAttribute('size');

           if(result > 10240){

             result = (result/1024).toFixed(0)+'&nbsp;kB';

           }

           else{

             result = result+'&nbsp;B';

           }

           wiki_value = document.createElement("li");

	   wiki_value.id = "wiki-size";

	   wiki_value.innerHTML = '<b>Wiki text: </b>'+result;

	   var output = document.getElementById("document-size-stats");

	   prose_value = document.getElementById("prose-size");

	   output.insertBefore(wiki_value,prose_value);

	 }

	 else{

	  //alert("There was a problem using the Wikipedia Search to find the wiki text size\nEither the search is not working or the correct article did not appear on the first page of results");

           wiki_value = document.createElement("li");

	   wiki_value.id = "wiki-size";

	   wiki_value.innerHTML = '<b>Wiki text: </b>Problem getting wiki text size';

	   var output = document.getElementById("document-size-stats");

	   prose_value = document.getElementById("prose-size");

	   output.insertBefore(wiki_value,prose_value);

	 }

        } else {

            alert("There was a problem retrieving the XML data:\n" +

                req.statusText);

        }

    }

}

 

function getFileSize(req, page) {

    // only if req shows "loaded"

    if (req.readyState == 4) {

        // only if "OK"

        if (req.status == 200) {

            // ...processing statements go here...

	  var fsize = req.responseText.length;

	  window.status = fsize;

	  var total_value = document.createElement("li");

	  total_value.id = "total-size";

	  total_value.innerHTML='<b>File size: </b>'+(fsize/1024).toFixed(0)+'&nbsp;kB';

	  var output = document.getElementById("document-size-stats");

	  var prose_html_value = document.getElementById("prose-size-html");

	  output.insertBefore(total_value,prose_html_value);

         } else {

            alert("There was a problem retrieving the XML data:\n" +

                req.statusText + "\n(" + url + ")");

        }

    }

}

 

function getLength(id){

 var textLength = 0;

 for(var i=0;i<id.childNodes.length; i++){

  if(id.childNodesi].nodeName == '#text'){

   textLength += id.childNodesi].nodeValue.length;

  }

  else if(id.childNodesi].id == 'coordinates'){

    //special case for {{coord}} template

  }

  else{

    textLength += getLength(id.childNodesi]);

  }

 }

 return textLength;

}

 

function getRefMarkLength(id,html){

 var textLength = 0;

 for(var i=0;i<id.childNodes.length; i++){

  if(id.childNodesi].className == 'reference'){

   textLength += (html)? id.childNodesi].innerHTML.length : getLength(id.childNodesi]);

  }

 }

 return textLength;

}

 

function getDocumentSize(){

 contentDivName = '';

 if(skin == 'monobook' || skin == 'chick' || skin == 'myskin' || skin == 'simple'){

   contentDivName = 'bodyContent';

 }

 else if (skin == 'modern'){

   contentDivName = 'mw_contentholder';

 }

 else if (skin == 'standard' || skin == 'cologneblue' || skin == 'nostalgia'){

   contentDivName = 'article';

 }

 else{

   //fallback case; the above covers all currently existing skins

   contentDivName = 'bodyContent';

 }

 //Same for all skins if previewing page

 if(mw.config.get('wgAction') == 'submit') contentDivName = 'wikiPreview';

 

 var bodyContent = document.getElementById(contentDivName);

 if(document.getElementById("document-size-stats")){

   //if statistics already exist, turn them off and remove highlighting

   var output = document.getElementById("document-size-stats");

   var oldStyle = output.className;

   var pList = bodyContent.getElementsByTagName("p");

   for(var i=0;i<pList.length; i++){

     if(pListi].parentNode.id == contentDivName) pListi].style.cssText = oldStyle;

   }

   output.parentNode.removeChild(output);

   var header = document.getElementById("document-size-header");

   header.parentNode.removeChild(header);

 }

 else{

 var output = document.createElement("ul");

 output.id = "document-size-stats";

 

 var prose_html_value = document.createElement("li");

 prose_html_value.id = "prose-size-html";

 output.appendChild(prose_html_value);

 

 var ref_html_value = document.createElement("li");

 ref_html_value.id = "ref-size-html";

 output.appendChild(ref_html_value);

 

 var prose_value = document.createElement("li");

 prose_value.id = "prose-size";

 output.appendChild(prose_value);

 output.className = bodyContent.getElementsByTagName("p").item(0).style.cssText;

 

 var ref_value = document.createElement("li");

 ref_value.id = "ref-size";

 output.appendChild(ref_value);

 

 var dummy = document.getElementById("siteSub");

 dummy.parentNode.insertBefore(output, dummy.nextSibling);

 

 var header = document.createElement("span");

 header.id = "document-size-header";

 header.innerHTML = '<br/>Document statistics: <small><i>(See <a href="http://en.wikipedia.org/wiki/User_talk:Dr_pda/prosesize.js">here</a> for details.)<i></small>';

 dummy.parentNode.insertBefore(header,output);

 

 //File size not well defined for preview mode or section edit

 if(mw.config.get('wgAction') != 'submit'){

   //If browser supports document.fileSize property (IE)

   if(document.fileSize){

     var total_value = document.createElement("li");

     total_value.id = "total-size";

     total_value.innerHTML='<b>File size: </b>'+(document.fileSize/1024).toFixed(0)+'&nbsp;kB';

     output.insertBefore(total_value,prose_html_value);

   }

   else{

    loadXMLDocPassingTemplate(location.pathname,getFileSize,'')

   }

 }

 

 //Get size of images only if browser supports filesize property (IE)

 var iList = bodyContent.getElementsByTagName("img");

 if(iList.length >0 && iList0].fileSize){

 //Get size of images included in document

   var image_size = 0;

   var first_magnify = true;

 

   for (var i=0;i<iList.length; i++){

    var im = iListi];

    if(im.getAttribute("src").indexOf("magnify-clip.png") != -1){

      if(first_magnify){

        image_size += im.fileSize*1;

        first_magnify = false;

      }

    }

    else{

      image_size += im.fileSize*1;

    }

   }

   var image_value = document.createElement("li");

   image_value.id = "image-size";

   image_value.innerHTML='<b>Images: </b>'+(image_size/1024).toFixed(0)+'&nbsp;kB';

   output.appendChild(image_value);

 

  }

 //Calculate prose size and size of reference markers ([1] etc)

 var pList = bodyContent.getElementsByTagName("p");

 

 prose_size = 0;

 prose_size_html = 0;

 refmark_size = 0;

 refmark_size_html = 0;

 word_count = 0;

 for(var i=0;i<pList.length; i++){

   var para = pListi];

   if(para.parentNode.id == contentDivName){

    prose_size += getLength(para);

    prose_size_html += para.innerHTML.length;

    refmark_size += getRefMarkLength(para,false);

    refmark_size_html += getRefMarkLength(para,true);

    word_count += para.innerHTML.replace(/(<([^>]+)>)/ig,"").split(' ').length

    para.style.cssText = "background-color:yellow";

   }

 }

 

 if((prose_size-refmark_size)>10240){

   prose_value.innerHTML='<b>Prose size (text only): </b>'+((prose_size-refmark_size)/1024).toFixed(0)+'&nbsp;kB ('+word_count+' words) "readable prose size"';

 }

 else{

   prose_value.innerHTML='<b>Prose size (text only): </b>'+(prose_size-refmark_size)+'&nbsp;B ('+word_count+' words) "readable prose size"';

 }

 

 if((prose_size_html-refmark_size_html)>10240){

   prose_html_value.innerHTML='<b>Prose size (including all HTML code): </b>'+((prose_size_html-refmark_size_html)/1024).toFixed(0)+'&nbsp;kB';

 }

 else{

   prose_html_value.innerHTML='<b>Prose size (including all HTML code): </b>'+(prose_size_html-refmark_size_html)+'&nbsp;B';

 }

 

 //Calculate size of references (i.e. output of <references/>)

 var rList = bodyContent.getElementsByTagName("ol");

 var ref_size = 0;

 var ref_size_html = 0;

 for (var i=0; i<rList.length; i++){

   if(rListi].className == "references"){

     ref_size = getLength(rListi]);

     ref_size_html = rListi].innerHTML.length;

   }

 }

 

 if((ref_size+refmark_size)>10240){

   ref_value.innerHTML='<b>References (text only): </b>'+((ref_size+refmark_size)/1024).toFixed(0)+'&nbsp;kB';

 }

 else{

   ref_value.innerHTML='<b>References (text only): </b>'+(ref_size+refmark_size)+'&nbsp;B';

 }

 

 if((ref_size_html+refmark_size_html)>10240){

   ref_html_value.innerHTML='<b>References (including all HTML code): </b>'+((ref_size_html+refmark_size_html)/1024).toFixed(0)+'&nbsp;kB';

 }

 else{

   ref_html_value.innerHTML='<b>References (including all HTML code): </b>'+(ref_size_html+refmark_size_html)+'&nbsp;B';

 }

 

 //get correct name of article from wikipedia-defined global variables

 var pageNameUnderscores = mw.config.get('wgPageName');

 var pageNameSpaces = pageNameUnderscores.replace(/_/g,' ')

 

 //if page is a permalink, diff, etc don't try to search

 if(!location.pathname.match('/')){ 

  //Get revision size from API

  var searchURL = mw.config.get('wgScriptPath') + '/api.php?action=query&prop=revisions&rvprop=size&format=xml&revids=' + mw.config.get('wgCurRevisionId');

  loadXMLDocPassingTemplate(searchURL,getWikiText,pageNameSpaces);

 }

 else if(mw.config.get('wgAction') == 'submit'){

   //Get size of text in edit box

   result = document.getElementById('wpTextbox1').value.length;

   if(result > 10240){

     result = (result/1024).toFixed(0)+'&nbsp;kB';

   }

   else{

     result = result+'&nbsp;B';

   }

   wiki_value = document.createElement("li");

   wiki_value.id = "wiki-size";

   wiki_value.innerHTML = '<b>Wiki text: </b>'+result;

   var output = document.getElementById("document-size-stats");

   prose_value = document.getElementById("prose-size");

   output.insertBefore(wiki_value,prose_value);

 }

}

}

 

addOnloadHook(function () {

  if(mw.config.get('wgAction') == 'edit' || (mw.config.get('wgAction') == 'submit' && document.getElementById('wikiDiff')) ){

    mw.util.addPortletLink('p-tb', 'javascript:alert("You need to preview the text for the prose size script to work in edit mode.")', 'Page size', 't-page-size', 'Calculate page and prose size', '', '');

    document.getElementById("t-page-size").firstChild.style.cssText = "color:black;"

  }

  else if(mw.config.get('wgAction') == 'view' || mw.config.get('wgAction') == 'submit' || mw.config.get('wgAction') == 'purge'){

    mw.util.addPortletLink('p-tb', 'javascript:getDocumentSize()', 'Page size', 't-page-size', 'Calculate page and prose size', '', '');

  }

});

 

 //</pre>

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook