¿Hay alguna forma de convertir contenido cocinado de vuelta a Markdown?

EDITAR: error en mi publicación original. Quise referirme al campo cooked, no al campo raw (CORREGIDO).

Recientemente adquirí algunos datos JSON de un foro de Discourse, donde los datos de las publicaciones están en formato “cooked”. Me preguntaba si hay alguna manera de convertir esto de nuevo a Markdown. Soy nuevo en Discourse y he buscado, pero no encuentro una manera de hacerlo. Dado que los datos “cooked” parecen usarse para crear el HTML, supongo que una ruta alternativa sería usar la función que convierte “cooked” a HTML y luego convertir el HTML a Markdown.

Cualquier ayuda será muy apreciada.

Gracias.

1 me gusta

hay muchas opciones en Google, pero mi primera opción para estas cosas suele ser pandoc https://stackoverflow.com/questions/16248986/how-to-convert-html-to-markdown-while-retaining-non-markdown-html-tags

1 me gusta

Pruébalo. Simple

Ya tengo los datos, no puedo volver a cogerlos. Eran de un foro que fue desmantelado, estoy intentando limpiar los datos para que puedan ser revividos.

¿En qué formato están exactamente los datos “en bruto”?

¡Markdown!

Si por “raw” te refieres a un campo llamado raw, entonces estás viendo el código fuente real de Markdown que almacenamos. Como ejemplo, este es el endpoint JSON para tu última publicación ahora mismo.

El campo raw allí es el texto real que compusiste en el editor de Markdown, y lo almacenamos tal cual, así que no puede ser más puro que eso.

En cambio, si generalmente te refieres al “HTML sin procesar” tal como se extrae sin usar endpoints JSON, entonces puedes convertir ese HTML a Markdown externamente con pandoc, como se sugirió anteriormente, o cualquier otro software.

3 Me gusta

Por favor, acepte mis disculpas, cometí un error en mi primera publicación (ya corregido). Quise referirme a los datos cocinados en lugar de los datos en bruto (ha sido un día largo…).

¿En qué formato están los datos cocinados y hay alguna forma de convertirlos a Markdown o HTML? Gracias.

Cometí un error en mi primera publicación, ya corregido. Mis disculpas.

1 me gusta

Ah, eso tiene más sentido. El campo cooked es el HTML renderizado desde Markdown.

Puedes simplemente ejecutar eso a través de pandoc para obtener Markdown; no obtendrás una fidelidad completa con el raw correspondiente porque hay algunas etiquetas Markdown no estándar como [quote] que se renderizan a ciertos patrones HTML, pero si simplemente necesitas el contenido como Markdown, pandoc debería funcionar lo suficientemente bien.

3 Me gusta

Muchas gracias. Me pondré con ello ahora mismo.

¿Supongo que los datos de la publicación (contenido) se almacenan realmente en la base de datos como Markdown?

Ambos, aquí tienes un ejemplo:

 #<Post:0x00007fbb78416f50
 id: 2203,
 user_id: -4,
 topic_id: 590,
 post_number: 6,
 raw: "\"@merefield, it looks like @eloy has mentioned that their favourite colour is red!\"",
 cooked:
  "<p><a class=\"mention\" href=\"/u/merefield\">@merefield</a>, it looks like <a class=\"mention\" href=\"/u/eloy\">@eloy</a> has mentioned that their favourite colour is red!</p>",
 created_at: Sun, 18 Aug 2024 11:15:32.487912000 UTC +00:00,
 updated_at: Sun, 18 Aug 2024 11:15:32.487912000 UTC +00:00,
2 Me gusta