MediaWiki:Common.js: Difference between revisions

MediaWiki interface page
No edit summary
No edit summary
Line 26: Line 26:
// Find paragraph marker class
// Find paragraph marker class
var classList = document.getElementById('divId').className.split(/\s+/);
var classList = document.getElementById('divId').className.split(/\s+/);
console.log('Considering classlist: ', classList);
for (var i = 0; i < classList.length; i++) {
for (var i = 0; i < classList.length; i++) {
     if (classList[i].includes('num-paragraphs-')) {
     if (classList[i].includes('num-paragraphs-')) {
     var paragraphLength = Number(classList[i].substring('num-paragraphs-'.length).trim());
     var paragraphLength = Number(classList[i].substring('num-paragraphs-'.length).trim());
    console.log('Length is supposed to be: ', paragraphLength);
    
    
     // Remove extra paragraphs
     // Remove extra paragraphs
     var paragraphs = $('.wikipedia-excerpt .mw-parser-output p');
     var paragraphs = $('.wikipedia-excerpt .mw-parser-output p');
    console.log('Found paragraphs: ', paragraphs);
     for (var index = 0; index < paragraphs.length; index++) {
     for (var index = 0; index < paragraphs.length; index++) {
    console.log('Considering paragraph number: ', paragraphLength);
     if (paragraphLength > 0 && (paragraphs[index].children().length > 1 || (paragraphs[index].text() != '' && paragraphs[index].text() != '<br/>'))) {
     if (paragraphLength > 0 && (paragraphs[index].children().length > 1 || (paragraphs[index].text() != '' && paragraphs[index].text() != '<br/>'))) {
     // Keep this paragraph
     // Keep this paragraph
     paragraphLength --;
     paragraphLength --;
    console.log('Keeping: ', paragraphs[index]);
     } else {
     } else {
    console.log('Removing: ', paragraphs[index]);
     paragraphs[index].remove();
     paragraphs[index].remove();
     }
     }

Revision as of 17:40, 5 February 2024

/* Any JavaScript here will be loaded for all users on every page load. */
$( window ).on( "load", function() {
	
	// Add link to main page
	if (!window.location.pathname.includes(':') && window.location.pathname.includes('/wiki/')) {
		$("#siteSub").empty();
		$("#siteSub").append("<a href='https://accountablebrand.org/b"+window.location.pathname.substring(5)+"'>&lt; Open in Main Site</a>");
	}
	
	// Remove empty p tags
	$("p").each(function() {
    	var $this = $(this);
    	if( $.trim($this.text()) == "" || $.trim($this.text()) == "\n") $this.remove();
	});
	
	
	// Wikipedia Excerpt methods
	if ($('.wikipedia-excerpt').length > 0) {
		
		// Move all references below Reports
		if ($('.mw-parser-output .mw-parser-output .mw-references-wrap').length > 0 && $('ul.mw-prefixindex-list').siblings('div.mw-inputbox-centered').length > 0) {
			$('.mw-references-wrap').last().append($('.mw-parser-output .mw-parser-output .mw-references-wrap'));
			$('.mw-references-wrap').last().prepend('<p>Imported References</p>');
		}
		
		// Find paragraph marker class
		var classList = document.getElementById('divId').className.split(/\s+/);
		console.log('Considering classlist: ', classList);
		for (var i = 0; i < classList.length; i++) {
    		if (classList[i].includes('num-paragraphs-')) {
    			var paragraphLength = Number(classList[i].substring('num-paragraphs-'.length).trim());
    			console.log('Length is supposed to be: ', paragraphLength);
    			
    			// Remove extra paragraphs
    			var paragraphs = $('.wikipedia-excerpt .mw-parser-output p');
    			console.log('Found paragraphs: ', paragraphs);
    			for (var index = 0; index < paragraphs.length; index++) {
    				console.log('Considering paragraph number: ', paragraphLength);
    				if (paragraphLength > 0 && (paragraphs[index].children().length > 1 || (paragraphs[index].text() != '' && paragraphs[index].text() != '<br/>'))) {
    					// Keep this paragraph
    					paragraphLength --;
    					console.log('Keeping: ', paragraphs[index]);
    				} else {
    					console.log('Removing: ', paragraphs[index]);
    					paragraphs[index].remove();
    				}
    			}
    		}
		}
	}
})