MasPutraWae

Dokumentasi Penggunaan Image di Hugo

Putra Jaya | | 2 Menit | Hugo
Daftar Isi

1️⃣ Render Hook: render-image.html

Render hook ini digunakan otomatis ketika kamu menulis gambar di Markdown, misal:

![Alt text](img/photo.jpg "title=Liburan|sizes=300x200|crop=center|class=rounded")

Parameter yang didukung:

ParameterDefaultContohKeterangan
title"""Foto Liburan"Digunakan sebagai title HTML, juga bisa sebagai tooltip
sizes"""300x200" atau "300x200 center"Resize gambar menggunakan Hugo Image Processing
crop"""center", "top", "smart"Menentukan anchor crop (ditambahkan ke sizes)
class"rounded-sm drop-shadow-sm/100""rounded-lg"Menambahkan CSS class tambahan
altMarkdown alt"Kucing Lucu"Digunakan di tag <img>

Contoh Penggunaan di Markdown:

  1. Basic Resize

    ![](img/photo.jpg "sizes=300x200")
    
  2. Resize + Crop

    ![](img/photo.jpg "sizes=300x200|crop=center")
    
  3. Resize + Crop + Title

    ![](img/photo.jpg "title=Liburan|sizes=400x300|crop=top")
    
  4. Resize + Crop + Title + Class

    ![](img/photo.jpg "title=Gunung|sizes=600x400|crop=smart|class=shadow-xl")
    
  5. Default (tanpa parameter)

    ![](img/photo.jpg)
    

Akan memakai default sizes: 320x, 768x, 1024x, 1280x, 1536x.


2️⃣ Partial: images/Image.html

Partial ini yang benar-benar melakukan image processing. Bisa dipanggil manual juga jika dibutuhkan.

Parameter Partial

ParameterTipeDefaultContohKeterangan
srcstringrequired"img/photo.jpg"Path gambar (local atau remote)
altstring"Image""Kucing Lucu"Alt text
titlestring"""Foto Liburan"Title untuk tooltip
sizesslicedefault responsive(slice "400x" "800x" "1200x")Ukuran yang dipakai untuk resize
classstring"rounded-sm drop-shadow-sm/100""rounded-lg"CSS class tambahan
modestring"""square", "portrait", "landscape"Mode auto resize
baseint300300Digunakan bersama mode untuk menentukan ukuran

Contoh Manual Partial

  1. Default

    {{ partial "images/Image" (dict "src" "img/photo.jpg") }}
    
  2. Custom Resize

    {{ partial "images/Image" (dict
    "src" "img/banner.jpg"
    "sizes" (slice "400x" "800x" "1200x")
    ) }}
    
  3. Mode Square

    {{ partial "images/Image" (dict
    "src" "img/avatar.jpg"
    "mode" "square"
    "base" 300
    ) }}
    
  4. Mode Portrait

    {{ partial "images/Image" (dict
    "src" "img/poster.jpg"
    "mode" "portrait"
    "base" 300
    ) }}
    
  5. Mode Landscape

    {{ partial "images/Image" (dict
    "src" "img/hero.jpg"
    "mode" "landscape"
    "base" 300
    ) }}
    

Catatan Penting

  • Jika sizes tidak ditentukan, akan dipakai default responsive sizes: "320x", "768x", "1024x", "1280x", "1536x"
  • Parameter mode (square, portrait, landscape) akan otomatis membentuk ukuran berdasarkan base.
  • Partial menangani gambar lokal dan remote. Remote akan dicoba resources.GetRemote, tapi bisa error jika file tidak ditemukan.
  • alt diambil dari Markdown secara otomatis, tapi bisa di-override via title= jika perlu.

Responsive Output

Partial menghasilkan markup <picture> dengan:

  • WebP <source> untuk browser modern

  • Original <source> fallback

  • <img> terakhir dengan atribut:

    • alt
    • title
    • width & height (rasio asli)
    • loading="lazy" (default)
    • CSS class sesuai parameter
  • Mendukung multiple responsive sizes


Best Practices

  • Gunakan title= untuk tooltip / SEO
  • Gunakan crop= saat ingin fokus ke objek tertentu
  • Gunakan class= untuk styling khusus per image
  • Jangan pakai nama file remote yang mudah hilang → gunakan fallback default