Sono consapevole che questi sono sempre visibili agli amministratori per impostazione predefinita. Ma supponiamo che non voglia vederli sul mio sito personale che sto costruendo su Discourse, nemmeno come amministratore.
Come potrei nascondere tutti questi argomenti in tutte le categorie?
Penso che proverei lâapproccio âtaggali tutti e silenzia il tagâ poichĂŠ sembra il minimo sforzo. (Ma rimuovili dallâelenco a beneficio di tutti gli altri)
Per curiositĂ , perchĂŠ vuoi nasconderli da te stesso?
Per curiositĂ , perchĂŠ vuoi nasconderli a te stesso?
Onestamente? Semplicemente non mi piace vederli. Se vado sul mio blog⌠voglio vedere solo il mio blog
Ho trovato una soluzione. Ovviamente non è una soluzione scalabile, e potrebbe anche non essere tecnicamente ottimale (non sono sicuro di come verrebbe gestita su siti piÚ grandi con molti caricamenti di pagine, ecc.), ma è una che funziona per me dato che ho solo una categoria per il mio blog:
ChatGPT me lâha fornito e ha funzionato al primo tentativo. Mirando solo a questo ID argomento molto specifico e nascondendolo:
<script>
document.addEventListener("DOMContentLoaded", function() {
var element = document.querySelector('[data-topic-id="10"]'); // sostituisci 10 con il tuo ID argomento
if (element) {
element.style.display = 'none';
}
});
</script>
Se sei curioso riguardo allâapproccio aziendale (perchĂŠ so di aver pubblicato/tu hai risposto a riguardo molto tempo fa), è semplicemente unâesperienza amministrativa incoerente avere un argomento di Discourse utilizzato come impostazione di categoria, mentre nessunâaltra impostazione di categoria è rappresentata come un argomento di Discourse. Ă molto disconnesso (anche se ancora molto intelligente!). Vedo anche questi argomenti âInformazioniâ rinominati, utilizzati come guide per iniziare (lo faccio anchâio, anche se solo perchĂŠ sono costretto a mantenerlo), ecc.
Capisco il perchĂŠ e il valore iniziale di utilizzare un argomento come luogo esistente per ospitare la descrizione dellâargomento. Vedo anche il potenziale nella stessa capacitĂ , come il testo del componente tema discourse-category-sidebars ospitato da un argomento.
Ma dal punto di vista dellâUX e amministrativo, mi aspetterei che tutte le mie impostazioni di categoria siano semplicemente in un unico posto. Discourse memorizza giĂ il testo come impostazione allâinterno della categoria, con markdown e tutto il resto, per il modello di categoria. Sarebbe fantastico vedere la coerenza portata alla categoria in questo modo.
Spero che questo dia un poâ piĂš di chiarezza!
EDIT: Se mi manca qualche valore che non ho ancora visto, indicamelo!
Peccato. Sembra che lo script che ho collegato sopra funzioni solo la prima volta che la pagina web viene caricata nel browser. Se navighi nel sito e torni indietro, quegli elementi ricompaiono. Con la mia limitata (leggi: assolutamente nulla) conoscenza dello sviluppo web, presumo sia perchÊ DOMContentLoaded non viene eseguito di nuovo dopo che il sito è stato caricato.
Penso che se stai cercando di nascondere solo un argomento, probabilmente puoi farlo con CSS. Il mio CSS è scarso, ma vedo lâID dellâargomento in lĂŹ, quindi è probabile che possa essere mirato?
Ah, câè un intoppo! Se lo riutilizzi, quello non apparirĂ in alcuni elenchi di argomenti o attiverĂ notifiche quando le persone rispondono, ecc. Penso che la cosa migliore da fare con loro, cosĂŹ come sono, sia semplicemente lasciarli come descrizioni di categoria e chiuderli (e non elencarli se non vuoi che siano visibili alla maggior parte delle persone). A parte le modifiche per sviluppatori, ovviamente, se riesci a farlo.
Memorizzare la descrizione della categoria negli argomenti è emerso come una discussione interna, cosÏ come il modo in cui gestiamo i ToS e le Linee guida, ecc. Non ci sono piani immediati per cambiare il formato, ma penso che ci sia sicuramente una conversazione da avere.
Questo è un aggiornamento che funziona perfettamente per il mio caso dâuso.
Se vuoi nascondere un particolare argomento tramite CSS, al caricamento della pagina e da quel momento in poi, questo lo farĂ . Basta aggiungere i tuoi ID argomento allâelenco degli ID argomento:
<script>
document.addEventListener("DOMContentLoaded", function() {
var topicIdsToHide = ["10", "20", "30"]; // Aggiungi qui i tuoi ID argomento
function hideElementsByDataTopicIds() {
topicIdsToHide.forEach(function(id) {
var element = document.querySelector('[data-topic-id="' + id + '"]');
if (element) {
element.style.display = 'none';
}
});
}
// Esegui la funzione inizialmente
hideElementsByDataTopicIds();
// Crea un osservatore di mutazioni per monitorare le modifiche al DOM
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
hideElementsByDataTopicIds();
});
});
// Osserva l'intero documento
observer.observe(document.body, { childList: true, subtree: true });
});
</script>