本專案的核心目標是提供一個簡單、快速、自動化的解決方案,讓你上傳的 HTML 專案能夠被即時展示和管理。它不僅是一個互動式作品集,更是一個實踐 CI/CD、安全 API 代理和 AI 自動化元數據管理的現代 Web 開發範例。
本專案的核心是一個名為「晝夜協奏曲」的雙主題互動式網站。它最大的特色是其自動化流程:你只需要將新的 HTML 專案檔案推送到 GitHub 倉庫,後續的元數據(如專案名稱、描述)生成、列表更新等工作都將由 AI 和 GitHub Actions 自動完成。
主要功能:
- 自動化專案展示:只需上傳 HTML 檔案,無需任何手動設定,專案即可在主頁的動態中心以卡片形式呈現。
- AI 驅動的元數據:透過 GitHub Actions,在程式碼推送時自動分析 HTML 檔案內容,並利用 Gemini API 智能生成專案的名稱、描述和標籤。
- 雙主題 UI:提供日、夜兩種完全不同的視覺與聽覺體驗。
- 安全的後端代理:內建一組後端 API,安全地將前端請求代理到 Google Gemini API,保護你的 API Key 不在前端洩漏。
本專案採用前後端分離的架構,並透過 GitHub Actions 實現了高度自動化的 CI/CD 流程。
- 技術棧:原生 HTML, CSS, 和 JavaScript。
- 核心頁面:
public/index.html是唯一的入口,它是一個單頁應用 (SPA) 風格的頁面,負責動態載入和渲染專案列表。
- 技術棧:Node.js 搭配 Express.js 框架。
- 功能:提供靜態檔案服務、專案列表 API (
/api/projects),以及一個安全的 Gemini 代理 API (/api/proxy/*)。
- 技術棧:GitHub Actions 搭配 Node.js 腳本 (
scripts/update-projects.js)。 - 流程:當
main分支有新的push時,工作流程會自動分析變動的 HTML 檔案,調用 Gemini API 更新元數據,並將結果推送回倉庫。
請依照以下步驟在本機環境中設定並運行此專案。
-
複製儲存庫
git clone https://github.com/LayorX/web_temp.git cd web_temp -
安裝依賴
npm install
-
設定環境變數 在專案根目錄下建立一個名為
.env的檔案,並填入你的 Google Gemini API Key。# .env GEMINI_API_KEY="YOUR_GEMINI_API_KEY" -
啟動伺服器
npm start
-
訪問應用 打開你的瀏覽器,訪問
http://localhost:3000。
本專案可以輕鬆地一鍵部署到 Zeabur。
- Fork 本專案 到你自己的 GitHub 帳戶。
- 在你的 Zeabur 儀表板中,點擊「新增服務 (Add Service)」,並選擇從 GitHub 匯入。
- 選擇你剛剛 fork 的儲存庫,Zeabur 將會自動偵測到這是一個 Node.js 專案並進行部署。
- 部署完成後,進入該服務的「變數 (Variables)」分頁,點擊「新增變數 (Add Variable)」。
- 建立一個名為
GEMINI_API_KEY的變數,並將你的 Gemini API Key 貼入值欄位中。 - Zeabur 會自動重新部署以應用新的環境變數。完成後,你的專案即可透過 Zeabur 提供的公開網址訪問。
本專案的核心是「Git-based」的自動化流程。
- 在
public/show/資料夾中新增或修改你的.html專案檔案。 - 將你的變更
commit並push到main分支。 - 等待幾分鐘,讓 GitHub Action 自動完成元數據的生成與更新。
- 重新整理你的網站,新的專案或變更就會出現在主頁上。
關於如何為本專案做出貢獻,詳情請見 CONTRIBUTING.md 檔案。
本專案採用 MIT 授權。詳情請見 LICENSE 檔案。
