TL;DR:
Sto cercando di aggiungere alcune cose al digest. Ero solito sovrascrivere il template, ma ora non posso farlo, per ragioni non chiare.
Poiché sovrascrivere i template è sbagliato, ci sono alcuni punti nel digest che vengono sostituiti con digest_custom_html, ma inserisce il testo, quindi questi necessitano dell’aggiunta di .html_safe. Almeno uno è nel posto sbagliato (ha “above” nel nome, ma in realtà è sotto).
Penso di avere le competenze per un PR su questo, a meno che, essendo così semplice, non sia più facile che lo faccia qualcun altro.
La storia più lunga e dolorosa.
L’ho fatto qui: GitHub - pfaffman/discourse-add-to-summary: Add text to summary before and after title ma sembra che non funzioni più.
Penso che quello che voglio fare, senza modifiche al core, sia sovrascrivere il template digest.html.erb. Ero solito poterlo fare mettendo il file in app/views/user_notifications/digest.html.erb e quel file veniva elaborato invece di quello nel core. Ora sembra non funzionare più.
Ora, abbiamo del fantastico digest_custom_html come questo:
Il lettore attento noterà che gli argomenti popolari iniziano intorno alla riga 78, molto prima della riga 277. Non sono sicuro di quanto tempo ho perso pensando che non stesse succedendo nulla perché stavo guardando nel posto sbagliato. Ma divago.
Sono riuscito a farlo in plugin.rb dopo_initialize.
require_dependency "user_notifications"
module ::UserNotificationsHelperOverride
def digest_custom_html(position_key)
puts "sto facendo un miglioramento del digest: #{position_key}"
if position_key == "below_popular_topics"
puts "sto facendo l'html personalizzato per la posizione above_popular_topics"
# HTML personalizzato per la posizione degli argomenti popolari
"<div class='custom-popular-topics'>IL MIO TESTO FANTASTICO</div>"
else
puts "sto facendo il super per #{position_key}"
super
end
end
end
Ed effettivamente aggiunge testo nel punto in cui mi aspetterei che venisse modificato nel template!
Ahimè, non viene trattato come HTML, ma come testo. Quindi. . . .
Ho guardato in all_the_plugins e non ho trovato esempi di nessuno che usasse questo codice.
Sarebbe un PR-welcome se cambiassi le righe come
<%= digest_custom_html("below_popular_topics") %>
e le sostituissi con
<%= digest_custom_html("below_popular_topics").html_safe %>
E, già che ci sono, forse assicurarmi che i nomi delle position_key siano più simili alla loro posizione?