Come archiviare le immagini miniature nella cartella del bundle delle pagine per i siti Hugo con tema Mainroad
Mantenere tutto il contenuto relativo alla pagina in una sola cartella...
Per molto tempo ho avuto questa fastidiosa necessità di mettere immagini miniature delle pagine nella cartella statica. Questo è per Mainroad, Rodster e temi Hugo simili.
Mi piace organizzare il contenuto delle pagine Hugo come bundle di pagine, e preferirei che tutte le immagini correlate alla pagina fossero archiviate all’interno di questo bundle di pagine.
E qui ti presento una soluzione!
Come mantenere le immagini miniature del tema Hugo Mainroad (e simili) all’interno della cartella del bundle di pagine
Basta inserire questo testo nel file ./layouts/partials/post_thumbnail.html, e potrai archiviare l’immagine ovunque all’interno del bundle e della cartella statica :).
{{- if $thumbnail := .page.Params.thumbnail }}
{{- $class := .class }}
{{- $visibility := .page.Site.Params.thumbnail.visibility | default (slice "list" "post") }}
{{- $valueType := printf "%T" $thumbnail -}}
{{- $isMap := in $valueType "map" -}}
{{- if $isMap }}
{{ $visibility = default (slice "list" "post") (default .page.Site.Params.thumbnail.visibility $thumbnail.visibility) }}
{{ $thumbnail = $thumbnail.src }}
{{- end }}
{{- if in $visibility $class }}
{{- $thumbnailURL := "" }}
{{- /* Prova a trovare l'immagine come risorsa della pagina prima (per le pagine del bundle) */ -}}
{{- $resource := .page.Resources.GetMatch $thumbnail }}
{{- if $resource }}
{{- $thumbnailURL = $resource.RelPermalink }}
{{- else }}
{{- /* Rientro alla cartella statica utilizzando relURL */ -}}
{{- $thumbnailURL = $thumbnail | relURL }}
{{- end }}
<figure class="{{ with $class }}{{ . }}__thumbnail {{ end }}thumbnail">
{{ if eq $class "list" }}<a class="thumbnail__link" href="{{ .page.RelPermalink }}">{{ end }}
<img class="thumbnail__image" src="{{ $thumbnailURL }}" alt="{{ .page.Title }}">
{{ if eq $class "list" }}</a>{{ end }}
</figure>
{{- end }}
{{- end }}
Come puoi vedere dai commenti, questo bel frammento di template cerca di generare un riferimento all’immagine archiviata nel bundle della pagina, e se l’immagine non viene trovata, si riconnette al valore predefinito, ovvero la cartella statica. Quindi è compatibile con le versioni precedenti!
Buon divertimento!
Felici utilizzatori di Hugo!
Link utili
- Aggiungere markup dati strutturati a Hugo
- Inviare un modulo Google in un sito web Hugo
- Utilizzare Gitea Actions per deployare un sito web Hugo su AWS S3
- Deployare un sito web generato da Hugo su AWS S3
- Scheda di riferimento per Hugo
- I temi più popolari per Hugo
- Gestione delle immagini del tema Mainroad