File Konfigurasi Situs config.toml
โพ Home โ hugo
Minggu, 04 Desember 2022
(Diupdate: Kamis, 19 Januari 2023) -
๐
9 Menit
Disini kamu akan belajar tentang dasar-dasar file konfigurasi situs hugo. Mulai dari mengetahui apa itu file konfigurasi situs, sampai fungsi dan parameter yang dapat digunakan.
File konfigurasi situs adalah sebuah file yang mengatur keseluruhan dari situs hugo.
Secara default, file konfigurasi situs akan memiliki nama config.toml
pada folder root hugo.
Jenis file konfigurasi situs
Secara default, hugo akan membuat file konfigurasi situs dalam format file toml. Lihat selengkapnya disini.
Kita juga dapat mengubah jenis format file tersebut dengan mengganti atau me-rename nama filenya.
Misalnya, config.toml
menjadi => config.yaml
(diubah ke file format yaml).
Berikut ini adalah beberapa format yang dapat digunakan:
- toml
- yaml
- json
Sesuaikan cara penulisan file konfigurasi situs dengan format file yang kamu gunakan.
Contoh penulisan di file konfigurasi situs dengan format toml:
1baseURL = 'https://belajar.donisetiawan.web.id'
2title = "Belajar Setiawan"
3theme = 'temakustom'
4
5[outputs]
6 home = ["HTML", "RSS", "SearchIndex"]
7
8[outputFormats]
9 [outputFormats.SearchIndex]
10 mediaType = "application/json"
11 baseName = "searchindex"
12 isPlainText = true
13 notAlternative = true
[output] adalah contoh penulisan parameter yang memiliki item atau aturan tersendiri.
Jadi, tidak semua parameter ditulis seperti
theme = 'temakustom'
.
Contoh penulisan di file konfigurasi situs dengan format yaml:
1baseURL: https://belajar.donisetiawan.web.id
2title: Belajar Setiawan
3theme: temakustom
4
5outputs:
6 home:
7 - HTML
8 - RSS
9 - SearchIndex
10
11outputFormats:
12 SearchIndex:
13 mediaType: application/json
14 baseName: searchindex
15 isPlainText: true
16 notAlternative: true
Contoh penulisan di file konfigurasi situs dengan format json:
1{
2 "baseURL": "https://belajar.donisetiawan.web.id",
3 "title": "Belajar Setiawan",
4 "theme": "temakustom",
5 "outputs": [
6 "home": [
7 "HTML",
8 "RSS",
9 "SearchIndex"
10 ]
11 ],
12 "outputFormats": [
13 "SearchIndex": [
14 "mediaType": "application/json",
15 "baseName": "searchindex",
16 "isPlainText": true,
17 "notAlternative": true
18 ]
19 ]
20}
Daftar parameter file konfigurasi situs (config.toml)
archetypeDir
Default value: “archetypes”
Digunakan untuk mengubah jalur default dari folder archetypes.
assetDir
Default value: โassetsโ
Digunakan untuk mengubah jalur default dari folder assets.
baseURL
Digunakan untuk mengatur alamat url utama (root) situs hugo. Contohnya https://www.domainku.com
.
buildDrafts
Default value: false
Digunakan untuk mengatur draf pada konten atau artikel, apakah artikel draf ingin ikut dipublikasikan (ditampilkan ke situs) atau tidak.
Draf konten atau artikel di atur di front matter, menggunakan parameter bernama draf
. Lihat disini
buildExpired
Default value: false
Digunakan untuk mengatur konten atau artikel yang memiliki jangka waktu tertentu (memiliki waktu kadaluarsa), apakah ingin ingin ikut dipublikasikan (berarti memaksa publikasi dari artikel yang memiliki jangka waktu yang telah diatur) atau tidak.
Di hugo kita dapat mengatur jangka waktu dari artikel menggunakan parameter bernama expiryDate
di front matter artikel.
Lihat selengkapnya disini
buildFuture
Default value: false
Digunakan untuk mengatur konten atau artikel yang memiliki jadwal publikasinya sendiri, apakah ingin ikut dipublikasikan (dipaksakan publikasinya) atau tidak.
canonifyURLs
Default value: false
Jika di setting ke true
, maka semua url relatif di situs hugomu akan diubah menjadi url absolut (yaitu url dengan jalur lengkap).
Contoh url absolut: https://domainku.com/hugo/berkenalan-dengan-hugo
.
Contoh url relatif: /hugo/berkenalan-dengan-hugo
.
contentDir
Default value: โcontentโ
Digunakan untuk mengubah jalur default dari folder content.
copyright
Default value: โโ
Digunakan untuk mengatur teks atau isi dari copyright web. Biasanya copyright ini berisi kalimat seperi “ยฉ All rights reserved” atau semacamnya.
dataDir
Default value: โdataโ
Digunakan untuk mengubah jalur default dari folder data.
Folder data ini digunakan sebagai data tambahan untuk situs hugo kita. Misalnya, data tambahan berupa json yang nantinya akan digunakan di salah satu artikel atau hal-hal semacam itu.
defaultContentLanguage
Default value: โenโ
Digunakan untuk mengatur bahasa default (bahasa utama) situs hugo.
Misalnya, indonesia => “id”, spanyol => “es”, jepang => “jp” dan lain-lain.
defaultContentLanguageInSubdir
Default value: false
Digunakan untuk merender atau menampilkan bahasa yang digunakan di url.
Sebagai contoh, https://domainku.com
menjadi => https://domainku.com/en/
.
Atau https://domainku.com/artikel1
menjadi => https://domainku.com/en/artikel1
.
disableAliases
Default value: false
Digunakan untuk menonaktifkan fitur alias pada url.
Fitur alias digunakan untuk me-redirect atau mengalihkan url halaman. Misalnya untuk url yang artikelnya sudah dihapus atau karena masalah error.
Lihat contoh pengalihan url disini.
disableHugoGeneratorInject
Default value: false
Secara default, hugo akan membuat tag generator hugo ke struktur html situs hugo.
Untuk menonaktifkan generator hugo, gunakan parameter disableHugoGeneratorInject
ini dan setting ke true
.
disableKinds
Default value: []
Digunakan untuk menonaktifkan halaman tertentu di situs hugomu.
Misalnya jika ingin menonaktifkan halaman taxonomy
. Maka sintaksnya akan terlihat seperti ini:
File config.toml:
1disableKinds = ["taxonomy"]
Berikut ini beberapa daftar halaman di situs hugo: "page"
, "home"
, "section"
, "taxonomy"
, "term"
, "RSS"
, "sitemap"
, "robotsTXT"
, "404"
.
disableLiveReload
Default value: false
Digunakan untuk menonaktifkan live reload di browser. Live reload adalah fitur yang membuat browser merefresh secara otomatis saat terjadi perubahan pada file proyek kita.
disablePathToLower
Default value: false
Digunakan untuk menonaktifkan fitur url yang mengubah semua huruf besar (kapital) menjadi huruf biasa.
enableEmoji
Default value: false
Digunakan untuk mengaktifkan fitur emoji di hugo ๐.
enableGitInfo
Default value: false
Digunakan untuk mengaktifkan Git di hugo.
Dengan mengaktifkan parameter enableGitInfo
ini, kita dapat mengambil informasi tentang git pada situs.
Misalnya saat melakukan git commit terakhir, kita ingin mengambil waktu dan tanggalnya sebagai waktu dan tanggal update dari konten di situs.
Atau untuk hal-hal lainnya seperti mengambil hash dari commit.
Baca disini lebih lanjut, Git variable di hugo.
enableInlineShortcodes
Default value: false
Digunakan untuk mengaktifkan fitur shortcode
di hugo.
Baca lebih lanjut tentang shortcode disini, Shortcode variable di hugo.
enableMissingTranslationPlaceholders
Default value: false
Digunakan untuk menampilkan atribut html placeholder
, jika terjemahan tidak bekerja dengan semestinya. Misalnya teks tidak diterjemahkan
enableRobotsTXT
Default value: false
Jika true, hugo akan membuat file robots.txt
secara otomatis saat kamu melakukan build dengan perintah hugo
.
googleAnalytics
Default value: ""
Digunakan untuk menyematkan tracking ID atau ID tag dari properti Google Analytics.
Lihat ID tag disini.
hasCJKLanguage
Default value: false
Jika true
, maka bahasa yang ada pada situs akan di deteksi dan ditampilkan dengan benar. Termasuk variabel dari .Summary
dan .WordCount
.
Ini digunakan jika kamu memiliki beberapa bahasa pada situs hugomu.
languageCode
Default value: ""
Kode bahasa untuk situs hugo. Misalnya, en => english, es => spanyol, jp => jepang, dan lain-lain.
disableLanguages
Digunakan untuk menonatifkan bahasa yang ada pada situs.
Misalnaya, website atau blogmu menggunakan banyak bahasa, tetapi ingin menonaktifkan salah satu atau beberapa bahasa.
File config.toml:
1disableLanguages = ["jp", "fr"]
newContentEditor
Default value: ""
Digunakan untuk membuka code editor seperti vscode atau code editor lainnya saat membuat sebuah konten atau artikel baru menggunakan perintah hugo new artikel1.md
.
Sebagai contoh, saya akan memberikan nilai code
untuk parameter newContentEditor
.
1newContentEditor = "code"
Setelah saya mengisinya dengan nilai code
. Maka vscode saya akan otomatis terbuka saat saya membuat konten atau artikel baru.
noChmod
Default value: false
Jika true
, maka semua izin pada file akan dinonaktifkan. Misalnya sudo chmod +x artikel1.md
tidak akan bisa.
noTimes
Default value: false
Jika true
, maka tanggal dan waktu modifikasi dari file tidak akan ada.
paginate
Default value: 10
Digunakan untuk mengatur jumlah maksimum konten atau artikel pada halaman di situs hugo.
Misalnya, untuk halaman home hanya akan menampilkan total 7 artikel.
Untuk artikel yang hilang atau tersembunyi. Kamu bisa menggunakan pagination untuk beralih ke halaman dari artikel8, artikel9, dst.
Lihat tentang pagination disini (maaf konten belum tersedia).
paginatePath
Default value: “page”
Digunakan untuk memberikan nama untuk halaman yang dibagi (halaman dengan paginate).
Misalnya, halaman home maksimum menampilkan 7 artikel. Artikel selanjutnya 8, 9, dst akan berada pada halaman selanjutnya.
url halaman selanjutnya akan seperti ini: https://domainku.com/page/2/
.
paginatePath
digunakan untuk mengubah kata page ini ke kata yang ingin kita atur sendiri.
File config.toml:
1paginatePath = "halaman"
Contoh diatas akan memberikan url halaman selanjutnya berubah jadi seperti ini: https://domainku.com/halaman/2/
.
pluralizeListTitles
Default value: true
Digunakan untuk mengatur judul untuk halaman list (yaitu halaman yang diatur oleh file list.html).
Jika true
maka akan memberikan nilai jamak dari judul.
Misalnya, judul halaman blog saya adalah “Blog” akan menjadi “Blogs” (secara otomatis hugo menambahkan huruf “s” diakhir judulnya).
publishDir
Default value: “public”
Digunakan untuk mengubah jalur default dari folder public.
Folder public digunakan untuk menyimpan hasil semua file html, robots.txt, dll yang sudah dibuat.
Belajar lebih lanjut tentang folder public disini.
relativeURLs
Default value: false
Digunakan untuk mengaktifkan url realtif (url tidak lengkap) pada situs hugo.
contoh url absolut: https://domainku.com/hugo/artikel1
.
contoh url realtif: /hugo/artikel1
.
Url relatif hanya akan berfungsi jika url atau link berasal dari situs yang sama.
refLinksErrorLevel
Default value: ERROR
Ketika menggunakan ref dan relref untuk mendapatkan url halaman, jika terjadi error maka hugo secara otomatis mencetak “ERROR”.
Nah, kamu dapat mengatur nilai atau pesan dari ERROR tersebut.
Misalnya, “WARNING”.
removePathAccents
Default value: false
Digunakan untuk menghapus tanda atau mark yang tidak sesuai dengan penulisan pada umumnya.
Contohnya seperti: /post/hรผgรณ.md
akan diubah menjadi => https://domainku.com/post/hugo
.
rssLimit
Default value: -1 (unlimited)
Digunakan untuk membatasi jumlah maksimum item atau url untuk RSS feed.
summaryLength
Default value: 70
Digunakan untuk mengatur jumlah kata dari variabel .Summary
.
theme
Digunakan untuk mengidentifikasi tema yang akan digunakan di situs hugo.
File config.toml:
1theme = "namatema"
Folder tema dibuat di dalam folder themes
. Kamu dapat membuat banyak tema di situs hugo dan dapat mengubah tema menggunakan parameter theme
ini.
Letak folder tema:
1belajarhugo
2 |
3 โโโ archetypes
4 | โโโ default.md
5 |
6 โโโ config.toml
7 โโโ content
8 โโโ data
9 โโโ layouts
10 | โโโ _default
11 | โโโ partials
12 | โโโ 404.html
13 | โโโ index.html
14 |
15 โโโ public
16 โโโ static
17 โโโ themes
18 โโโ tema1
19 โโโ tema2
20 โโโ tema3
Kamu dapat membuat tema hugo menggunakan perintah
hugo new theme namatemanya
.Setelah menggunakan perintah tersebut, secara ootomatis tema akan dibuat bersamaan dengan folder dan file yang dibutuhkan.
themesDir
Default value: “themes”
Digunakan untuk mengubah jalur default dari folder themes
.
timeout
Default value: “30”
Digunakan untuk menambahkan waktu saat melakukan build situs hugo. Nilai defaultnya adalah 30 detik.
Tambahkan waktu jika kamu mengalami masalah karena waktu build yang dibutuhkan lebih lama.
Salah satu contoh error yang terjadi karena masalah waktu build adalah seperti output dibawah ini:
1Hugo Static Site Generator v0.59.1-D5DAB232/extended linux/amd64 BuildDate: 2019-10-31T15:28:09Z
2Building sites โฆ
3Total in 25937 ms
4Error: Error building site: "/opt/build/repo/content/article/2016-11-01-my-iot-exploration-part-2-raspberry-pi-sense-hat/index.md:1:1":
5timed out initializing value. This is most likely a circular loop in a shortcode
Jika nilai yang diatur tidak dapat berfungsi. Kamu bisa mengubahnya dalam satuan miliseconds dan mengubahnya menjadi tipe integer.
Contoh =>
timeout = 50000
.
timeZone
Default value: Sesuai waktu pada sistem perangkat.
Digunakan untuk mengatur zona waktu untuk konten atau artikel di situs hugo. Misalnya, kamu dapat mengaturnya ke Europe/Oslo
untuk waktu eropa bagian Oslo.
Lihat semua zona waktu disini.
title
Digunakan untuk mengatur judul untuk situs hugo. Ini akan menjadi judul utama dari situs hugo.
titleCaseStyle
Default value: “AP”
Digunakan untuk mengatur style untuk judul situs hugo.
Contohnya: blog tutorial
menjadi => Blog Tutorial
.
Nilai lainnya seperti Chicago
atau Go
(huruf kapital di setiap awal kata).
Kamu dapat menggunakan tools ini untuk mengetahui dan mencoba jenis-jenis style untuk judul.
uglyURLs
Default value: false
Digunakan untuk menyematkan nama ektensi dari file pada halaman.
Sebagai contoh, jika uglyURLs = true
maka url ini https://domainku.com/artikel1.html
akan menjadi => https://domainku.com/artikel
.
watch
Default value: false
Perhatikan perubahan yang terjadi pada sistem file dan buat ulang sesuai kebutuhan.
Saya kurang mendalami tentang fitur watch
ini.
Tetapi yang pasti, pada dokumentasi hugo jika kamu menggunakan mesin nix, maka kamu dapat melakukan hal seperti dibawah ini.
1// buka folder dari proyek hugomu
2cd ~/belajarhugo
3hugo config | grep emoji
output
: enableemoji: true
Contoh diatas digunakan untuk mendapatkan konfigurasi emoji hanya dengan menggunakan perintah di terminal.
Hal seperti itu sebenarnya juga dapat kita lakukan dengan terminal bash.
Selengkapnya silahkan lihat saja disini => mesin nix.