Skip to content

wen-hsiu-hsu/photography-gallery

Repository files navigation

Photography Gallery

網站https://photography.hsiu.soy

這是一個用來展示我個人攝影作品的網站

專案目的

建立這個網站的主要目的是提供一個簡潔、專注的平台,來存放與分享我的攝影創作。

這個專案在設計時特別著重自動化簡化流程,減少手動操作與重複性工作。

架構特色

1. 內容與程式碼分離

所有作品的資訊(描述、標籤、拍攝參數等)都獨立於網站程式碼之外進行管理,採用結構化的資料格式儲存。

2. 自動化工作流程

從上傳照片到網站發佈,整個流程高度自動化:

  • 自動讀取相機資訊:上傳新照片後,系統會自動讀取 EXIF 元數據(光圈、快門、ISO、焦距、相機型號等),無需手動填寫這些技術參數
  • 智能合併機制:自動化過程不會覆蓋已手動編輯的內容,確保人工修改的描述和標籤不會遺失
  • 自動部署流程:內容更新後會自動觸發網站重新部署,讓新作品即時上線

3. 視覺化內容管理系統

透過整合的後台管理介面(Sveltia CMS),可以在不撰寫程式碼的情況下管理所有內容:

  • 直覺的操作介面:拖曳上傳圖片、所見即所得的編輯器
  • 結構化的內容編輯:系統化地管理作品描述、標籤、發佈狀態等
  • 即時預覽:編輯時可以即時查看內容效果
  • 零成本運行:後台系統基於 Git 運作,無需額外的伺服器或訂閱費用

4. 現代化網頁體驗

網站使用 Nuxt.js:

  • 靜態生成
  • 響應式設計
  • 流暢動畫
  • 全螢幕瀏覽

技術特點

雖然這是一個相對簡單的個人專案,但在技術選擇上有幾個值得一提的特色:

  • 免資料庫設計:採用檔案式的內容管理,避免了傳統資料庫的複雜性與維護成本
  • Git-based CMS:所有內容變更都透過 Git 進行版本控制,安全且透明
  • 全自動化部署:從程式碼提交到網站上線,整個 CI/CD 流程完全自動化
  • TypeScript 開發:使用型別安全的程式語言,減少潛在錯誤

總結

這個專案不僅是一個作品展示平台,也是我探索如何用程式簡化創作流程的實驗。透過精心設計的自動化機制,我可以將絕大部分精力放在攝影本身,而非網站的日常維護上。

如果你也是一位攝影愛好者,希望這個專案能為你提供一些靈感。