Ich arbeite an einem Markdown-Plugin und habe Schwierigkeiten, eine Site-Einstellung hinzuzufügen, um die Funktion zu deaktivieren. Ich habe das Plugin erstellt, indem ich mich an der Struktur von Discourse Footnote orientiert habe, die eine Einstellung enthält, mit der sich das Plugin deaktivieren lässt. Ich habe das Footnote-Plugin installiert und überprüft, dass es über die Benutzeroberfläche deaktiviert werden kann und dass der entsprechende Test besteht. Wenn ich mein Plugin jedoch über die Site-Einstellungen deaktiviere, hat dies keine Wirkung, was der Unit-Test durch sein Scheitern bestätigt.
Ich bin mir nicht sicher, was ich anders mache als beim Footnote-Plugin. Es ist möglich, dass meine Verwendung von opts.features völlig falsch ist oder auf falschen Annahmen beruht, da ich an fast allen anderen Stellen einfach „footnotes“ durch „ruby“ ersetzt habe. Jede Hilfe wäre willkommen.
Das Repository finden Sie hier: GitHub - seanblue/discourse-ruby: Adds ruby markdown support to Discourse · GitHub
Zu den wichtigsten Aspekten im Zusammenhang mit der Site-Einstellung gehören:
Und dies ist der Test, der weiterhin fehlschlägt (noch nicht im Repository):
it "can be disabled" do
SiteSetting.enable_markdown_ruby = false
markdown = <<~MD
Here is some text: {漢字|かん|じ}.
MD
html = <<~HTML
<p>Here is some text: {漢字|かん|じ}.</p>
HTML
cooked = PrettyText.cook markdown.strip
expect(cooked).to eq(html.strip)
end
Wie nicht anders zu erwarten, besagt der Fehler, dass der gekochte Text so zurückgegeben wird, als ob das Markdown noch angewendet würde.
expected: "<p>Here is some text: {漢字|かん|じ}.</p>"
got: "<p>Here is some text: <ruby>漢<rt>かん</rt>字<rt>じ</rt></ruby>.</p>"