MediaWiki:Gadget-ArchiveLinks.js

MediaWiki:Gadget-ArchiveLinks.js est un sujet qui a retenu l'attention d'innombrables personnes au fil du temps. Depuis son émergence, elle a été abordée sous différents angles et a suscité un grand intérêt dans divers domaines d’études. Sa pertinence est restée au fil des années, devenant un sujet de débat et d’analyse constant. Dans cet article, nous explorerons en détail tous les aspects de MediaWiki:Gadget-ArchiveLinks.js, de son origine à son impact sur la société actuelle. Nous découvrirons comment il a évolué au fil du temps et comment il a influencé différentes générations. De plus, nous analyserons sa pertinence dans le monde d'aujourd'hui et sa projection future. Rejoignez-nous dans ce voyage de découverte et d'immersion dans le monde fascinant de MediaWiki:Gadget-ArchiveLinks.js.
/**
 * Application de ].
 * Un <span class="noarchive"> autour d'un lien l'empêche d'être pris en compte.
 *
 * {{Catégorisation JS|ArchiveLinks}}
 */

if ( !window.no_external_cache && ( mw.config.get( 'wgNamespaceNumber' ) === 0 || mw.user.options.get( 'gadget-ExtendedCache' ) ) ) {
	mw.hook( 'wikipage.content' ).add( function ( $content ) {
		'use strict';

		$content.find( '.mw-parser-output' ).find( '.external' ).each( function ( _, link ) {
			if ( link.tagName !== 'A' ) {
				return;
			}

			var hostname = link.hostname;

			if ( /(^|\.)wiki(edia|data)\.org$/.test( hostname )
				|| hostname === 'tools.wmflabs.org'
				|| hostname === 'archive.wikiwix.com' 
				|| hostname === 'wikiwix.com'
				|| hostname === 'web.archive.org'
				|| /^archive\.(is|ph|today|li|vn|fo|md)$/.test( hostname )
			) {
				return;
			}

			if ( link.closest( '.noarchive' ) ) {
				return;
			}

			var small = document.createElement( 'small' );
			small.className = 'cachelinks';

			var archiveLink = document.createElement( 'a' );
			archiveLink.href = 'https://archive.wikiwix.com/cache/?url=' + encodeURIComponent( link.href );
			archiveLink.title = 'archive sur Wikiwix';
			archiveLink.textContent = 'archive';

			small.append( '\xA0' );

			link.after( small );
		});
	});
}