Importazione post con Markdown

Ho riscritto un po’ discourse/script/import_scripts/json_generic.rb at main · discourse/discourse · GitHub per i miei dati. Funziona bene ma non riesco a capire come far usare a Discourse il Markdown nei post importati.

Ad esempio, un post potrebbe essere
**testo qui in grassetto** e qualcos'altro qui
Dopo l’importazione, Discourse lo mostra così com’è, senza usare la sintassi Markdown ** per mettere in grassetto la parte “testo qui in grassetto”. E stranamente, anche se provo a modificare un post del genere usando la normale interfaccia grafica di Discourse, ignorerà qualsiasi formattazione.

Lo script di importazione utilizza
cook_method: Post.cook_methods[:raw_html],
Ho anche provato
cook_method: Post.cook_methods[:regular],
senza alcun cambiamento visibile.

Come posso far riconoscere a Discourse il Markdown durante l’importazione dei dati?

1 Mi Piace

Anche se aggiungi testo formattato alla fine del post, questo testo non verrà formattato?

Rebuild HTML fa qualcosa?

1 Mi Piace

Sì, è super strano. L’anteprima sembra corretta ma se salvo la modifica, viene mostrato il post non formattato.

Rebuild HTML non lo risolve.

Come appare il raw nel database, puoi controllarlo con data explorer? O eseguirlo nella console rails.

Puoi assicurarti che il job di rebaking venga eseguito in Sidekiq quando attivi Rebuild HTML?

O esegui il rebake con la console rails per vedere se ci sono errori?

Questi sono solo suggerimenti casuali :person_shrugging: Sembra che il post non sia cotto.

1 Mi Piace

Grazie!

Usando SELECT raw=cooked FROM posts WHERE ... restituisce true per il post.

Non ho idea di cosa significhi o come posso verificarlo :smiley: Potresti darmi un suggerimento?

Ho eseguito bundle exec rake posts:rebake e il post è lo stesso di prima e si comporta allo stesso modo di prima durante la modifica.

Dimentica quello, non aiuterà comunque.

Creerei un nuovo post in cui incollerei lo stesso contenuto markdown di uno dei post non formattati.

Mi aspetterei che il nuovo post venga formattato correttamente da Discourse.

Quindi, confronterei il campo raw di entrambi i post; o con data explorer o con la console rails.

Se uno è formattato quando cotto, e l’altro no quando ricostruisci l’HTML (che rifà il post), ci dovrebbe essere una differenza nel loro raw. :thinking:

Cosa succede se modifichi il post? Ha l’aspetto che ti aspetti? Viene visualizzato correttamente se lo modifichi e lo salvi?

Ho preso uno dei post incriminati, sono entrato in modalità di modifica, ho copiato il contenuto e ho creato un nuovo post con esso. Il nuovo post utilizza la formattazione Markdown, vedo testo in grassetto e un link con un titolo.

Nel database il loro raw è identico ma il loro cooked non lo è.

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

Fare clic su “Rebuild HTML” sui post formattati in modo errato non apporta alcuna modifica.

/logs/ non mostra nulla in questo momento (solo vecchi avvisi ed errori).

Quando lo modifico, l’anteprima appare corretta, la formattazione Markdown viene applicata lì (ad es. “foo”). Una volta salvato, il post mostrerà ancora i caratteri di formattazione (ad es. “**foo**”)

Puoi provare a eseguire

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

nella console di Rails e poi “Rebuild HTML” di nuovo?

Nota che questo aggiornerà tutti i tuoi post per utilizzare il metodo di cottura regolare.

1 Mi Piace
/var/www/discourse$ bundle exec rails c
Caricamento dell'ambiente di produzione (Rails 7.0.7)
irb(main):001:0> Post.update_all(cook_method: Post.cook_methods[:regular])
=> 13809
irb(main):002:0>

Fatto! Purtroppo nessun cambiamento.


Ma ho risolto. E mi dispiace di non aver menzionato quali plugin avevo installato poiché possono interferire…

Ho installato e abilitato il Topic Ratings Plugin per la categoria in cui vanno le mie importazioni.

Per capriccio ho disabilitato il plugin e ho provato di nuovo a modificare un post “rotto”. Ora, al momento del salvataggio, la formattazione Markdown è stata utilizzata per il rendering avanzato. Ho riabilitato il plugin e ho riprovato con successo. Ho importato nuovi post e ora anche questi vengono renderizzati correttamente (utilizzando cook_method: Post.cook_methods[:regular]).

Non ho idea di cosa stesse succedendo lì, ma sembra che sia stato risolto disattivando e riattivando il Topic Ratings Plugin.\n\nGrazie a tutti per gli ottimi suggerimenti e la caccia al problema!

1 Mi Piace

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