Sto lavorando su un plugin markdown e ho difficoltà ad aggiungere un’impostazione del sito per disabilitare la funzionalità. Ho scritto il plugin seguendo la struttura di Discourse Footnote, che include un’impostazione per disabilitare quel plugin. Ho installato il plugin footnote e verificato che può essere disabilitato dall’interfaccia utente e che il relativo test passa. Tuttavia, disabilitare il mio plugin dalle impostazioni del sito non ha alcun effetto, e il test unitario lo conferma fallendo.
Non sono sicuro di cosa stia facendo diversamente rispetto al plugin footnote. È possibile che il mio utilizzo di opts.features sia completamente errato o basato su presupposti sbagliati, perché quasi ovunque ho semplicemente sostituito “footnotes” con “ruby”. Qualsiasi aiuto sarebbe apprezzato.
Il repository è qui: GitHub - seanblue/discourse-ruby: Adds ruby markdown support to Discourse · GitHub
Gli aspetti chiave relativi all’impostazione del sito includono:
E questo è il test che continua a fallire (non ancora nel repository):
it "può essere disabilitato" do
SiteSetting.enable_markdown_ruby = false
markdown = <<~MD
Ecco un po' di testo: {漢字|かん|じ}.
MD
html = <<~HTML
<p>Ecco un po' di testo: {漢字|かん|じ}.</p>
HTML
cooked = PrettyText.cook markdown.strip
expect(cooked).to eq(html.strip)
end
Non sorprende che l’errore indichi che il testo elaborato viene restituito come se il markdown fosse ancora attivo.
atteso: "<p>Ecco un po' di testo: {漢字|かん|じ}.</p>"
ottenuto: "<p>Ecco un po' di testo: <ruby>漢<rt>かん</rt>字<rt>じ</rt></ruby>.</p>"