Importación de publicaciones con Markdown

Reescribí discourse/script/import_scripts/json_generic.rb at main · discourse/discourse · GitHub un poco para mis propios datos. Funciona bien, pero no puedo averiguar cómo hacer que Discourse use Markdown en las publicaciones importadas.

Por ejemplo, una publicación podría ser
**algo de texto aquí en negrita** y algo más aquí
Después de importar, Discourse lo muestra literalmente así, sin usar la sintaxis Markdown ** para poner en negrita la parte “algo de texto aquí en negrita”. Y, extrañamente, incluso si intento editar una publicación de este tipo usando la GUI normal de Discourse, ignorará cualquier formato.

El script de importación utiliza
cook_method: Post.cook_methods[:raw_html],
También probé
cook_method: Post.cook_methods[:regular],
sin ningún cambio visible.

¿Cómo puedo hacer que Discourse reconozca Markdown al importar datos?

1 me gusta

¿Incluso si agregas texto con formato al final de la publicación, este texto no se formateará?

¿Reconstruir HTML hace algo?

1 me gusta

Sí, es súper raro. La vista previa se ve correcta pero si guardo la edición, se muestra la publicación sin formato.

Rebuild HTML no lo soluciona.

¿Cómo se ve el contenido sin procesar en la base de datos? ¿Puedes comprobarlo con el explorador de datos? O muéstralo en la consola de Rails.

¿Puedes asegurarte de que el trabajo de rebake se ejecute en Sidekiq cuando activas Rebuild HTML?

¿O haz un rebake con la consola de Rails para ver si hay algún error?

Son solo sugerencias aleatorias :person_shrugging: Parece que la publicación no está cocinada.

1 me gusta

¡Gracias!

Usar SELECT raw=cooked FROM posts WHERE ... devuelve true para la publicación.

No tengo idea de qué significa eso ni cómo puedo comprobarlo :smiley: ¿Podrías darme una indicación?

Ejecuté bundle exec rake posts:rebake y la publicación es la misma que antes y se comporta igual que antes al editar.

Olvida eso, después de todo no ayudará.

Crearía una nueva publicación en la que pegaría el mismo contenido markdown que una de las publicaciones sin formato.

Esperaría que la nueva publicación fuera formateada correctamente por Discourse.

Luego, compararía el campo raw de ambas publicaciones; ya sea con el explorador de datos o la consola de rails.

Si una está formateada cuando está cocinada, y la otra no cuando reconstruyes el HTML (lo que vuelve a hornear la publicación), debería haber una diferencia en su raw. :thinking:

¿Qué sucede si editas la publicación? ¿Se ve como esperas? ¿Se renderiza correctamente si editas y guardas?

Tomé una de las publicaciones problemáticas, entré en su modo de edición, copié el contenido y creé una nueva publicación con él. La nueva publicación utiliza el formato Markdown, veo texto en negrita y un enlace con un título.

En la base de datos, su raw es idéntico pero su cooked no lo es.

SELECT (SELECT raw FROM posts WHERE id = 13846) = (SELECT raw FROM posts WHERE id = 13735);t

SELECT (SELECT cooked FROM posts WHERE id = 13846) = (SELECT cooked FROM posts WHERE id = 13735);f

Hacer clic en “Reconstruir HTML” en las publicaciones mal formateadas no produce ningún cambio.

/logs/ no muestra nada en este momento (solo advertencias y errores anteriores).

Cuando lo edito, la vista previa se ve correcta, el formato Markdown se aplica allí (por ejemplo, “foo”). Una vez que guardo, la publicación todavía mostrará los caracteres de formato (por ejemplo, “**foo**”).

¿Puedes intentar ejecutar

Post.update_all(cook_method: Post.cook_methods[:regular])

en la consola de Rails y luego “Rebuild HTML” de nuevo?

Ten en cuenta que esto actualizará todas tus publicaciones para usar el método de cocción regular.

1 me gusta
/var/www/discourse$ bundle exec rails c
Cargando entorno de producción (Rails 7.0.7)
irb(main):001:0> Post.update_all(cook_method: Post.cook_methods[:regular])
=> 13809
irb(main):002:0>

¡Hecho! Lamentablemente no hubo cambios.


Pero lo resolví. Y lamento no haber mencionado qué plugins tenía instalados, ya que pueden interferir…

Tengo instalado el Plugin de Calificaciones de Temas y habilitado para la categoría en la que van mis importaciones.

Por un capricho, deshabilité el plugin e intenté editar una publicación “rota” nuevamente. Ahora, al guardar, el formato Markdown se utilizó para una representación elegante. Volví a habilitar el plugin e intenté nuevamente con éxito. Importé nuevas publicaciones y ahora también renderiza las publicaciones correctamente (usando cook_method: Post.cook_methods[:regular]).

No tengo idea de qué estaba pasando allí, pero parece que se solucionó al activar y desactivar el Plugin de Calificaciones de Temas de nuevo.

¡Muchas gracias a todos por las excelentes sugerencias y la búsqueda de problemas!

1 me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.