La génèse

Cela fait des années que je connais le GWBBCode, je l'avais intégré à notre forum de guilde en PHPBB.

C'était du bon travail effectué par Liu Pi et Ouroboros entre autres.

Mon problème apparu en septembre 2011 : j'ai eu besoin de faire évoluer le forum sur MyBB, qui est sérieusement mieux conçu que PHPBB.

Et là les faiblesses du GWBBCode se faisaient clairement sentir : techniquement lié à PHP, très mal codé (problèmes de performances graves), base pas à jour, et j'en passe ...

Sur ce constat, soit j'abandonnais la rubrique builds de mon forum soit je recodais moi-même tout le GWBBCode (impossible de trouver une mise à jour correcte à ce jour).

J'ai finalement décidé de tout refaire en respectant les bonnes pratiques du web d'aujourd'hui.

Ce recodage "from scratch" m'a pris 4 jours, dont 2 pour alimenter la base de données des compétences en les mettant à jour autant que possible.

Techniquement

L'API javascript se base sur jQuery pour gérer la DOM. Donc en premier pré-requis : jQuery Si vous ne mettez pas jQuery, la librairie sera automatiquement ajoutée par le GWBBCode.

Il vous suffit ensuite d'inclure simplement l'api JS :
<script type="text/javascript" src="http://gwbbcode.arnapou.net/gwbbcode/api.js"></script>

Vous devez charger l'api ensuite avec ce code à mettre sur votre site :

<script type="text/javascript" >
    GWConfig.lang = 'fr'; // ou 'en'
    GWOnLoad(function(){
        GWBBCodeParse('.gwbbcode');
    });
</script>

Vous devez utiliser GWOnLoad et non pas le "ready" de jQuery car GWOnLoad s'occupe de charger les dépendances à votre place : CSS et JS de données

Le parseur GWBBCode est la fonction GWBBCodeParse, si vous voulez utiliser votre propre syntaxe, réalisez votre propre parseur en vous inspirant du code du mien.

rom scratch" m'a pris 4 jours, dont 2 pour alimenter la base de données des compétences en les mettant à jour autant que possible.

Code à intégrer pour MyBB + PunBB + PhpBB + Invision

<script type="text/javascript" src="http://gwbbcode.arnapou.net/gwbbcode/api.js"></script>
<script type="text/javascript" >
    GWConfig.lang = 'fr'; // ou 'en'
    GWOnLoad(function(){
        GWBBCodeParse('.post_body, .postbody');
    });
</script>

Résultat

Build complet en français :

[nobb][build prof=El/G feu=12+3+1 air=5 epe=1][Flammes virulentes][Boule de feu][Liens incendiaires][Eclat de feu][Regard embrasé][Tempête de feu][Décharge électrique][Bourrasque][/build][/nobb] [build prof=El/G feu=12+3+1 air=5 epe=1][Flammes virulentes][Boule de feu][Liens incendiaires][Eclat de feu][Regard embrasé][Tempête de feu][Décharge électrique][Bourrasque][/build]

Build template :

[nobb][build=ADIRjh8oRyI5EQCd1e8RkJA][/nobb] [build=ADIRjh8oRyI5EQCd1e8RkJA]

Compétences inline :

[nobb][pluie de météores@10] ou [[pluie de météores@10][/nobb]
[pluie de météores@10] ou [[pluie de météores@10]

Download

Si vous voulez héberger vous-même le code : Télécharger depuis GitHub.

Si vous en avez les compétences, je vous le recommande, car rien ne m'obligera à maintenir mon GWBBCode en ligne éternellement.

Mises à jours

Via GitHub, effectuez un pull request et je le mergerai.