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

1 Mi Piace