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