Migliora la convenienza nell'impostazione della griglia automatica per meno di 3 immagini

Conteggio minimo configurabile per le griglie di immagini automatiche

Mi sono imbattuto in un limite della funzionalità delle griglie di immagini automatiche.

Al momento, il comportamento della griglia automatica sembra essere controllato dall’impostazione del sito per le immagini della griglia automatica, ma la soglia effettiva per cui il compositore inserisce [grid]...[/grid] è ancora fissa nel codice del frontend.

La logica rilevante del compositore utilizza attualmente un valore hardcoded:

const MIN_IMAGES_TO_AUTO_GRID = 3;

Quindi, per quanto posso capire, gli amministratori attualmente hanno una scelta tra:

Cosa possono fare gli amministratori ora Risultato
Abilitare le immagini della griglia automatica I caricamenti di 3 o più immagini consecutive vengono automaticamente racchiusi in [grid]...[/grid]
Disabilitare le immagini della griglia automatica Nessun avvolgimento automatico in griglia
Modificare la soglia da 3 a un altro numero Non attualmente disponibile come impostazione del sito

Il problema è che 3 non è necessariamente la soglia giusta per ogni community.

Per alcuni siti, le griglie automatiche sono utili, ma solo quando gli utenti caricano un batch più grande di immagini. Ad esempio, un amministratore potrebbe voler far partire la griglia automatica da 5, 6, 10 o un altro valore, invece di attivarsi non appena vengono caricate 3 immagini.

Questo sarebbe particolarmente utile per le community in cui gli utenti spesso caricano un piccolo numero di immagini in linea con testo esplicativo, ma le gallerie più grandi dovrebbero comunque essere compattate in una griglia.

Direzione proposta

Penso che si possa migliorare la situazione aggiungendo un’impostazione del sito configurabile per il numero minimo di caricamenti di immagini consecutive prima che il compositore inserisca automaticamente una griglia.

Qualcosa come:

auto_grid_images_minimum_count

Ad esempio:

Impostazione Valore di esempio
enable_auto_grid_images true
auto_grid_images_minimum_count 5

Poi la griglia automatica sarebbe comunque disponibile, ma si attiverebbe solo una volta raggiunta la soglia configurata.

Questo mantiene il comportamento esistente come predefinito se la nuova impostazione ha come valore predefinito 3, dando al contempo agli amministratori più controllo.

Ramo sperimentale / possibile anticipo

Ho creato un piccolo ramo sperimentale qui, nel caso qualcuno con più esperienza nello sviluppo di Discourse avesse tempo di forkarlo, ripulirlo o portare avanti l’idea:

ramo image-grid-num-setting

Il ramo non è inteso come una PR rifinita. È più un punto di partenza che mostra la direzione intesa:

  • aggiungere una nuova impostazione del sito per il conteggio minimo di immagini della griglia automatica
  • esporre tale impostazione al client
  • sostituire il controllo hardcoded MIN_IMAGES_TO_AUTO_GRID = 3 nel codice di caricamento del compositore con il valore configurato
  • aggiornare il testo dell’impostazione admin in modo che la dicitura esistente della griglia automatica non implichi più che la soglia sia sempre 3
  • aggiungere/aggiornare le specifiche frontend se necessario

Il tipo di modifica frontend che avevo in mente è approssimativamente:

const minImagesToAutoGrid = Number(
  this.siteSettings.auto_grid_images_minimum_count ?? 3
);

