// You should have received a copy of the GNU General Public License\r
// along with Euphorik. If not, see <http://www.gnu.org/licenses/>.\r
\r
-/*jslint laxbreak:true */\r
-\r
\r
/**\r
* Classe permettant de formater du texte par exemple pour la substitution des liens dans les\r
\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
\r
euphorik.Formateur.prototype.getSmilesHTML = function() {\r
var XHTML = "";\r
- this.smiles.each(function(nom) {\r
+ objectEach(this.smiles, function(nom) {\r
XHTML += "<img class=\"" + nom + "\" src=\"img/smileys/" + nom + ".gif\" alt =\"" + nom + "\" />";\r
});\r
return XHTML;\r
* moyenne sur échantillon : 234ms\r
*/\r
euphorik.Formateur.prototype.traiterSmiles = function(m) { \r
- this.smiles.each(function(nom, smiles) {\r
+ objectEach(this.smiles, function(nom, smiles) {\r
for (var i = 0; i < smiles.length; i++) {\r
m = m.replace(smiles[i], "<img src=\"img/smileys/" + nom + ".gif\" alt =\"" + nom + "\" />");\r
}\r
};\r
\r
/**\r
- * Formatage en utilisant un sous-ensemble des règles de mediwiki.\r
- * par exemple ''italic'' devient <i>italic</i>\r
+ * Formatage en utilisant un sous-ensemble des règles de Textile : http://en.wikipedia.org/wiki/Textile_(markup_language).\r
+ * par exemple _italic_ devient <i>italic</i>.\r
*/\r
euphorik.Formateur.prototype.traiterWikiSyntaxe = function(m) {\r
return m.replace(\r
- /'''(.*?)'''/g,\r
+ /(?:^| )_(.*?)_(?:$| )/g,\r
function(texte, capture) {\r
- return "<b>" + capture + "</b>";\r
+ return '<em class="leger">' + capture + '</em>';\r
}\r
).replace(\r
- /''(.*?)''/g,\r
+ /(?:^| )\*(.*?)\*(?:$| )/g,\r
function(texte, capture) {\r
- return "<i>" + capture + "</i>";\r
+ return '<em class="fort">' + capture + '</em>';\r
}\r
);\r
};\r
\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
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
var traitementUrl = function(url) {\r
- return "[" + thisFormateur.getShort(url)[0] + (urlCourante == url ? "*" : "") + "]";\r
+ 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