Existe uma maneira de converter conteúdo cozido de volta para Markdown?

EDIT: Erro na minha postagem original. Eu quis me referir ao campo cooked, não ao campo raw (CORRIGIDO).

Recentemente adquiri alguns dados JSON de um fórum Discourse, onde os dados da postagem estão na forma “cooked”. Eu estava me perguntando se haveria alguma maneira de converter isso de volta para Markdown? Sou novo no Discourse e procurei, mas não encontrei uma maneira de fazer isso. Visto que os dados “cooked” parecem ser usados para criar o HTML, imagino que uma rota alternativa seria usar a função que converte “cooked” para HTML e, em seguida, converter o HTML para Markdown.

Qualquer ajuda é muito apreciada.

Obrigado.

1 curtida

há muitas opções no Google, mas minha primeira escolha para essas coisas é geralmente o pandoc https://stackoverflow.com/questions/16248986/how-to-convert-html-to-markdown-while-retaining-non-markdown-html-tags

1 curtida

Tente isto. Simples

Eu já tenho os dados, não posso pegá-los novamente. Eram de um fórum que foi desativado, estou tentando limpar os dados para que possam ser revividos.

Qual é exatamente o formato dos dados “brutos”?

Markdown!

Se por “raw” você quer dizer um campo chamado raw, então você está olhando para o código-fonte Markdown real que armazenamos. Como exemplo, este é o endpoint JSON para sua última postagem agora mesmo.

O campo raw lá é o texto real que você compôs no editor Markdown, e nós o armazenamos como está, então não há nada mais puro do que isso.

Em vez disso, se você geralmente quer dizer “o HTML bruto” como extraído sem usar endpoints JSON, então você pode transformar esse HTML em Markdown externamente com pandoc, como sugerido acima, ou qualquer outro software.

3 curtidas

Peço desculpas, cometi um erro na minha primeira postagem (já corrigido). Eu quis me referir aos dados processados em oposição aos dados brutos (foi um longo dia…).

Em que formato estão os dados processados e há alguma maneira de convertê-los para Markdown ou HTML? Obrigado.

Cometi um erro na minha primeira postagem, já corrigido. Peço desculpas.

1 curtida

Ah, isso faz mais sentido. O campo cooked é o HTML renderizado a partir do Markdown.

Você pode simplesmente executar isso através do pandoc para obter o Markdown; você não terá fidelidade total ao raw correspondente porque existem algumas tags Markdown não padrão como [quote] que são renderizadas para certos padrões HTML, mas se você simplesmente precisa do conteúdo como Markdown, o pandoc deve funcionar bem o suficiente.

3 curtidas

Muito obrigado. Vou tratar disso agora.

Presumo que os dados da postagem (conteúdo) sejam realmente armazenados no banco de dados como Markdown?

Ambos, aqui está um exemplo:

 #<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 curtidas