User:JPxG/ThinkOutDaBox.js

// Takes images from infobice and formats them into thumb image frames, which it puts before the infobox.

function doMove { //alert("This part works"); wikitext = String(document.editform.wpTextbox1.value); // Get the text from the edit box and store it as "tbox". //alert("This part works too"); // Find the name of the Infobox. // Find the name of the Infobox. const infoboxRegex = /{{\s*infobox\s+([^{]*)/i; const infoboxMatch = wikitext.match(infoboxRegex); var infoboxWhole = infoboxMatch[1].trim; console.log(infoboxWhole)

// Split the Infobox fields into an array. const fields = wikitext.split(/\|\s*(?![^[]*\])/);

// Find the image, caption, and alt fields in the Infobox. let imageMatch, captionMatch, altMatch; fields.forEach((field) => {   if (field.match(/^\s*image\s*=/i)) {      imageMatch = field.match(/image\s*=\s*([^\n|]*)/i);    }    if (field.match(/^\s*image_caption\s*=/i)) {      captionMatch = field.match(/image_caption\s*=\s*(.*)/is);    }    if (field.match(/^\s*image_alt\s*=/i)) {      altMatch = field.match(/image_alt\s*=\s*([^\n|]*)/i);    }  });

// If any of the fields are found, remove them from the Infobox. //if (imageMatch || captionMatch || altMatch) { // const filteredFields = fields.filter((field) => {  //    return !field.match(/^(image|image_caption|image_alt)\s*=/i);  //  }); // wikitext = filteredFields.join('|'); //} //human-written line to hack a bug out infoboxWhole = infoboxWhole.replaceAll(imageMatch[1].trim, ""); infoboxWhole = infoboxWhole.replaceAll(captionMatch[1].trim, ""); infoboxWhole = infoboxWhole.replaceAll(altMatch[1].trim, "");

// Construct the image frame string and insert it above the Infobox. if (imageMatch && captionMatch && altMatch) { const imageFrame = `thumb|${captionMatch[1].trim}|alt=${altMatch[1].trim}\n\n`; wikitext = wikitext.replace(infoboxRegex, imageFrame + `{{Infobox ${infoboxWhole}`); }

document.editform.wpTextbox1.value = wikitext; // Edit summary. sumbox = String(document.getElementById("wpSummary").value); sumbox += " Move image from infobox to thumb frame using ThinkOutDaBox" document.getElementById("wpSummary").value = sumbox; } // function to replace the stuff with the other stuff

addOnloadHook(function {	if (document.editform) {		mw.util.addPortletLink("p-cactions", "javascript:doMove", "Out da box", "ca-outdabox", "Move image out of infobox", "");	} }); // onloadhook //