Convertir du BBCode en HTML
Ce convertisseur BBCode vers HTML transforme un ensemble pratique de balises de mise en forme issues des forums en HTML prévisible.
Lancer gratuitement
Collez un texte contenant du gras, de l’italique, du souligné, une URL, une citation ou une liste, puis obtenez une chaîne HTML prête pour une utilisation maîtrisée dans une page ou un flux éditorial. Les balises reconnues peuvent être imbriquées, les caractères HTML ordinaires sont échappés et les imbrications incorrectes sont signalées au lieu de produire silencieusement un balisage défectueux. La conversion est déterministe, ne requiert aucun accès réseau et renvoie toujours le même résultat pour une même entrée.
Convertissez les balises BBCode prises en charge
Le convertisseur reconnaît six familles courantes de BBCode : <code>[b]</code>, <code>[i]</code>, <code>[u]</code>, <code>[url]</code>, <code>[quote]</code> et <code>[list]</code>. Le gras devient <code><strong></code>, l’italique <code><em></code>, le souligné <code><u></code>, les citations <code><blockquote></code> et les listes deviennent des listes HTML non ordonnées avec leurs éléments. Un lien peut employer <code>[url=https://example.com]libellé[/url]</code> ou <code>[url]https://example.com[/url]</code>. Chaque élément commence par <code>[*]</code> au sein d’une liste. Les balises peuvent être imbriquées lorsqu’elles se ferment dans l’ordre inverse de leur ouverture ; du gras peut donc contenir de l’italique. Les balises étrangères à cet ensemble sont conservées sous forme de texte échappé et ne sont pas interprétées comme du HTML. Ce contrat limité rend le résultat compréhensible et évite de prétendre gérer les nombreuses extensions incompatibles propres aux différents logiciels de forum. Si la source utilise des balises personnalisées de couleur, taille, image, tableau ou média, traitez-les séparément avec des règles adaptées à cette source.
Comprenez la validation et la sûreté du résultat
Le BBCode reconnu doit être structurellement équilibré. Toute balise de mise en forme ouverte nécessite la fermeture correspondante, les balises imbriquées doivent se fermer dans l’ordre inverse de leur ouverture et les marqueurs d’élément doivent figurer directement dans une liste. Une séquence incorrecte renvoie une erreur d’entrée non valide plutôt qu’un document partiel. Cette règle est importante pour la publication automatisée, car une réparation silencieuse pourrait déplacer une emphase, un lien ou une citation au-delà des limites voulues par l’auteur. Le texte brut est échappé pour HTML pendant le rendu, y compris les chevrons et esperluettes, tandis que les destinations des liens sont échappées pour servir d’attributs. Les schémas URL explicites sont limités à HTTP, HTTPS et mailto ; les fragments et destinations relatives sont également acceptés. Cette vérification empêche un lien BBCode de devenir une URL de script évidente, mais le résultat doit toujours respecter les règles de sécurité et de contenu de l’application qui l’intègre. Le convertisseur transforme une syntaxe ; il ne remplace ni un assainisseur HTML, ni des permissions, ni la modération.
Intégrez le résultat à un flux éditorial
Envoyez une valeur <code>text</code>, puis lisez le balisage converti dans le champ <code>html</code> renvoyé. Cette forme simple convient aux scripts de migration, aux exportations de forums, aux chaînes de traitement des commentaires, aux imports de bases de connaissances et aux jeux de test. Avant de convertir une archive volumineuse, examinez des enregistrements de la plateforme source, car les dialectes BBCode diffèrent : certains utilisent des arguments de listes numérotées, des attributions particulières de citations ou des balises multimédias propriétaires volontairement exclues de cette capacité. Conservez le BBCode original avec le résultat jusqu’à la validation de la migration afin d’ajuster le prétraitement sans perdre d’informations. Dans un éditeur interactif, affichez l’erreur de balise déséquilibrée près du contenu au lieu d’abandonner sa mise en forme. Pour un import par lots, consignez l’élément en échec et poursuivez selon votre politique. La conversion par l’API coûte $0.002 par élément. Sans réseau, horloge, hasard ni service externe, une même entrée acceptée produit un HTML identique octet par octet à chaque exécution.
Cas d’usage
Migrer des messages de forum
Convertissez la mise en forme compatible des messages exportés avant leur importation dans un système éditorial fondé sur HTML.
Prévisualiser d’anciens commentaires
Produisez un aperçu HTML prévisible de commentaires stockés en BBCode courant et signalez à l’éditeur toute imbrication incorrecte.
Normaliser une base de connaissances
Transformez le gras, les liens, les citations et les listes en un sous-ensemble HTML cohérent pendant une migration documentaire.
Questions fréquentes
Quelles balises BBCode sont prises en charge ?
Les balises acceptées sont b, i, u, url, quote et list. Les éléments de liste utilisent [*]. Les autres balises restent du texte échappé.
Que se passe-t-il si les balises sont déséquilibrées ?
La requête échoue avec une erreur d’entrée non valide qui désigne la balise déséquilibrée ou incorrectement imbriquée.
Puis-je fournir un libellé pour un lien ?
Oui. Utilisez [url=https://example.com]libellé[/url]. Vous pouvez aussi placer la destination entre [url] et [/url].
La conversion neutralise-t-elle tous les risques HTML ?
Non. Le texte et les attributs sont échappés et les schémas URL explicites dangereux sont refusés, mais l’application doit appliquer sa propre politique de sécurité et son assainisseur si nécessaire.
Combien coûte une conversion ?
Chaque requête à l’API coûte $0.002 par élément.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/text/bbcode-to-html \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"[b]Important[/b]: visit [url=https://example.com]our site[/url]."}'const res = await fetch("https://api.kit.forhosting.com/text/bbcode-to-html", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "[b]Important[/b]: visit [url=https://example.com]our site[/url]."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/bbcode-to-html",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "[b]Important[/b]: visit [url=https://example.com]our site[/url]."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/bbcode-to-html", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"[b]Important[/b]: visit [url=https://example.com]our site[/url]."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"[b]Important[/b]: visit [url=https://example.com]our site[/url]."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/bbcode-to-html", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "[b]Important[/b]: visit [url=https://example.com]our site[/url]."
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.bbcode_to_html",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_chars | 200000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |