這是一個用來展示我個人攝影作品的網站
建立這個網站的主要目的是提供一個簡潔、專注的平台,來存放與分享我的攝影創作。
這個專案在設計時特別著重自動化與簡化流程,減少手動操作與重複性工作。
所有作品的資訊(描述、標籤、拍攝參數等)都獨立於網站程式碼之外進行管理,採用結構化的資料格式儲存。
從上傳照片到網站發佈,整個流程高度自動化:
- 自動讀取相機資訊:上傳新照片後,系統會自動讀取 EXIF 元數據(光圈、快門、ISO、焦距、相機型號等),無需手動填寫這些技術參數
- 智能合併機制:自動化過程不會覆蓋已手動編輯的內容,確保人工修改的描述和標籤不會遺失
- 自動部署流程:內容更新後會自動觸發網站重新部署,讓新作品即時上線
透過整合的後台管理介面(Sveltia CMS),可以在不撰寫程式碼的情況下管理所有內容:
- 直覺的操作介面:拖曳上傳圖片、所見即所得的編輯器
- 結構化的內容編輯:系統化地管理作品描述、標籤、發佈狀態等
- 即時預覽:編輯時可以即時查看內容效果
- 零成本運行:後台系統基於 Git 運作,無需額外的伺服器或訂閱費用
網站使用 Nuxt.js:
- 靜態生成
- 響應式設計
- 流暢動畫
- 全螢幕瀏覽
雖然這是一個相對簡單的個人專案,但在技術選擇上有幾個值得一提的特色:
- 免資料庫設計:採用檔案式的內容管理,避免了傳統資料庫的複雜性與維護成本
- Git-based CMS:所有內容變更都透過 Git 進行版本控制,安全且透明
- 全自動化部署:從程式碼提交到網站上線,整個 CI/CD 流程完全自動化
- TypeScript 開發:使用型別安全的程式語言,減少潛在錯誤
這個專案不僅是一個作品展示平台,也是我探索如何用程式簡化創作流程的實驗。透過精心設計的自動化機制,我可以將絕大部分精力放在攝影本身,而非網站的日常維護上。
如果你也是一位攝影愛好者,希望這個專案能為你提供一些靈感。