Importieren von Beiträgen mit Markdown

Ich habe discourse/script/import_scripts/json_generic.rb at main · discourse/discourse · GitHub für meine eigenen Daten ein wenig umgeschrieben. Es funktioniert gut, aber ich kann nicht herausfinden, wie ich Discourse dazu bringen kann, Markdown in den importierten Beiträgen zu verwenden.

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?

1 „Gefällt mir“

Selbst wenn Sie am Ende des Beitrags formatierten Text hinzufügen, wird dieser Text nicht formatiert?

Tut Rebuild HTML etwas?

1 „Gefällt mir“

Ja, es ist super seltsam. Die Vorschau sieht richtig aus, aber wenn ich die Bearbeitung speichere, wird der nicht formatierte Beitrag angezeigt.

Rebuild HTML behebt das Problem nicht.

Wie sieht der Rohwert in der Datenbank aus? Können Sie ihn mit dem Data Explorer überprüfen? Oder geben Sie ihn in der Rails-Konsole aus.

Können Sie sicherstellen, dass der Rebaking-Job in Sidekiq ausgeführt wird, wenn Sie Rebuild HTML auslösen?

Oder rebaken Sie mit der Rails-Konsole, um zu sehen, ob es Fehler gibt?

Das sind nur zufällige Vorschläge :person_shrugging: Es sieht so aus, als ob der Beitrag nicht “gekocht” ist.

1 „Gefällt mir“

Danke!

Die Verwendung von SELECT raw=cooked FROM posts WHERE ... gibt true für den Beitrag zurück.

Ich habe keine Ahnung, was das bedeutet oder wie ich das überprüfen kann :smiley: Können Sie mir einen Hinweis geben?

Ich habe bundle exec rake posts:rebake ausgeführt und der Beitrag ist derselbe wie zuvor und verhält sich beim Bearbeiten genauso wie zuvor.

Vergessen Sie das, das wird doch nichts nützen.

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. :thinking:

Was passiert, wenn Sie den Beitrag bearbeiten? Sieht er so aus, wie Sie es erwarten? Wird er korrekt gerendert, wenn Sie ihn bearbeiten und speichern?

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**“).

Können Sie versuchen, Folgendes auszuführen

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

in der Rails-Konsole und dann erneut “HTML neu erstellen”?

Beachten Sie, dass dadurch alle Ihre Beiträge aktualisiert werden, um die reguläre Kochmethode zu verwenden.

1 „Gefällt mir“
/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!

1 „Gefällt mir“

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