// Projects data
const projects = [
{
title: "Python 基礎課程",
description: "針對初學者設計的完整 Python 程式設計入門課程,包含實務練習。",
image: "https://huggingface.co/spaces/hklamsir/tech-edumaster/resolve/main/images/認識Python程式編寫_01.png",
category: "course",
year: "2023"
},
{
title: "網頁開發工作坊",
description: "涵蓋 HTML、CSS 及 JavaScript 基礎的互動式工作坊,適合中學生參與。",
image: "https://huggingface.co/spaces/hklamsir/tech-edumaster/resolve/main/images/前端網站開發.png",
category: "workshop",
year: "2022"
},
{
title: "資安防護資源包",
description: "網路安全教育的學習材料與實務練習集合。",
image: "https://huggingface.co/spaces/hklamsir/tech-edumaster/resolve/main/images/資安防護資源包.png",
category: "resource",
year: "2023"
},
{
title: "資料科學訓練營",
description: "為期8週的密集課程,教授使用Python進行數據分析與視覺化。",
image: "https://huggingface.co/spaces/hklamsir/tech-edumaster/resolve/main/images/資料科學訓練營-2.png",
category: "course",
year: "2021"
},
{
title: "雲端運算研討會",
description: "為IT專業人士設計的兩天AWS與Azure基礎研討會。",
image: "https://huggingface.co/spaces/hklamsir/tech-edumaster/resolve/main/images/雲端運算研討會.png",
category: "workshop",
year: "2022"
},
{
title: "Python教學電子書",
description: "教育工作者適用的Python有效教學策略指南。",
image: "https://huggingface.co/spaces/hklamsir/tech-edumaster/resolve/main/images/Python教學電子書.png",
category: "resource",
year: "2020"
}
];
// Initialize gallery
document.addEventListener('DOMContentLoaded', function() {
const galleryContainer = document.querySelector('.gallery-container');
const filterButtons = document.querySelectorAll('.filter-btn');
// Load all projects initially
loadProjects(projects);
// Filter projects
filterButtons.forEach(button => {
button.addEventListener('click', function() {
// Update active button
filterButtons.forEach(btn => btn.classList.remove('active'));
this.classList.add('active');
const filter = this.getAttribute('data-filter');
const filteredProjects = filter === 'all'
? projects
: projects.filter(project => project.category === filter);
loadProjects(filteredProjects);
});
});
function loadProjects(projectsToLoad) {
galleryContainer.innerHTML = '';
projectsToLoad.forEach(project => {
const projectEl = document.createElement('div');
projectEl.className = 'gallery-item bg-white rounded-lg overflow-hidden shadow-md';
projectEl.innerHTML = `