
Membuat Video Galeri Di Jekyll
Siapa bilang blog Jekyll harus selalu statis dan membosankan? Di era digital yang didominasi visual ini, menghadirkan galeri video interaktif di blog Anda bukan lagi sekadar pilihan, melainkan sebuah keharusan. Mari kita selami mengapa video galeri bisa menjadi kunci untuk menghidupkan blog Jekyll Anda dan membuat pengunjung betah berlama-lama!
Berikut adalah kode yang bisa Anda gunakan:
<style>
/* CSS untuk galeri video yang responsif */
.video-gallery {
display: flex;
flex-wrap: wrap;
gap: 20px; /* Jarak antar video */
justify-content: space-around; /* Pusatkan item dan berikan ruang di sekitarnya */
padding: 20px; /* Padding di sekitar galeri */
background-color: #f8f8f8; /* Warna latar belakang galeri */
border-radius: 10px; /* Sudut membulat */
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Bayangan lembut */
}
.video-item {
flex: 1 1 calc(33.33% - 20px); /* 3 video per baris dengan jarak */
max-width: calc(33.33% - 20px); /* Batasi lebar untuk 3 kolom */
background-color: #ffffff; /* Latar belakang item video */
border-radius: 8px; /* Sudut membulat untuk setiap item */
overflow: hidden; /* Pastikan konten tidak meluap */
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); /* Bayangan item */
transition: transform 0.3s ease; /* Efek hover */
}
.video-item:hover {
transform: translateY(-5px); /* Sedikit naik saat di-hover */
}
.video-item .video-wrapper {
position: relative;
padding-bottom: 56.25%; /* Rasio aspek 16:9 (tinggi/lebar) */
height: 0;
overflow: hidden;
}
.video-item .video-wrapper iframe,
.video-item .video-wrapper video {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: none; /* Hapus border iframe */
border-radius: 8px 8px 0 0; /* Sudut membulat di atas */
}
.video-item .video-info {
padding: 15px;
text-align: center;
}
.video-item .video-info h3 {
margin-top: 0;
margin-bottom: 10px;
font-size: 1.2em;
color: #333;
}
.video-item .video-info p {
font-size: 0.9em;
color: #666;
}
/* Media queries untuk responsivitas */
@media (max-width: 992px) {
.video-item {
flex: 1 1 calc(50% - 20px); /* 2 video per baris di tablet */
max-width: calc(50% - 20px);
}
}
@media (max-width: 768px) {
.video-item {
flex: 1 1 100%; /* 1 video per baris di ponsel */
max-width: 100%;
}
}
</style>
<div class="video-gallery">
{% for video in include.videos %}
<div class="video-item">
<div class="video-wrapper">
{% if video.type == 'youtube' %}
<iframe
src="https://www.youtube.com/embed/{{ video.id }}"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen
></iframe>
{% elsif video.type == 'local' %}
<video controls>
<source src="{{ site.baseurl }}/assets/videos/{{ video.filename }}" type="video/mp4">
Browser Anda tidak mendukung tag video.
</video>
{% endif %}
</div>
<div class="video-info">
<h3>{{ video.title }}</h3>
<p>{{ video.description }}</p>
</div>
</div>
{% endfor %}
</div>
Cara Menggunakan Kode Ini di Blog Jekyll Anda:
- Buat File
Include
:- Di
root
proyek Jekyll Anda, pastikan ada folder bernama_includes
. - Buat file baru di dalam
_includes
dan beri namavideo_gallery.html
. - Salin seluruh kode HTML dan CSS di atas ke dalam file
_includes/video_gallery.html
.
- Di
- Siapkan Video Lokal (Opsional):
- Jika Anda ingin menyertakan video lokal, buat folder
assets/videos
di root proyek Jekyll Anda. - Tempatkan file video Anda (misalnya,
video1.mp4
,video2.mp4
) di dalam folderassets/videos
ini.
- Jika Anda ingin menyertakan video lokal, buat folder
- Panggil Galeri di Postingan atau Halaman Markdown Anda:
- Buka file Markdown (
.md
) untuk postingan atau halaman tempat Anda ingin menampilkan galeri. - Di bagian front matter (bagian YAML di bagian atas file Markdown, di antara —), Anda perlu mendefinisikan data video Anda.
- Buka file Markdown (
Contoh front matter untuk video YouTube dan lokal:
---
layout: post
title: "Galeri Video Keren Saya"
date: 2023-10-27 10:00:00 +0700
categories: [video, tutorial]
# Definisikan daftar video di front matter
videos:
- type: youtube
id: "dQw4w9WgXcQ" # Ganti dengan ID video YouTube Anda
title: "Contoh Video YouTube 1"
description: "Ini adalah deskripsi singkat untuk video YouTube pertama."
- type: youtube
id: "M7lc1UVf-VE" # Ganti dengan ID video YouTube lainnya
title: "Contoh Video YouTube 2"
description: "Video kedua dari YouTube yang menarik."
- type: local
filename: "video1.mp4" # Ganti dengan nama file video lokal Anda
title: "Video Lokal Saya"
description: "Ini adalah video yang di-host di server saya."
- type: youtube
id: "abcdefg1234" # Ganti dengan ID video YouTube lainnya
title: "Contoh Video YouTube 3"
description: "Video ketiga dari YouTube."
---
{% include video_gallery.html videos=page.videos %}
Ini adalah galeri video yang menampilkan beberapa konten menarik.
Penjelasan :
videos:
: Ini adalah array tempat Anda mendefinisikan setiap video.type: youtube
atautype: local
: Menentukan apakah video berasal dari YouTube atau file lokal.id:
: Untuk video YouTube, ini adalah ID unik dari URL video (misalnya,dQw4w9WgXcQ
darihttps://www.youtube.com/watch?v=dQw4w9WgXcQ
).filename:
: Untuk video lokal, ini adalah nama file video Anda (misalnya,video1.mp4
). Pastikan file ini ada diassets/videos/
.title
dandescription:
: Informasi yang akan ditampilkan di bawah setiap video.{% include video_gallery.html videos=page.videos %}
: Baris ini memanggil file_includes/video_gallery.html
dan meneruskan data videos yang telah Anda definisikan di front matter halaman (page.videos
) ke dalamnya.
Setelah Anda menambahkan kode ini dan memperbarui file Markdown Anda, Jekyll akan merender galeri video yang responsif di blog Anda. Anda dapat menyesuaikan CSS untuk mengubah tampilan dan nuansa galeri agar sesuai dengan desain blog Anda.