
Memasang Kategori Di Blog Jekyll
Mengatur postingan blog Anda dengan kategori di Jekyll tanpa menggunakan plugin itu cukup mudah. Prosesnya mirip dengan penanganan tag
. Anda akan menggunakan front matter di postingan Anda dan membuat halaman khusus untuk setiap kategori. Ini menjaga blog Anda tetap ramping dan cepat.
-
Struktur Folder dan File Kategori
Pertama, mari siapkan struktur yang kita butuhkan.
-
Buat Folder
_categories
(atau nama lain yang Anda suka): Di root direktori Jekyll Anda, buat folder baru bernama_categories
. Folder ini akan menampung halaman-halaman individual untuk setiap kategori.. ├── _posts ├── _categories │ ├── programming.md │ ├── design.md │ └── ... ├── _layouts ├── index.html └── _config.yml
-
Buat File Markdown untuk Setiap Kategori: Di dalam folder
_categories
, buat file Markdown (.md
) untuk setiap kategori yang ingin Anda gunakan. Nama file harus sesuai dengan nama kategori yang akan Anda gunakan di postingan (misalnya,programming.md
,design.md
).Contoh
_categories/programming.md
:--- layout: category_page title: Programming permalink: /category/programming/ ---
layout: category_page
: Ini akan mengarahkan ke layout khusus yang akan kita buat sebentar lagi untuk menampilkan postingan yang terkait dengan kategori ini.title: Programming
: Ini adalah nama kategori yang akan ditampilkan di halaman.permalink: /category/programming/
: Ini adalah URL permanen untuk halaman kategori ini. Sesuaikan dengan struktur URL yang Anda inginkan.
-
-
Buat Layout Khusus untuk Halaman Kategori
Selanjutnya, Anda perlu membuat layout yang akan digunakan oleh semua halaman kategori Anda.
-
Buat File
_layouts/category_page.html
: Di dalam folder_layouts
, buat file baru bernamacategory_page.html
.Contoh
_layouts/category_page.html
:--- layout: default --- <div class="container mt-5"> <h1>Postingan dalam Kategori: {{ page.title }}</h1> <hr> <ul> {% assign category_name = page.title %} {# Ambil nama kategori dari front matter #} {% for post in site.posts %} {% if post.categories contains category_name %} <li> <a href="{{ post.url | relative_url }}">{{ post.title }}</a> - <small>{{ post.date | date: "%d %b %Y" }}</small> </li> {% endif %} {% endfor %} </ul> </div>
Penjelasan :
layout: default
: Layout ini akan mewarisi layout default blog Anda (misalnya, header, footer, sidebar, dll.).<h1>Postingan dalam Kategori: {{ page.title }}</h1>
: Menampilkan judul kategori dari front matter halaman kategori (misalnya, “Postingan dalam Kategori: Programming”).{% assign category_name = page.title %}
: Mengambil judul kategori dari front matter halaman kategori.{% for post in site.posts %}
: Mengulang semua postingan di blog Anda.{% if post.categories contains category_name %}
: Memeriksa apakah array categories dalam front matter postingan mengandung category_name saat ini.<li><a href="{{ post.url | relative_url }}">{{ post.title }}</a> ...</li>
: Menampilkan judul postingan sebagai tautan ke postingan tersebut.
-
-
Menambahkan Kategori ke Postingan Anda
Sekarang Anda bisa menambahkan kategori ke postingan blog Anda menggunakan front matter.
-
Edit
_posts/nama-postingan-anda.md
: Buka file Markdown postingan Anda dan tambahkan categories di bagian front matter. Anda bisa menambahkan satu kategori atau beberapa kategori dalam bentuk array.Contoh:
--- layout: post title: Mengenal JavaScript ES6 date: 2023-10-26 10:00:00 +0700 categories: [Programming, Web Development] # Tambahkan kategori di sini tags: [javascript, es6] --- Ini adalah konten dari postingan Anda...
-
categories: [Programming, Web Development]
: Pastikan nama kategori di sini sesuai dengan nama file Markdown yang Anda buat di folder_categories
dan juga sesuai dengan title di front matter file kategori tersebut. Perhatikan huruf besar/kecilnya juga.
-
-
Menampilkan Daftar Kategori di Blog Anda (Opsional tapi Direkomendasikan)
Untuk memudahkan pembaca menemukan kategori, Anda bisa membuat halaman atau bagian di sidebar yang menampilkan daftar semua kategori yang tersedia.
-
Buat Halaman
categories.html
(atau tambahkan di sidebar/footer):Contoh
categories.html
:--- layout: default title: Semua Kategori permalink: /categories/ --- <div class="container mt-5"> <h1>Semua Kategori</h1> <hr> <ul> {% assign all_categories = site.categories | sort %} {% for category in all_categories %} {% if category[1].size > 0 %} {# Hanya tampilkan kategori yang memiliki postingan #} <li><a href="/category/{{ category[0] | slugify }}/">{{ category[0] }}</a> ({{ category[1].size }})</li> {% endif %} {% endfor %} </ul> </div>
Penjelasan :
{% assign all_categories = site.categories | sort %}
: Jekyll secara otomatis mengumpulkan semua kategori dari postingan Anda dalam variabel site.categories. sort akan mengurutkan kategori secara alfabetis.{% for category in all_categories %}
: Mengulang setiap kategori.category[0]
adalah nama kategori dancategory[1]
adalah array postingan yang terkait dengan kategori tersebut.{% if category[1].size > 0 %}
: Memastikan hanya kategori yang memiliki setidaknya satu postingan yang ditampilkan.<a href="/category/{{ category[0] | slugify }}/">{{ category[0] }}</a>
: Membuat tautan ke halaman kategori yang sesuai.slugify
mengubah nama kategori menjadi format URL yang aman (misalnya, “Web Development” menjadi “web-development”). Pastikan permalink di_categories/*.md
Anda juga menggunakan formatslugify
ini.
-
-
Uji Coba dan Deploy
Setelah Anda menyelesaikan langkah-langkah di atas:
- Jalankan Jekyll: Buka terminal di root direktori blog Anda dan jalankan bundle exec jekyll serve untuk melihat perubahan secara lokal.
- Periksa Tautan Kategori: Pastikan semua tautan kategori berfungsi dengan benar dan mengarahkan ke halaman kategori yang sesuai.
- Deploy: Setelah puas dengan hasilnya, deploy blog Jekyll Anda ke platform hosting pilihan Anda (GitHub Pages, Netlify, dll.).
Dengan menerapkan langkah-langkah ini, Anda akan memiliki sistem kategori yang berfungsi penuh di blog Jekyll Anda tanpa perlu mengandalkan plugin eksternal. Ini adalah cara yang sederhana dan efektif untuk menjaga blog Anda tetap terorganisir dan mudah dijelajahi.