Utilisateur:Prométhée/AddHashTagLink.js

Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;

Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
/* **********************************************************************************************************************
AddHashTagLink

Permet de bleuir les hastags dans l'historique des articles, les listes de suivi et de contributions.
En créant un lien vers le hashtag dans https://hashtags.wmflabs.org/

{{Projet:JavaScript/Script}} 
*********************************************************************************************************************** */

// <syntaxhighlight lang=javascript><pre><nowiki>
function addHashTagLink() {
   var tabComments = $(".comment");

    for (var i = 0; i < tabComments.length; i++) {
    	var childnodes = tabComments[i].childNodes;
    	
    	//On parcours les enfants pour exclure l'ajout d'un lien au sein de liens existants
		for (var j =0; j < childnodes.length; j++) {
			//On ne garde que les éléments de type texte
			if(childnodes[j].nodeType === 3) {
					var textNode = childnodes[j];
					//Construction d'un nouveau node
   				    var temp = document.createElement('span');
   				    temp.innerHTML = textNode.data.replace(/(^|\W)#([A-Za-zàèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇßØøÅåÆæœ\d]*)([^A-Za-zàèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇßØøÅåÆæœ\d]*)/ig, '$1<a href="https://hashtags.wmflabs.org/?query=$2&project=fr.wikipedia.org" target="_blank">#$2</a> ');
		
					//Insertion du nouveau texte
					if (temp.firstChild) {
				        tabComments[i].insertBefore(temp, textNode.nextSibling);
				    }
				
				 // Suppression du node texte original
				textNode.parentNode.removeChild(textNode);
			}
		}
    }
}

addHashTagLink();

//</nowiki></pre>
//</syntaxhighlight>