if (
  this.siteSettings.enable_auto_grid_images &&
  this.#consecutiveImages?.length >= minImagesToAutoGrid &&
  this.textManipulation
) {
  this.textManipulation.autoGridImages([...this.#consecutiveImages]);
  this.#consecutiveImages.length = 0;
}

C’è anche un recente esempio di un’impostazione del sito enum in stile Discourse nella PR #36014:

PR #36014 - FEATURE: aggiunge l’impostazione calendar_upcoming_events_default_view

Quella PR è per il plugin Calendario ed Eventi piuttosto che per le griglie di immagini direttamente, quindi non sto suggerendo che influisca su questa funzionalità. La menziono perché sembra mostrare un modello di implementazione utile per questo tipo di impostazione del sito configurabile: definire l’impostazione, esporla al client e poi leggerla dal frontend tramite siteSettings.

Link correlati

Discussione originale sulla disattivazione delle immagini della griglia automatica:

Disattivare le immagini della griglia automatica?

Annuncio delle griglie di immagini automatiche:

Applicare automaticamente le griglie ai caricamenti di immagini

Esempio di PR che mostra l’architettura delle impostazioni del sito:

PR #36014 - FEATURE: aggiunge l’impostazione calendar_upcoming_events_default_view

Il mio ramo sperimentale:

ramo image-grid-num-setting

2 Mi Piace

Potresti condividere qualche dettaglio in più sulla tua esperienza in particolare?

Quali impostazioni utilizzeresti e perché?

Grazie - sì.

Per il mio sito, probabilmente imposterei la soglia a 5 immagini.

Il motivo è che molti post possono contenere naturalmente 3 immagini senza essere realmente una “galleria”. Ad esempio, un utente potrebbe caricare:

  • uno screenshot di un problema
  • un secondo screenshot che mostra l’impostazione/l’errore rilevante
  • una terza immagine che mostra il risultato o il confronto

In quella situazione, la griglia automatica si applica alle immagini consecutive e aiuta a prevenire il caos visivo.

Tengo anche presente che incoraggiare numerosi caricamenti di immagini non è ideale per lo spazio di archiviazione o la dimensione dei backup, quindi non sto cercando di spingere gli utenti verso post con molte immagini. Il mio punto è più sul controllo del layout quando vengono già caricate più immagini.

Per me, la griglia automatica diventa più utile quando un post ha chiaramente superato alcune immagini esplicative ed è passato a un gruppo più numeroso di immagini. Circa 5 immagini sembra una soglia migliore per questo sul mio sito.

Quindi non voglio disabilitare completamente la griglia automatica. Mi piace la funzione in alcuni casi. Il problema è solo che la soglia fissa attuale di 3 è un po’ troppo aggressiva per comunità in cui piccoli gruppi di immagini sono spesso usati come parte di una spiegazione.

Ecco perché penso che un’impostazione del sito come auto_grid_images_minimum_count sarebbe utile. I siti che apprezzano il comportamento attuale potrebbero lasciarlo a 3, mentre siti come il mio potrebbero alzarlo a 5, 2 o un altro valore.

2 Mi Piace

Nel tuo caso specifico, cosa succederebbe se invece:

  • auto-grid utilizzasse il layout “carousel” di default oppure
  • fosse più facile per gli utenti “disattivare la griglia” per l’intero gruppo

Mi viene in mente un’altra idea…

Forse varrebbe la pena separare ulteriormente il concetto di “gruppo di immagini” dal “layout” di quel gruppo.

Ad esempio, nell’editor avanzato, se si potesse passare tra tre opzioni per un gruppo (elenco, griglia, carousel), mantenendoli tutti nel gruppo, forse renderebbe più facile per gli utenti o i moderatori scegliere il layout preferito con un solo clic, nei casi in cui l’euristica scelta per determinare il layout predefinito non sia quella desiderata.

Sì, penso che questa separazione abbia senso.

Nel mio caso, il problema principale non è davvero l’esistenza delle griglie. Il fatto è che l’euristica attuale prende una decisione di layout piuttosto presto, a partire da 3 immagini consecutive, e poi espone questa decisione come markup [grid]...[/grid] nel post.

Concordo sul fatto che separare “questo è un gruppo di immagini” da “questo gruppo dovrebbe essere visualizzato come elenco/griglia/carosello” rappresenterebbe probabilmente un modello più pulito a lungo termine.

Qualcosa del genere avrebbe senso per me:

  • il compositore riconosce o crea un gruppo di immagini, quindi riconosce nell’editor di testo ricco o crea nell’editor Markdown.
  • il gruppo ha una scelta di layout: elenco, griglia o carosello - un parametro per il bbcode.
  • gli utenti o i moderatori possono modificare quel layout con una sola azione, cosa possibile tramite il pannello secondario nell’editor Markdown.
  • il post non dipende dalla capacità degli utenti di comprendere o preservare con cura i tag [grid], che è proprio ciò per cui l’editor di testo ricco a pannello singolo è utile.

Questo probabilmente risolverebbe più casi rispetto al semplice aggiunta di un’impostazione di soglia, ma si tratta comunque di una funzionalità più ampia.

Per il mio sito specifico, penso che sceglierei comunque elenco come predefinito per piccoli gruppi di immagini, perché 3 screenshot fanno spesso parte di una spiegazione piuttosto che di una galleria. Per batch più grandi, posso vedere l’utilità della griglia o del carosello.

Quindi forse ci sono due livelli di miglioramento:

  1. un’impostazione amministrativa minore per il comportamento attuale, come auto_grid_images_minimum_count, mantenendo il valore predefinito esistente di 3
  2. un modello di layout dei gruppi di immagini più ricco in seguito, in cui elenco/griglia/carosello possono essere modificati più facilmente senza modificare manualmente il markup. Tuttavia, credo che questo appartenga a un argomento di richiesta di funzionalità diverso.

Sebbene, se la seconda direzione fosse preferita, allora la mia suggerimento iniziale in quel post sulla soglia potrebbe essere meno importante, ma penso che il problema di fondo sia lo stesso: gli amministratori e gli utenti hanno bisogno di un po’ più di controllo su quando più immagini vengono trattate come un blocco in stile galleria piuttosto che come immagini esplicative inline normali.

1 Mi Piace

Quindi, sì, penso che il modo in cui lo vedo ora sia quello di fare quanto segue:

  • quando viene caricato più di 1 immagine, avvolgerla in [grid]
    • quando il conteggio è <=3, impostare [grid mode=list] per impostazione predefinita
    • quando il conteggio è > 3 e <=10, impostare [grid mode=grid] per impostazione predefinita
    • quando il conteggio è > 10, impostare [grid mode=carousel] per impostazione predefinita
  • in modalità ricca e anteprima, rendere facile per l’utente passare tra le modalità list, grid e carousel

@chapoi e @renato, sono curioso di sentire le vostre opinioni in merito.

1 Mi Piace

Non sono convinto. Anche nel caso dell’esempio dello screenshot dell’OP, preferirei che fossero affiancati.

Sostengo più la configurazione originale proposta, se mai, piuttosto che cercare di essere troppo furbi, ma dovremmo aspettare che questa richiesta di funzionalità riceva più voti, o che abbiamo sentito la stessa cosa altrove, prima di intraprendere qualsiasi azione.

1 Mi Piace