Shortcode Variable Di Hugo
icon-hugo

⛾ Home hugo Jumat, 18 November 2022 (Diupdate: Kamis, 19 Januari 2023) - 📗 4 Menit

Disini kita akan belajar tentang shortcode. Mulai dari mengetahui apa itu shortcode, fungsi shortcode, dan variabel shortcode.

Shortcode adalah sebuah kode pendek yang digunakan untuk menambahkan kode eksternal ke file markdown.

Shortcode ditandai dengan 2 kurung kurawal diawal dan diakhir, dan 2 tanda panah berlawanan arah diawal dan diakhir.

Visualisasi shortcode:

1❴❴< nama_shortcode >❵❵

Shortcode kebanyakan digunakan untuk menambahkan fitur tertentu atau script yang tidak dapat dilakukan oleh file markdown karena keterbatasannya.

Dengan menggunakan shortcode, kita dapat menambahkan tag html, menambahkan kode css, kode javascript, dan lain-lain.

Selain itu, kita juga dapat menggunakan page variable di shortcode.

Dan bukan cuma itu saja, hugo juga telah menyiapkan beberapa variable khusus untuk shortcode ini.

Letak file shortcode

Jika ingin membuat sebuah shortcode, kita memerlukan sebuah folder khusus yang berfungsi untuk menampung file-file shortcode.

Folder khusus tersebut bernama shortcode. Folder shortcode dibuat di dalam folder layouts.

Berikut ini penggambaran folder shortcode:

1layouts
2    ├── _default
3    ├── partials
4    ├── shortcode
5            ├── img.html
6            ├── lorem-ipsum.md

Selain file berekstensi .html.

Kita juga dapat membuat sebuah shortcode dengan file berformat markdown.

Tapi kebanyakan orang membuat shortcode menggunakan file berekstensi .html.

Tentu saja, cara menggunakan shortcode berekstensi .html dan .md berbeda.

Cara menulis shortcode

Untuk shortcode dengan ekstensi file .html, kita dapat menuliskan semua jenis tag html yang didukung browser.

Contoh penulisan shortcode/img.html:

1<img src="{{ .Get 0 }}">

Untuk shortcode dengan ekstensi file .md atau .markdown, kita dapat menggunakan syntax markdown yang didukung.

Contoh penulisan shortcode/lorem-ipsum.md:

1Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eget sodales orci, id posuere sem. Nullam ornare est convallis felis scelerisque, nec maximus orci cursus. Sed volutpat malesuada odio eget porttitor.
2
3Aenean quis eros quis felis porttitor varius eget et eros. Pellentesque posuere, risus et feugiat ullamcorper, est sem tristique orci, a varius ex est non orci.
4
5Morbi a magna vitae nisl scelerisque fermentum tristique sit amet sapien. In ut tincidunt nulla. In ut velit sagittis, tincidunt massa vel, congue magna.

Cara menggunakan atau memanggil shortcode

Cara menggunakan shortcode yang berekstensi file .html

1❴❴< nama-file-shortcode >❵❵

Cara menggunakan shortcode yang berekstensi file .md atau .markdown

1❴❴% nama-file-shortcode %❵❵

Daftar variabel shortcode di Hugo

Berikut ini adalah daftar atau list dari variable shortcode.

.Name

Mereferensikan nama shortcode. Nama shortcode diambil dari nama file dari shortcode.

Contoh:

1shortcode
2    ├── tampilkan-foto.html

Maka nilai dari variable .Name adalah tampilkan-foto.

.Ordinal

Nilai urut berbasis 0. Akan mengembalikan nilai 0 jika dipanggil di halaman yang menggunakan shortcode.

.Page

Mengembalikan nilai berupa jalur file dari halaman dan nomor unik dari halaman yang menggunakan shortcode tersebut.

Sebagai contoh, postingan/halaman artikel2 berada dalam kategori blog akan mengembalikan nilai berikut:

1{Page(/blog/artikel2.md) nopPage 0xc0010bf680}

.Parent

Digunakan untuk mengakses konteks shortcode jika berada di dalam shortcode lainnya.

Maksudnya adalah untuk memberikan nilai khusus jika shortcode berada di dalam shortcode lainnya (berada di antara pembuka dan penutup shortcode).

Contoh code:

1❴❴< gallery >❵❵
2    ❴❴< img src="img1.jpg" >❵❵
3    ❴❴< img src="img2.jpg" >❵❵
4❴❴< /gallery >❵❵

Di dalam shortcode img, kamu bisa memberikan nilai seperti ini:

1<!-- jika tidak di dalam shortcode lainnya -->
2<img src="{{ .Get 'src' }}" alt="">
3
4
5<!-- jka didalam shortcode lainnya -->
6{{ with .Parent }}
7    <!-- kode khusus jika didalam shortcode lainnya, misalnya menggunakan tag <figure></figure> atau lainnya -->
8{{ end }}

.Position

Digunakan untuk mereferensikan posisi dan nama file dari halaman (artikel) yang menggunakan shortcode tersebut.

Sebenarnya, ini digunakan untuk menangani error yang terjadi di shortcode.

Berikut ini contoh penggunaannya:

1❴❴ with .Get "name" ❵❵
2    <!--  -->
3❴❴ else ❵❵
4    ❴❴ errorf "missing value for attribute 'name': %s" .Position ❵❵
5❴❴ end ❵❵

Output jika error: ERROR 2020/11/07 10:05:55 missing value for attribute name: “/Users/variables/shortcode.md:32:1”

.IsNamedParams

Bernilai true atau false

Bernilai true jika shortcode menggunakan parameter bernama.

Contoh parameter bernama:

shortcode/IMG.html :

1❴❴ $url_img := .Get "src" ❵❵
2<img src="❴❴ $url_img ❵❵" alt="">

content/artikel.md :

1❴❴< IMG src="images/gambar1.jpg" >❵❵

Shortcode IMG mengambil parameter bernama src.

src Inilah yang dimaksud parameter bernama.

.Inner

Digunakan untuk mereferensikan konten atau kode yang ditulis diantara tag pembuka dan penutup shortcode di dalam file markdown.

Maksudnya, variabel .Inner mengambil nilai dinamis diantara tag pembuka dan penutup shortcode yang secara langsung dihasilkan di file markdown tersebut.

Contohnya seperti ini:

shortcode/img-kustom.html :

1{{ .Inner }}

content/artikel.md :

1❴❴ img-kustom ❵❵
2    <img src="">
3❴❴ /img-kustom ❵❵

Biasanya, tujuan penggunaan .Inner di file markdown adalah agar kita dapat menuliskan tag html tertentu di dalam file markdown.

Seringkali kita membutuhkan beberapa tag html karena keterbatasan dari file markdown itu sendiri.

.InnerDeindent

Fungsinya sama seperti variabel .Inner. Perbedaannya adalah bahwa .InnerDeindent menghapus semua indentasi (spasi, dan tab).

Jika menggunakan .Inner sudah berlaku benar, maka tidak perlu menggunakan variabel .InnerDeindent.

Lihat dokumentasi variable shortcode.

Kategori: Hugo

captcha-img