Esiste un modo per convertire contenuto cotto di nuovo in Markdown?

MODIFICA: errore nel mio post originale. Intendevo fare riferimento al campo cooked, non al campo raw (CORRETTO).

Recentemente ho acquisito alcuni dati JSON da un forum di discourse, dove i dati dei post sono in forma “cooked”. Mi stavo chiedendo se ci fosse un modo per riconvertirli in Markdown? Sono nuovo a Discourse e ho cercato ma non riesco a trovare un modo per farlo. Dato che i dati “cooked” sembrano essere utilizzati per creare l’HTML, immagino che un percorso alternativo sarebbe utilizzare la funzione che converte “cooked” in HTML, quindi convertire l’HTML in Markdown.

Qualsiasi aiuto è molto apprezzato.

Grazie.

1 Mi Piace

ci sono molte opzioni su Google ma la mia prima scelta per queste cose è di solito pandoc https://stackoverflow.com/questions/16248986/how-to-convert-html-to-markdown-while-retaining-non-markdown-html-tags

1 Mi Piace

Prova questo. Semplice

Ho già i dati, non posso prenderli di nuovo. Erano da un forum che è stato rimosso, sto cercando di ripulire i dati in modo che possano essere ripristinati.

Che formato hanno esattamente i dati “grezzi”?

Markdown!

Se per “raw” intendi un campo chiamato raw, allora stai guardando il sorgente Markdown effettivo che memorizziamo. Come esempio, questo è l’endpoint JSON per il tuo ultimo post appena scritto.

Il campo raw lì è il testo effettivo che hai composto nell’editor Markdown, e lo memorizziamo così com’è, quindi non potrebbe essere più puro di così.

Invece, se intendi generalmente “l’HTML grezzo” così come viene estratto senza utilizzare endpoint JSON, allora puoi convertire quell’HTML in Markdown esternamente con pandoc, come suggerito sopra, o con qualsiasi altro software.

3 Mi Piace

Mi scuso, ho commesso un errore nel mio primo post (già corretto). Intendevo riferirmi ai dati elaborati (cooked) anziché ai dati grezzi (raw) (è stata una lunga giornata…).

In che forma si trovano i dati elaborati ed è possibile convertirli in Markdown o HTML? Grazie.

Ho commesso un errore nel mio primo post, ora corretto. Mi scuso.

1 Mi Piace

Ah, questo ha più senso. Il campo cooked è l’HTML renderizzato da Markdown.

Puoi semplicemente eseguirlo tramite pandoc per ottenere Markdown; non otterrai la piena fedeltà al raw corrispondente perché ci sono alcuni tag Markdown non standard come [quote] che vengono renderizzati in determinati pattern HTML, ma se hai semplicemente bisogno del contenuto come Markdown, pandoc dovrebbe funzionare abbastanza bene.

3 Mi Piace

Grazie mille. Mi occuperò subito di questo.

Presumo che i dati del post (contenuto) siano effettivamente archiviati nel database come Markdown?

Entrambi, ecco un esempio:

 #<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 Mi Piace