Rendez-vous sur Arrakis

C'est lorsque nous croyons savoir quelque chose qu'il faut justement réfléchir un peu plus profondément. F. Herbert

Des émoticônes automatiques pour blogotext

Blogotext, l'excellement moteur qui sert à faire tourner ce blog a été repris par BoboTiG il y a peu. On peut d'ailleurs constater que ça avance plutôt bien :

Puisque je suis tout bloqué avec une minerve, forcé à me tenir droit sans bouger, je n'ai d'autre choix que de geeker un peu. Si si, ça se dit! :)

Je me suis donc donné le défi de convertir automatiquement dans un commentaire les smileys. Ainsi, si quelqu'un écrit un “:” suivi de “)”, on voit apparaître un magnifique ☺.
La mise en place est très naïve : un petit bout de javascript fait une boucle sur tous les conteneurs de type commentaire, puis remplace toutes les occurences de smileys “texte” par leur emoji équivalent.

Voici le code, à inclure à votre fichier list.html d'un thème :


 <script>
 var strtostr= [
     [/ :\)/g,' ☺'], 
     [/ :\(/g,' ☹'], 
     [/ :D/g,' 😃'],
     [/ :P/g,' 😋'],
     [/ :p/g,' 😋'],
     [/ ;\)/g,' 😉'],
     [/ ;-\)/g,' 😉'],
     [/ :\//g,' 😕'],
     [/ :\'\(/g,' 😢'],
     [/ oO/g,' 😮'],
     [/ x\.x/g,' 😵'],
     [/ O:\)/g,' 😇'],
     [/ \^\^/g,' 😁']
 ];
 
 var classes_to_replace = ["com-content"];
 
 
 classes_to_replace.forEach(function(class_){
     var tochange = document.getElementsByClassName(class_);
     var j;
     for (j = 0; j < tochange.length; j++) {
         var i;
         for (i = 0; i < strtostr.length; i++) {
             var oldtxt = tochange[j].innerHTML;
             var newtxt = oldtxt.replace(strtostr[i][0],strtostr[i][1]);
             tochange[j].innerHTML = newtxt;
         }
 
     }
 });
 
 </script>
 

C'est très simple à personnaliser, il suffit de rajouter des entrées dans le tableau définit au début.

Le code doit sans doute pouvoir être optimisé, je n'ai jamais appris le javascript 😉 .
Alors certes, le javascript n'est peut-être pas la meilleure méthode, c'est sans doute moins rapide qu'en PHP, mais ça ne surcharge pas la génération des pages, et en plus, si quelqu'un a désactivé le javascript, je suppose qu'il n'a pas grand chose à faire des émojis.

Tiens en passant, il y a une liste des émojis sur github

Voilà voilà, c'était le bout de code inutile mais indispensable de la journée, je vous laisse faire mumuse avec les smileys 😁

le 08/11/2016 à 08:56:05, Starsheep a dit :

Cooooool ! J'ai hâte de télécharger la dernière version alors ! :)

En revanche, juste un petit “bug” : les séquences de caractères sont aussi remplacées entre les balises code. Perso, je ne toucherai à rien quand c'est du code. Là par exemple, dans cet article, on ne peut pas voir les séquences de caractères pour afficher des smileys puisqu'elles sont remplacées… :D

le 08/11/2016 à 09:08:24, thuban a dit :

@Starsheep : Pour avoir testé la version de dev, oui, ça va être top!

Ah quel boulet je suis! Bien vu. Je vais corriger ça.

le 08/11/2016 à 09:48:27, bendia a dit :

Salut :)

Je compatie au geek bloqué devant sa machine, lâché par la chair, triste, hélas ;) J'espère pour toi que ça ne va pas durer trop longtemps, parce qu'au bout d'un moment, on arrive même plus à geeker (enfin moi, j'y arrive plus, et j'ai lu tous les livres :p )

Chouette sinon, les nouveautées dans Blogotext. Va falloir que je mette le miens à jour, même si je ne m'en sers pas :/

le 08/11/2016 à 20:22:55, Spartiate a dit :

euh rien à voir avec le sujet en cours mais Thuban, pourquoi mettre des liens twitter/facebook sur tes billets??

Je ne pensais pas que cela faisait partie de ta philosophie de “geek”? ou alors j'ai râté des épisodes?? ;)

le 08/11/2016 à 20:32:37, thuban a dit :

@Spartiate : Aaaah, j'attendais la remarque! :)
C'est signe que ça fonctionne alors.

Petite explication : j'ai tenté de coder un addon pour blogotext (oui, car la prochaine mouture supporte les addons) qui permette d'ajouter les boutons “partage”. Alors y a facebook et twitter pour les tests et la publication. Maintenant que tu m'as dit que ça fonctionne, je peux laisser que ce qui m'intéresse ;)

le 08/11/2016 à 20:35:23, thuban a dit :

@Spartiate : À noter tout de même que le lien cliqué n'envoie pas le refferer, ça fait un tracking de moins. Mais ça, c'est le boulot de niqnutn : http://blog.niqnutn.com/index.php?article19/plxmysocialnetwork

le 09/11/2016 à 08:39:57, Sabcat a dit :

C'est normal que tes deux premiers smiley soient les mêmes ?

le 09/11/2016 à 09:02:56, thuban a dit :

@Sabcat : Après vérification, car bien de mon genre ce type de bêtises, ce ne sont pas les mêmes non. Ou alors j'ai mal compris.

le 18/11/2016 à 19:05:22, Sabcat a dit :

@thuban :

Je parlais du raccourcis “:/” qui doit donner deux résultats différents malgré un raccourcis identique.

[/ :\)/g,‘ ☺’],
[/ :\(/g,‘ ☹’],
![surprise](http://recyclepc.free.fr/emo/01/em_surprise2.gif)
Ou me trompe-je ?

le 18/11/2016 à 20:30:07, thuban a dit :

@Sabcat : Ben non je ne pige pas. Désolé :s

Le “:/” donne 😕, c'est ce qui est attendu non? Quel autre résultat penses-tu? Un truc avec “:" ?