Problema de MyCode con base de datos MyBB importada

Estoy en proceso de migrar un foro de MyBB a Discourse.
Veo que, con las publicaciones importadas, muchas (pero no todas) contienen etiquetas de formato MyCode visibles.

Ejemplo (también hay problemas aparentes de codificación de caracteres UTF-8, que es objeto de otro hilo):

TTTThao Nguyen

Jul '18

Gracias, Paul. No estoy seguro de que esto funcione según su respuesta a continuación:

[color=#222222][size=medium][size=small][font=Calibri, sans-serif]No se trata de si las escaleras se consideran o no un edificio; mi consulta no tiene nada que ver con descartar eso, sino más bien con la naturaleza de la unión entre los dos edificios para determinar si es uno solo o dos.[/font][/size][/size][/color]
[color=#222222][size=medium][size=small][font=Calibri, sans-serif] [/font][/size][/size][/color][color=#222222][size=small][font=Calibri, sans-serif]No hay conexión ni acceso interno entre los dos edificios, por lo que no se interpreta como un único edificio/célula contra incendios.[/font][/size][/color]
[color=#222222][size=medium][size=small][font=Calibri, sans-serif] [/font][/size][/size][/color][color=#222222][size=small][font=Calibri, sans-serif]Por lo tanto, aplica C/AS1 5.1.2[/font][/size][/color]

Así que el “acceso interno” es el factor decisivo… aunque estoy bastante seguro de haber visto muchos garajes, etc., unidos a la casa sin acceso interno que no requieren clasificación contra incendios. (Por cierto, tenemos un ingeniero de incendios en este trabajo, pero ni siquiera parece hacer caso a lo que dice él tampoco). ¡Quizás también necesite contratar a un buen ingeniero de incendios! :slight_smile:

De todos modos, gracias por sugerirme que publicara en este foro. Agradezco mucho los consejos y el apoyo.

¿Cómo se pueden analizar estos elementos para que, en la medida de lo posible, aparezca en Discourse el formato pretendido (que parece correcto en MyBB) en lugar de las etiquetas de formato?

Supongo que el problema es, al menos en parte, que Discourse no admite texto con fuente, tamaño y color seleccionados por el usuario.

[color=#222222][size=medium][size=small][font=Calibri, sans-serif]

o lo que supongo que son saltos de línea forzados:

[hr]

A mí personalmente no me importa que Discourse no admita múltiples fuentes, etc., pero sería bueno que hubiera una manera de filtrar de forma limpia cualquier etiqueta de formato inutilizable durante la importación.

Instalé GitHub - discourse/discourse-bbcode: vBulletin BBCode plugin · GitHub con la esperanza de que ayudara, pero parece que este plugin ya no funciona con la versión actual de Discourse.

De manera similar, cuando una etiqueta MyCode hace referencia a una imagen adjunta (que estaba en línea con el texto en el original de MyBB), ¿cómo se puede hacer que esta imagen adjunta aparezca en línea con el texto, en lugar de que aparezca la etiqueta?

Puedes echar un vistazo al importador de vBulletin, que realiza una serie de reemplazos de estas etiquetas. También existe un complemento de bbcode que soportará muchas de ellas.

Con las citas, debes asegurarte de que haya saltos de línea antes de la etiqueta de apertura y después de la etiqueta de cierre.

Tuve el mismo problema al importar un foro de PhpBB muy antiguo (2002) y agregué varias expresiones regulares al importador para eliminar (o quizás reemplazar en algunos casos) estas etiquetas BBCode. Al final funcionó bastante bien.

También tuve el problema de [quotes] cuando tuve que “moverlos” a su propia línea para que se mostraran correctamente con Markdown.

Encontré esto en algunos registros personales; creo que es lo que logré para este problema en particular:

text.gsub!(/(\[\/?quote.*?\])/mi) { |q| "\n#{q}\n" }

Por lo que escribí en ese momento, funcionó para todas las citas en 150.000 mensajes, excepto… 57 citas por razones desconocidas, y una cantidad tan pequeña de citas fallidas realmente no importaba. Incluso pude corregirlas manualmente.

El importador de vBulletin incluye varias sustituciones para distintas versiones de citas. Incluso una que obtiene el número del post para una referencia adecuada.