X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=js%2Fformateur.js;h=4b74d44a1c5b50c4d404cfbdd183ff46ceec5545;hp=23f253187d0726dab6df3dbd0462f25e0c53ac63;hb=d8ab9a821d65e72242d84c11cc5960d2befb161b;hpb=107016b49c680e6bc4ff8ae9685f7c57e46cc450 diff --git a/js/formateur.js b/js/formateur.js index 23f2531..4b74d44 100644 --- a/js/formateur.js +++ b/js/formateur.js @@ -16,11 +16,9 @@ // You should have received a copy of the GNU General Public License // along with Euphorik. If not, see . -/*jslint laxbreak:true */ - /** - * 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. */ @@ -46,7 +44,7 @@ euphorik.Formateur.prototype.filtrerInputPseudo = function(pseudo) { euphorik.Formateur.prototype.getSmilesHTML = function() { var XHTML = ""; - this.smiles.each(function(nom) { + objectEach(this.smiles, function(nom) { XHTML += "\"""; }); return XHTML; @@ -81,7 +79,7 @@ euphorik.Formateur.prototype.traiterLiensConv = function(m) { * moyenne sur échantillon : 234ms */ euphorik.Formateur.prototype.traiterSmiles = function(m) { - this.smiles.each(function(nom, smiles) { + objectEach(this.smiles, function(nom, smiles) { for (var i = 0; i < smiles.length; i++) { m = m.replace(smiles[i], "\"""); } @@ -112,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 + ''; } @@ -154,14 +152,25 @@ 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; var traitementUrl = function(url) { - return "[" + thisFormateur.getShort(url)[0] + (urlCourante == url ? "*" : "") + "]"; + 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); };