私は Markdown プラグインの開発を行っており、その機能を無効化するためのサイト設定を追加する際に問題が発生しています。私は Discourse Footnote の構造を参考にプラグインを作成しました。このプラグインには、機能を無効化できる設定が存在します。Footnote プラグインをインストールし、UI から無効化できることを確認し、対応するテストがパスすることを確認しました。しかし、私のプラグインをサイト設定から無効化しても何の影響もなく、ユニットテストが失敗することでこれが確認されています。
Footnote プラグインとの違いが何なのか分かりません。おそらく opts.features の使い方が完全に間違っていたり、誤った前提に基づいていたりするのでしょう。他の場所と同様に、単に「footnotes」を「ruby」に置き換えただけです。ご助力いただけますと幸いです。
リポジトリはこちらです:GitHub - seanblue/discourse-ruby: Adds ruby markdown support to Discourse · GitHub
サイト設定に関連する主要な部分は以下の通りです:
そして、これが失敗し続けているテストです(まだリポジトリには含まれていません):
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
予想通り、失敗メッセージは Markdown がまだ適用されたままの状態で調理されたテキストが返されていることを示しています。
expected: "<p>Here is some text: {漢字|かん|じ}.</p>"
got: "<p>Here is some text: <ruby>漢<rt>かん</rt>字<rt>じ</rt></ruby>.</p>"