Profile Picture

Janrico Maulana S

Plugin

24 Apr 2025 -

Plugin Jekyll: Memperluas Fungsionalitas Static Site Generator

Jekyll adalah salah satu static site generator (SSG) paling populer yang digunakan untuk membuat website statis dengan performa tinggi. Plugin Jekyll memungkinkan pengembang untuk memperluas fungsionalitas dasar Jekyll dan menyesuaikan proses build sesuai kebutuhan.

Pengertian Plugin Jekyll

Plugin Jekyll adalah gem Ruby yang mengintegrasikan diri dengan proses build Jekyll untuk menambah fungsionalitas baru, mengubah perilaku default, atau menambahkan tag Liquid baru. Plugin memungkinkan pengguna untuk menyesuaikan Jekyll tanpa harus memodifikasi kode sumbernya.

Kategori Plugin Jekyll

Jekyll plugin umumnya dibagi dalam lima kategori utama:

  1. Generators: Membuat konten tambahan saat build
  2. Converters: Mengkonversi format konten non-standar menjadi HTML
  3. Commands: Menambahkan perintah CLI ke Jekyll
  4. Tags: Menambahkan tag Liquid kustom
  5. Filters: Menambahkan filter Liquid kustom

Cara Menginstal Plugin Jekyll

1. Melalui Bundler (Disarankan)

Tambahkan ke Gemfile:

group :jekyll_plugins do
  gem "jekyll-feed"
  gem "jekyll-seo-tag"
  gem "jekyll-sitemap"
end

Lalu jalankan:

bundle install

Tambahkan di _config.yml:

plugins:
  - jekyll-feed
  - jekyll-seo-tag
  - jekyll-sitemap

2. Instalasi Manual

gem install jekyll-feed jekyll-seo-tag jekyll-sitemap

Tambahkan juga ke _config.yml seperti di atas.

3. Plugin Lokal

  1. Buat folder _plugins
  2. Tambahkan file Ruby .rb ke dalamnya
  3. Jekyll akan memuatnya otomatis saat build

Plugin Jekyll Populer

1. SEO Tag

gem "jekyll-seo-tag"

Gunakan di layout:

{% seo %}

2. Jekyll Feed

gem "jekyll-feed"

Gunakan:

{% feed_meta %}

3. Sitemap

gem "jekyll-sitemap"

4. Archives

gem "jekyll-archives"

Konfigurasi di _config.yml:

jekyll-archives:
  enabled:
    - categories
    - tags
  layouts:
    category: archive-category
    tag: archive-tag
  permalinks:
    category: /categories/:name/
    tag: /tags/:name/

5. Paginate V2

gem "jekyll-paginate-v2"

Konfigurasi:

pagination:
  enabled: true
  per_page: 10
  permalink: '/page/:num/'
  title: ':title - Halaman :num'
  limit: 0
  sort_field: 'date'
  sort_reverse: true

Membuat Plugin Sendiri

Contoh struktur plugin generator:

module Jekyll
  class MyPlugin < Generator
    safe true
    priority :low

    def generate(site)
      # plugin logic
    end
  end
end

Membuat Tag Liquid Baru

module Jekyll
  class CurrentTimeTag < Liquid::Tag
    def initialize(tag_name, format, tokens)
      super
      @format = format.strip
    end

    def render(context)
      Time.now.strftime(@format)
    end
  end
end

Liquid::Template.register_tag('current_time', Jekyll::CurrentTimeTag)

Gunakan di template:

{% current_time "%Y-%m-%d %H:%M:%S" %}

Membuat Filter Liquid Baru

module Jekyll
  module CustomFilters
    def capitalize_all(input)
      input.split(" ").map(&:capitalize).join(" ")
    end
  end
end

Liquid::Template.register_filter(Jekyll::CustomFilters)

Gunakan:

{{ "ini adalah teks contoh" | capitalize_all }}

Catatan GitHub Pages

Plugin kustom tidak didukung langsung di GitHub Pages, kecuali kamu build lokal dan push hasil _site/. Plugin yang didukung GitHub Pages secara default:

Kesimpulan

Plugin Jekyll sangat berguna untuk menambah fitur seperti SEO, sitemap, feed, hingga custom tag dan filter. Untuk fitur beyond default, buat plugin lokal, test lokal, dan push hasilnya jika pakai GitHub Pages.