vincent-richard.net


Parseur BBCode

Introduction

Ce programme permet de transformer un texte balisé avec BBcode en un texte XHTML standard strict. Il offre une grande souplesse d'utilisation grâce à la possibilité de définir des balises et des comportements personnalisés.

La plupart des outils équivalents ne produisent pas du code XHTML strict, notamment lorsque l'utilisateur superpose ou croise des balises (exemple : Ceci [b]est mon[i]texte[/b] ![/i]), ou encore lorsqu'il oublie d'en fermer certaines.

Les sources du programme sont distribuées sous les termes de la licence GNU GPL.

Téléchargement

Compilation

Pré-requis :

Lancement de la compilation :

$ make

Un fichier exécutable 'bbcode' est créé.

Exemple d'utilisation

Un programme de test nommé 'bbcode' est fourni dans le paquetage. Le texte source est lu sur l'entrée standard et le résultat (XHTML) est dirigé sur la sortie standard.

Vous pouvez utiliser les commandes et les opérateurs standards pour rediriger l'une ou l'autre vers/depuis un fichier :

$ echo "Mon [b]texte[/b] en BBcode" | ./bbcode
$ ./bbcode < mon-fichier-bbcode

Vous pouvez également intégrer le code source dans votre propre programme C++ :

#include <iostream>
#include <ostream>

#include "bbcode.hpp"

// ...

int main()
{
	bbcode::tagPool pool;

	bbcode::defaultTag* tag;

	// [b]
	pool.add("b", tag = new bbcode::simpleReplaceTag("b"));
	tag->addAutoClose("");

	// [i]
	pool.add("i", tag = new bbcode::simpleReplaceTag("i"));
	tag->addAutoClose("");

	// [u]
	pool.add("u", tag = new bbcode::simpleReplaceTag("u"));
	tag->addAutoClose("");

	std::cout << bbcode::bbcodeTransformer(bbcode::htmlSpecialTransformer(text), pool);
}

Pour un exemple d'utilisation plus poussée, consultez les fichiers sources du paquetage (notamment test.cpp), les commentaires sont souvent très instructifs.

Fonctionnalités