X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=js%2Fformateur.js;h=eba6c5a3aa089e2de737e72ae1b9d8bb479aa555;hp=8fd8e0f766b4384811d80e5df0bcc693db8a7f27;hb=8ee1535f5594573931ddaebee77bf6148a5358cb;hpb=e6475e1885c0a0f102387c01e9bcb78ac09b4ef8 diff --git a/js/formateur.js b/js/formateur.js index 8fd8e0f..eba6c5a 100644 --- a/js/formateur.js +++ b/js/formateur.js @@ -18,7 +18,7 @@ /** - * Classe permettant de formater du texte par exemple pour la substitution des liens dans les + * Objet permettant de formater du texte par exemple pour la substitution des liens dans les * message par "[url]". * TODO : améliorer l'efficacité des méthods notamment lié au smiles. */ @@ -28,7 +28,7 @@ euphorik.Formateur = function() { this.regexUrl = new RegExp("(?:(?:" + this.protocoles + ")://|www\\.)[^ ]*", "gi"); this.regexImg = new RegExp("^.*?\\.(gif|jpg|png|jpeg|bmp|tiff)$", "i"); - this.regexDomaine = new RegExp("^(?:(?:" + this.protocoles + ")://|www\\.).*?([^/.]+\\.[^/.]+)(?:$|/).*$", "i"); + this.regexDomaine = new RegExp("^(?:(?:" + this.protocoles + ")://)(.*?)(?:$|/).*$", "i"); this.regexTestProtocoleExiste = new RegExp("^(?:" + this.protocoles + ")://.*$", "i"); this.regexNomProtocole = new RegExp("^(.*?)://"); }; @@ -110,12 +110,12 @@ euphorik.Formateur.prototype.traiterURL = function(m, pseudo) { */ euphorik.Formateur.prototype.traiterWikiSyntaxe = function(m) { return m.replace( - /_(.*?)_/g, + /(?:^| )_(.*?)_(?:$| )/g, function(texte, capture) { return '' + capture + ''; } ).replace( - /\*(.*?)\*/g, + /(?:^| )\*(.*?)\*(?:$| )/g, function(texte, capture) { return '' + capture + ''; } @@ -124,7 +124,7 @@ euphorik.Formateur.prototype.traiterWikiSyntaxe = function(m) { /** * Renvoie une version courte de l'url. - * par exemple : http://en.wikipedia.org/wiki/Yakov_Smirnoff devient wikipedia.org + * par exemple : http://en.wikipedia.org/wiki/Yakov_Smirnoff devient en.wikipedia.org */ euphorik.Formateur.prototype.getShort = function(url) { var estUneImage = false; @@ -152,8 +152,19 @@ euphorik.Formateur.prototype.getShort = function(url) { return [versionShort ? versionShort : "url", estUneImage]; }; +euphorik.Formateur.prototype.supprimerSmiles = function(m) { + objectEach(this.smiles, function(nom, smiles) { + for (var i = 0; i < smiles.length; i++) { + m = m.replace(smiles[i], ""); + } + }); + return m; +}; + /** * Traite les pseudo et messages à être affiché dans le titre d'une image visualisé avec lightbox. + * Supprime les smiles pour pas qu'ils puissent être remplacés par la fonction 'traiterSmiles'. + * TODO : trouver un moyen pour que les smiles puissent être conservés */ euphorik.Formateur.prototype.traiterPourFenetreLightBox = function(M, urlCourante) { var thisFormateur = this; @@ -161,5 +172,5 @@ euphorik.Formateur.prototype.traiterPourFenetreLightBox = function(M, urlCourant return "[" + thisFormateur.getShort(url)[0] + (urlCourante === url ? "*" : "") + "]"; }; - return this.remplacerBalisesHTML(M).replace(this.regexUrl, traitementUrl); + return this.remplacerBalisesHTML(this.supprimerSmiles(M)).replace(this.regexUrl, traitementUrl); };