User:Guywan/Scripts/RefCruncher.js

// Category:Wikipedia scripts

//

$(function()

{

if(mw.config.get("wgAction") !== "edit") return;

const debug = false;

if(debug) console.log("Running");

rc_refsCrunched = false;

rc_refs = [];

// Add key handler.

window.addEventListener("keydown", e =>

{

if(e.ctrlKey && e.altKey && e.which == 82)

{

run();

}

});

function run()

{

if(debug) console.log("Activate");

if(rc_refsCrunched)

{

rc_refsCrunched = uncrunchRefs();

}

else

{

rc_refsCrunched = crunchRefs();

}

}

function crunchRefs()

{

const txtarea = document.getElementById("wpTextbox1");

var text = txtarea.value;

var counter = 0;

text = text.replace(/()|((.|\s)*?<\/ref>)/g, match =>

{

if(debug) console.log(match);

rc_refs.push(match);

return ``;

});

txtarea.value = text;

return true;

}

function uncrunchRefs()

{

const txtarea = document.getElementById("wpTextbox1");

var text = txtarea.value;

text = text.replace(//g, (match, p1) =>

{

if(debug) console.log(match);

return rc_refs[Number(p1)];

});

window.rc_refs = [];

txtarea.value = text;

return false;

}

});

//