GuidesCara membuat konten
Cara membuat konten
Panduan menambah tool, kategori, collection, dan guide secara manual lewat file Markdown.
Semua konten situs ini adalah file Markdown di folder content/. Tidak ada database, tidak ada admin panel. Buat file, isi front matter (bagian YAML di antara ---), jalankan npm run dev, selesai.
content/
├── tools/ satu file per tool → /tools/nama-file/
├── collections/ daftar kurasi → /collections/nama-file/
├── guides/ artikel panjang → /guides/nama-file/
├── about.md halaman statis
├── recent.md otomatis, jangan diubah
└── featured.md otomatis, jangan diubah
Nama file menjadi slug URL. Gunakan huruf kecil dan tanda hubung: local-send.md → /tools/local-send/.
1. Menambah tool
Cara cepat, dari terminal di folder project:
hugo new tools/nama-tool.md
Perintah itu membuat content/tools/nama-tool.md berisi template front matter lengkap dengan komentar. Atau buat filenya sendiri:
---
title: "LocalSend"
date: 2026-09-06
website: "https://localsend.org/"
github: "https://github.com/localsend/localsend"
description: "Berbagi file antar perangkat lewat Wi-Fi lokal, tanpa internet dan tanpa akun."
categories: [file-transfer]
tags: [open-source, privacy, local-network]
platforms: [windows, macos, linux, android, ios]
pricing: [free]
license: MIT
open_source: true
self_hosted: false
account_required: false
featured: false
recommended: true
verified: true
status: active
last_checked: 2026-09-06
alternatives: [pairdrop]
---
Tulisan bebas (opsional) tentang tool ini. Muncul di bagian "Notes" halaman detail.
Field yang wajib
| Field | Isi |
|---|---|
title | Nama tool |
date | Tanggal ditambahkan, dipakai untuk “Recently added” |
website | URL resmi. Jangan pakai url, itu key khusus Hugo |
description | Satu kalimat, sekitar 120 karakter. Tampil di list, kartu, dan hasil search |
categories | Satu atau lebih key dari data/categories.yaml |
platforms | Key dari data/platforms.yaml |
pricing | Key dari data/pricing.yaml |
Kalau field wajib kosong atau key-nya tidak ada di file data/, build gagal dengan pesan yang menyebut nama file dan field-nya. Itu disengaja, supaya typo tidak lolos.
Field opsional
| Field | Isi |
|---|---|
github | URL repositori, memunculkan tombol “Source” |
logo | Path gambar di static/, misal /images/tools/localsend.png. Kalau kosong, dipakai huruf pertama nama tool |
tags | Bebas, huruf kecil dan tanda hubung. Tag privacy memunculkan badge “Privacy Friendly” |
license | Misal MIT, GPL-3.0, Proprietary |
open_source, self_hosted, account_required | true/false. Menggerakkan badge dan filter |
recommended | true = badge “Recommended” dan masuk daftar Recommended di beranda |
featured | true = badge “Featured” dan masuk halaman Featured |
verified | true = tanda “verified” di halaman detail |
status | active (default), unmaintained, deprecated, archived, dead |
last_checked | Tanggal terakhir kamu cek URL dan datanya |
alternatives | Daftar slug tool lain (nama file tanpa .md). Ditampilkan sebagai kartu di halaman detail |
Key yang tersedia saat ini:
- platforms:
windows,macos,linux,android,ios,web,cli,self-hosted,browser-extension - pricing:
free,freemium,paid,open-source - categories: isi
data/categories.yaml, lihat panduan kategori
2. Menambah kategori
Kategori didaftarkan di data/categories.yaml, bukan sebagai file konten. Key di file itu yang kamu tulis di categories: pada tool. Saat ini daftarnya kosong, jadi buat dulu sebelum menambah tool. Langkah lengkapnya ada di panduan Cara membuat kategori.
3. Membuat collection
Collection adalah daftar kurasi buatan tangan, berbeda dengan kategori yang otomatis.
hugo new collections/best-privacy-tools.md
---
title: Best Privacy Tools
date: 2026-09-06
weight: 10
icon: eye-off
description: Stack ringkas untuk berhenti membocorkan data tanpa mengubah kebiasaan.
tools: [signal, bitwarden, keepassxc, ublock-origin]
---
Pengantar opsional. Mulai dari browser dan password manager, dua itu sudah menghilangkan sebagian besar risiko.
tools berisi slug. Kalau ada slug yang tidak ditemukan, build gagal dan menyebut slug mana. weight mengatur urutan: makin kecil makin atas.
4. Membuat guide
hugo new guides/judul-panduan.md
Isinya Markdown biasa. Untuk menyisipkan kartu tool di tengah tulisan:
{{< tool "localsend" >}}
Halaman guide ikut diindeks oleh search.
5. Badge
Badge tidak ditulis manual. Semua diturunkan dari front matter:
| Badge | Muncul kalau |
|---|---|
| Recommended | recommended: true |
| Featured | featured: true |
| Open Source | open_source: true |
| Free / Freemium / Paid | isi pricing |
| Self Hosted | self_hosted: true |
| Privacy Friendly | ada tag privacy |
| No Account / Requires Account | account_required: false / true |
| Cross Platform | platforms berisi 3 atau lebih |
| Unmaintained, Deprecated, Archived, Dead | isi status selain active |
Tampilan badge diatur di data/badges.yaml, aturannya di layouts/_partials/badges.html.
6. Melihat hasil dan mempublikasikan
npm run dev # preview di http://localhost:1313, reload otomatis saat file berubah
npm run search # bangun ulang indeks search untuk dev (jalankan setelah menambah konten)
npm run build # build produksi ke folder public/
Hal yang sering terlewat:
draft: truemembuat halaman tidak ikut build produksi. Hapus atau setfalsesaat siap.dateboleh tanggal hari ini. Halaman berisi tanggal masa depan tetap dibangun.- Tool yang URL-nya mati jangan dihapus. Set
status: deadatauarchivedsupaya catatan dan alternatifnya tetap berguna. - Search di dev memakai indeks dari
npm run search. Kalau hasil search terasa basi, jalankan lagi.