Convertir BBCode a HTML
Este conversor de BBCode a HTML transforma un conjunto práctico de etiquetas de formato propias de foros en HTML predecible.
Ejecutar — gratis
Pegue texto con negrita, cursiva, subrayado, URL, citas o listas y obtenga una cadena HTML preparada para un uso controlado en una página o un flujo editorial. Las etiquetas reconocidas pueden anidarse, los caracteres HTML corrientes se escapan y los anidamientos incorrectos se notifican en lugar de producir código roto silenciosamente. La conversión es determinista, no necesita acceso a la red y siempre devuelve el mismo resultado para una misma entrada.
Convierta las etiquetas BBCode compatibles
El conversor reconoce seis familias habituales de BBCode: <code>[b]</code>, <code>[i]</code>, <code>[u]</code>, <code>[url]</code>, <code>[quote]</code> y <code>[list]</code>. La negrita se convierte en <code><strong></code>, la cursiva en <code><em></code>, el subrayado en <code><u></code>, las citas en <code><blockquote></code> y las listas en listas HTML sin ordenar con sus elementos. Un enlace puede escribirse como <code>[url=https://example.com]etiqueta[/url]</code> o como <code>[url]https://example.com[/url]</code>. Cada elemento de lista comienza con <code>[*]</code> dentro de una lista. Es posible anidar etiquetas si se cierran en orden inverso al de apertura; por ejemplo, una negrita puede contener cursiva. Las etiquetas ajenas al conjunto admitido se conservan como texto escapado, no se interpretan como HTML. Este contrato limitado facilita comprender el resultado y evita simular compatibilidad con extensiones incompatibles de distintas plataformas. Si el origen usa colores, tamaños, imágenes, tablas o contenido multimedia personalizados, trátelos por separado con reglas específicas para dicho origen.
Comprenda la validación y la salida segura
El BBCode reconocido debe estar equilibrado desde el punto de vista estructural. Cada etiqueta de apertura necesita su cierre correspondiente, las etiquetas anidadas deben cerrarse en orden inverso al de apertura y los marcadores de elementos deben aparecer directamente dentro de una lista. Una secuencia incorrecta devuelve un error de entrada no válida en vez de un documento parcial. Esto resulta importante en la publicación automatizada, porque reparar el código en silencio puede desplazar énfasis, enlaces o citas más allá de los límites previstos por quien redactó el contenido. Durante el renderizado se escapa el texto sin formato, incluidos los signos angulares y los ampersands, y los destinos de los enlaces se escapan para usarlos como atributos. Los esquemas URL explícitos se limitan a HTTP, HTTPS y mailto; también se admiten fragmentos y destinos relativos. Esta comprobación evita enlaces de script evidentes, pero la salida debe seguir las políticas de seguridad y contenido de la aplicación que la inserte. El conversor transforma sintaxis; no sustituye un sanitizador HTML, un sistema de permisos ni la moderación.
Use el resultado en un flujo editorial
Envíe un valor <code>text</code> y lea el código convertido en el campo <code>html</code> de la respuesta. Esta forma sencilla funciona bien en scripts de migración, exportaciones de foros, canalizaciones de comentarios, importaciones de bases de conocimiento y datos de prueba. Antes de convertir un archivo grande, examine registros reales de la plataforma de origen, ya que los dialectos BBCode difieren: algunos emplean argumentos para listas numeradas, atribuciones especiales en citas o etiquetas multimedia propietarias que quedan deliberadamente fuera de esta capacidad. Conserve el BBCode original junto al resultado hasta revisar la migración; así podrá ajustar el preprocesamiento sin perder información. En un editor interactivo, muestre el error de etiqueta desequilibrada cerca del contenido en vez de descartar su formato. En una importación por lotes, registre el elemento fallido y continúe según su propia política. Cada conversión mediante la API cuesta $0.002 por elemento. Como no intervienen red, reloj, aleatoriedad ni servicios externos, una entrada aceptada produce HTML equivalente byte por byte en todas las ejecuciones.
Qué puede hacer con ella
Migrar mensajes de foros
Convierta el formato compatible de mensajes exportados antes de importar el contenido en un sistema editorial basado en HTML.
Previsualizar comentarios antiguos
Genere una vista HTML predecible de comentarios guardados con BBCode habitual y notifique al editor cualquier anidamiento incorrecto.
Normalizar una base de conocimiento
Transforme negritas, enlaces, citas y listas en un subconjunto HTML coherente durante una migración documental.
Preguntas frecuentes
¿Qué etiquetas BBCode son compatibles?
Se admiten b, i, u, url, quote y list. Los elementos de lista usan [*]. Las demás etiquetas permanecen como texto escapado.
¿Qué ocurre si las etiquetas están desequilibradas?
La solicitud falla con un error de entrada no válida que identifica la etiqueta desequilibrada o anidada de forma incorrecta.
¿Puedo indicar un texto para un enlace?
Sí. Use [url=https://example.com]etiqueta[/url]. También puede colocar el destino entre [url] y [/url].
¿Elimina todos los posibles riesgos de HTML?
No. Se escapan texto y atributos y se rechazan esquemas URL explícitos peligrosos, pero la aplicación debe aplicar su propia política de seguridad y su sanitizador cuando corresponda.
¿Cuánto cuesta una conversión?
Cada solicitud a la API cuesta $0.002 por elemento.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su 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)Ejemplo de solicitud
{
"text": "[b]Important[/b]: visit [url=https://example.com]our site[/url]."
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.bbcode_to_html",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_chars | 200000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |