我正在开发一个 Markdown 插件,但在添加一个站点设置以允许禁用该功能时遇到了问题。我是按照 Discourse Footnote 的结构编写插件的,该插件包含一个允许禁用的设置。我安装了脚注插件,并验证了它可以从 UI 中禁用,且其对应的测试通过。然而,从站点设置禁用我的插件没有任何效果,单元测试也证实了这一点(测试失败)。
我不确定与脚注插件相比,我哪里做得不同。也许我对 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
不出所料,失败信息显示它生成的 HTML 文本仍然应用了 Markdown 转换。
expected: "<p>Here is some text: {漢字|かん|じ}.</p>"
got: "<p>Here is some text: <ruby>漢<rt>かん</rt>字<rt>じ</rt></ruby>.</p>"