Fma965
(Fma965)
9 Maggio 2022, 8:17pm
1
Ciao ragazzi,
Ho questo CSS specifico
body[class^="category-documentation"] {
.topic-list .topic-list-header .posts,
.topic-list .topic-list-header .views,
.topic-list .topic-list-body .posts,
.topic-list .topic-list-body .views,
.topic-list .topic-list-body .posters,
.topic-list .topic-list-header .posters
{
display: none !important;
}
.topic-list .topic-list-body .main-link,
.topic-list .topic-list-header .topic-list-data
{
width: 90% !important;
}
.topic-list .topic-list-header .activity, .full-width .contents .topic-list .topic-list-body .activity {
width: 10% !important;
}
.topic-list .topic-excerpt {
display: none !important;
}
}
Questo funziona benissimo per nascondere molti elementi in una categoria “documentazione” (sì, so che esiste un plugin per la documentazione, ma trovo il layout nativo migliore) il mio problema è che quando clicco da, ad esempio, “Ford” a “Documentazione”, il CSS non si aggiorna e quindi le mie cose non vengono nascoste a meno che non aggiorni l’intera pagina con F5 / Ctrl + R
C’è qualcosa che mi sfugge per permettere che questo funzioni?
Lo stesso vale anche al contrario
Puoi visitare qualsiasi categoria su https://community.cyanlabs.net e poi andare su documentazione e vedrai ancora gli elementi CSS nascosti mostrati.
1 Mi Piace
Sembra che tu stia usando il tema Air, che include il componente tema Discourse Loading Slider.
Se disabiliti quel componente da admin > customize > themes > components, e poi riprovi… cambia qualcosa? a volte quel componente può causare un problema in cui le classi persistono tra le pagine finché non aggiorni.
4 Mi Piace
Fma965
(Fma965)
9 Maggio 2022, 8:43pm
3
Grazie per la tua risposta,
Ho appena testato questo e sfortunatamente non ha fatto alcuna differenza in questo caso.
Se non c’è qualcosa di semplice, controllerò la classe del corpo in javascript usando api.onPageChange() ma sembra un po’ strano.
1 Mi Piace
Ah ok… dando un’occhiata più da vicino, sembra che ci sia una classe dinamica aggiunta da un tema al tag body, ad esempio category-documentation-21 e category-ford-5… durante le transizioni di pagina quelle classi non sembrano essere rimosse correttamente.
1 Mi Piace
Fma965
(Fma965)
9 Maggio 2022, 8:55pm
5
MODIFICA, ora capisco cosa intendi, per qualche motivo mantiene quella classe nell’elemento body
MODIFICA2: ho fatto una copia del tema senza componenti, lo stesso problema persiste, quindi deve essere in un plugin o nel core.
Il premio per la soluzione piĂą traballante va a me
<script type="text/discourse-plugin" version="0.8.19">
api.onPageChange((url) => {
if (url.indexOf("/c/documentation/") >= 0) {
$( "<style id='documentationworkaround'>.topic-list .topic-list-body .posters,.topic-list .topic-list-body .posts,.topic-list .topic-list-body .views,.topic-list .topic-list-header .posters,.topic-list .topic-list-header .posts,.topic-list .topic-list-header .views{display:none!important}.topic-list .topic-list-body .main-link,.topic-list .topic-list-header .topic-list-data{width:90%!important}.full-width .contents .topic-list .topic-list-body .activity,.topic-list .topic-list-header .activity{width:10%!important}.topic-list .topic-excerpt{display:none!important}</style>" ).appendTo( "head" )
} else {
$( "#documentationworkaround").remove();
}
});
</script>
Ma sì, se qualcuno sa cosa lo sta causando, per favore me lo faccia sapere
1 Mi Piace
Sembra un bug nel core, quindi lo sto riclassificando.
Per riprodurlo:
Visita una categoria come Support - Discourse Meta
Aggiorna la pagina
Passa a un’altra categoria
Dai un’occhiata alle classi sul tag del corpo, la categoria precedente rimane
Sembra essere aggiunto lato server, ho chiesto a un ingegnere di aiutarmi a risolvere il problema e piĂą specificamente sembra provenire da:
3 Mi Piace
Fma965
(Fma965)
10 Maggio 2022, 6:53pm
7
Grazie per l’aggiornamento, per ora il mio javascript improvvisato aggira il problema, come posso monitorare lo stato di questo bug?
Aggiorneremo questo argomento quando sarà risolto (o qualcos’altro di correlato). Se cambi il tuo livello di monitoraggio in “Segui” nel menu a discesa in fondo all’argomento, riceverai notifiche per i nuovi post.
Fma965
(Fma965)
10 Maggio 2022, 6:57pm
9
Perfetto, non sapevo se ci fosse un problema su GitHub o altro, sto già seguendo questo argomento quindi rimarrò aggiornato.
Grazie ancora per il tuo aiuto.
Questo dovrebbe essere risolto in questo commit, quindi la prossima volta che aggiornerai Discourse le classi delle categorie dovrebbero essere aggiunte/rimosse come previsto.
committed 05:18PM - 01 Jun 22 UTC
The server-side implementation had unintentionally changed to include `-{id}` at… the end of the body class name. This change meant that the JS client was unaware of the class, and didn't remove it when navigating away from the category page.
This commit fixes the server-side implementation to match the client
4 Mi Piace
Fma965
(Fma965)
2 Giugno 2022, 4:04pm
14
Grazie, le classi sono state aggiornate correttamente ora ma il css non viene ancora applicato quando si passa da una categoria all’altra
body[class^="category-documentation"] {
.topic-list .topic-excerpt, .topic-list .topic-list-body .posts, .topic-list .topic-list-header .posts {
display: none !important
}
}
spostati tra le categorie, non funzionerĂ correttamente.
1 Mi Piace
oh hmm, questo è inaspettato… è CSS aggiunto con JS?
Fma965
(Fma965)
2 Giugno 2022, 4:28pm
16
No, solo pianifica css nei file common o desktop.css, ho provato entrambi.
Ah ok, mi è appena venuto in mente… class^= controlla l’inizio della classe e la categoria non è sempre la prima classe nell’elenco.
Se aggiorni a body[class*="category-documentation"] dovrebbe funzionare, questo controlla il nome della classe ovunque appaia nell’elenco.
5 Mi Piace
Fma965
(Fma965)
18 Giugno 2022, 4:51pm
20
Questo + la correzione principale sembra funzionare. grazie
3 Mi Piace