Par exemple, une publication pourrait être : **du texte ici en gras** et autre chose ici
Après l’importation, Discourse l’affiche telle quelle, sans utiliser la syntaxe Markdown ** pour mettre en gras la partie « du texte ici en gras ». Et, étrangement, même si j’essaie de modifier une telle publication en utilisant l’interface graphique normale de Discourse, elle ignorera toute mise en forme.
Le script d’importation utilise : cook_method: Post.cook_methods[:raw_html],
J’ai aussi essayé : cook_method: Post.cook_methods[:regular],
sans aucun changement visible.
Comment puis-je faire en sorte que Discourse reconnaisse Markdown lors de l’importation de données ?
Je créerais un nouveau post dans lequel je collerais le même contenu markdown que l’un des posts non formatés.
Je m’attendrais à ce que le nouveau post soit correctement formaté par Discourse.
Ensuite, je comparerais le champ raw des deux posts ; soit avec data explorer, soit avec la console rails.
Si l’un est formaté lorsqu’il est cuit, et l’autre ne l’est pas lorsque vous reconstruisez le HTML (ce qui refait le post), il devrait y avoir une différence dans leur raw.
Que se passe-t-il si vous modifiez la publication ? Est-ce que cela ressemble à ce que vous attendez ? Est-ce que cela s’affiche correctement si vous modifiez et enregistrez ?
J’ai pris l’un des messages incriminés, je suis passé en mode édition, j’ai copié le contenu et j’ai créé un nouveau message avec. Le nouveau message utilise le formatage Markdown, je vois du texte en gras et un lien avec un titre.
Dans la base de données, leur raw est identique mais leur cooked ne l’est pas.
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
Cliquer sur « Reconstruire le HTML » sur les messages mal formatés ne change rien.
/logs/ ne montre rien à ce moment-là (seulement d’anciens avertissements et erreurs).
Lorsque je le modifie, l’aperçu est correct, le formatage Markdown y est appliqué (par exemple, « foo »). Une fois que j’enregistre, le message affiche toujours les caractères de formatage (par exemple, « **foo** »).
/var/www/discourse$ bundle exec rails c
Loading production environment (Rails 7.0.7)
irb(main):001:0> Post.update_all(cook_method: Post.cook_methods[:regular])
=> 13809
irb(main):002:0>
Terminé ! Malheureusement, aucun changement.
Mais j’ai résolu le problème. Et je suis désolé de ne pas avoir mentionné les plugins que j’avais installés car ils peuvent interférer…
J’ai le Plugin Topic Ratings installé et activé pour la catégorie dans laquelle mes importations vont.
Sur un coup de tête, j’ai désactivé le plugin et j’ai de nouveau essayé de modifier un post “cassé”. Maintenant, lors de la sauvegarde, le formatage Markdown a été utilisé pour un rendu sophistiqué. J’ai réactivé le plugin et j’ai essayé à nouveau avec succès. J’ai importé de nouveaux posts et cela rend également les posts correctement maintenant (en utilisant cook_method: Post.cook_methods[:regular]).
Je n’ai aucune idée de ce qui se passe/s’est passé, mais cela semble avoir été résolu en activant et désactivant à nouveau le Plugin Topic Ratingsici.
Merci à tous pour vos excellentes suggestions et votre aide à la recherche de problèmes !