Zum Beispiel könnte ein Beitrag lauten: **hier Text in Fettschrift** und etwas anderes hier
Nach dem Import zeigt Discourse ihn wortwörtlich so an, ohne die ** Markdown-Syntax zu verwenden, um den Teil „hier Text in Fettschrift“ fett zu formatieren. Und seltsamerweise ignoriert es auch jede Formatierung, wenn ich versuche, einen solchen Beitrag über die normale Discourse-GUI zu bearbeiten.
Das Importskript verwendet: cook_method: Post.cook_methods[:raw_html],
Ich habe auch versucht: cook_method: Post.cook_methods[:regular],
ohne sichtbare Änderung.
Wie kann ich Discourse dazu bringen, Markdown beim Importieren von Daten zu erkennen?
Ich würde einen neuen Beitrag erstellen, in den ich den gleichen Markdown-Inhalt wie einen der nicht formatierten Beiträge einfügen würde.
Ich würde erwarten, dass der neue Beitrag von Discourse richtig formatiert wird.
Dann würde ich das Feld raw beider Beiträge vergleichen; entweder mit dem Daten-Explorer oder der Rails-Konsole.
Wenn einer formatiert ist, wenn er gekocht ist, und der andere nicht, wenn Sie HTML wiederherstellen (was den Beitrag neu backt), sollte es einen Unterschied in ihrem Rohformat geben.
Ich habe einen der beanstandeten Beiträge genommen, in den Bearbeitungsmodus gewechselt, den Inhalt kopiert und einen neuen Beitrag daraus erstellt. Der neue Beitrag verwendet die Markdown-Formatierung. Ich sehe Fettdruck und einen Link mit einem Titel.
In der Datenbank ist ihr raw identisch, aber ihr cooked nicht.
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
Wenn Sie auf "HTML neu generieren" für die schlecht formatierten Beiträge klicken, ändert sich nichts.
/logs/ zeigt zu diesem Zeitpunkt nichts an (nur ältere Warnungen und Fehler).
Wenn ich es bearbeite, sieht die Vorschau korrekt aus, die Markdown-Formatierung wird dort angewendet (z. B. „foo“). Sobald ich speichere, zeigt der Beitrag immer noch die Formatierungszeichen an (z. B. „**foo**“).
/var/www/discourse$ bundle exec rails c
Produktionsumgebung wird geladen (Rails 7.0.7)
irb(main):001:0> Post.update_all(cook_method: Post.cook_methods[:regular])
=> 13809
irb(main):002:0>
Fertig! Leider keine Änderung.
Aber ich habe es gelöst. Und es tut mir leid, dass ich nicht erwähnt habe, welche Plugins ich installiert hatte, da diese stören können…
Ich habe das Topic Ratings Plugin installiert und für die Kategorie aktiviert, in die meine Importe gehen.
Aus einer Laune heraus habe ich das Plugin deaktiviert und versucht, einen “kaputten” Beitrag erneut zu bearbeiten. Jetzt, nach dem Speichern, wurde die Markdown-Formatierung für das schicke Rendering verwendet. Ich habe das Plugin wieder aktiviert und es erneut mit Erfolg versucht. Ich habe neue Beiträge importiert und es rendert die Beiträge jetzt auch korrekt (mit cook_method: Post.cook_methods[:regular]).
Ich habe keine Ahnung, was dort vor sich ging/geht, aber es scheint behoben worden zu sein, indem das Topic Ratings Plugin wieder aus- und wieder eingeschaltet wurde.
Vielen Dank an alle für die großartigen Vorschläge und die Fehlersuche!