GitHub Pages 完整指南:從零建立專業靜態網站

🌏 Read this
article in English


Table of Contents

GitHub Pages
完整指南:從零建立專業靜態網站

目錄


GitHub Pages 適合我嗎?

快速自我檢測

你適合使用 GitHub Pages 如果:

  • ✅ 想建立個人作品集網站展示專案
  • ✅ 需要技術文件或專案說明頁面
  • ✅ 想寫技術部落格但不想處理伺服器
  • ✅ 會基本 HTML/CSS,或願意學習 Markdown
  • ✅ 希望完全免費且不用擔心流量問題

你可能不適合 GitHub Pages 如果:

  • ❌ 需要資料庫功能(使用者註冊、留言系統)
  • ❌ 需要後端處理(表單提交、即時聊天)
  • ❌ 需要電商功能(購物車、金流處理)
  • ❌ 文章數量超過 100 篇且在意建置速度

三種方案快速比較

方案 適合誰 優點 缺點 推薦度
純 HTML 手寫 完全新手 最簡單,立即上線 維護困難,每次修改都要改所有頁面 ⭐⭐
Jekyll 主題套用 前端新手 開箱即用,維護簡單 需要學習基礎 Markdown 與 YAML ⭐⭐⭐⭐⭐
進階框架 (Hugo/Astro) 有經驗開發者 建置速度快,功能強大 學習曲線陡峭,需要 Terminal 操作 ⭐⭐⭐

推薦路線: 新手從 Jekyll
主題開始,累積經驗後再考慮進階框架。

真實成本分析

完全免費包含:

  • ✅ 無限流量(每月 100GB 軟限制)
  • ✅ 自動 HTTPS 加密
  • ✅ 1GB 儲存空間
  • ✅ 自訂域名支援

何時該考慮替代方案:

你的需求 GitHub Pages 建議替代方案
純展示作品集 ✅ 完美適合
技術部落格(<100 篇) ✅ 適合
技術部落格(>100 篇) ⚠️ 可用但慢 Hugo + Netlify
需要聯絡表單 ⚠️ 需外掛服務 Formspree(免費)
需要使用者登入 ❌ 不支援 Firebase + Netlify
電商網站 ❌ 不支援 Shopify / WooCommerce
需要 CMS 後台 ⚠️ 可外掛 Netlify CMS / Forestry

說明:

  • ✅ = 開箱即用
  • ⚠️ = 可以做到,但需要整合第三方服務
  • ❌ = 不適合,建議其他方案

10 分鐘快速上手

情境 A:展示靜態 HTML(最基礎)

適合: 已有 HTML 檔案,只想快速上線

步驟:

  1. 建立 Repository
    • 登入 GitHub
    • 點擊右上角「+」→「New repository」
    • Repository
      名稱填入:你的帳號名稱.github.io(例:yourname.github.io
    • 選擇「Public」
    • 勾選「Add a README file」
    • 點擊「Create repository」
  2. 上傳你的 HTML
    • 進入 repository 頁面
    • 點擊「Add file」→「Upload files」
    • 拖曳你的 index.html 和其他檔案
    • 點擊「Commit changes」
  3. 完成!
    • 等待 1-2 分鐘
    • 開啟 https://你的帳號名稱.github.io
    • 你的網站已上線

預估時間: 5 分鐘


情境 B:使用 Jekyll
主題(推薦路線)⭐

適合: 想要專業外觀,但不想從零設計

步驟:

1. 選擇主題

我們推薦 3 個精選主題:

選項 1:Minimal Mistakes(最推薦)
適合:工程師作品集、技術部落格 – 風格:現代、專業、可高度客製化 –
Demo:https://mmistakes.github.io/minimal-mistakes/
– 特色:響應式設計、支援搜尋、社群分享

選項 2:al-folio(學術風格)
適合:研究人員、博士生、學術展示 – 風格:簡潔、學術、多語言支援 –
Demo:https://alshedivat.github.io/al-folio/
– 特色:出版品列表、專案展示、CV 支援

選項 3:Beautiful Jekyll(最簡單)
適合:完全新手、個人部落格 – 風格:清爽、易讀、設定簡單 – Demo:https://beautifuljekyll.com/
特色:5 分鐘完成設定、豐富文件

2. Fork 主題(以 Minimal
Mistakes 為例)

  1. 開啟主題的 GitHub 頁面
  2. 點擊右上角「Fork」
  3. 將 repository 名稱改為 你的帳號名稱.github.io
  4. 點擊「Create fork」

3. 啟用 GitHub Pages

  1. 進入你 fork 的 repository
  2. 點擊「Settings」→「Pages」
  3. 在「Source」選擇「Deploy from a branch」
  4. 選擇「main」或「master」分支
  5. 點擊「Save」

4. 修改基本資訊

找到並編輯 _config.yml 檔案(點擊檔案名稱 →
點擊鉛筆圖示編輯):

# 只需修改這 5 個欄位
title: "你的名字"
name: "你的全名"
description: "一句話介紹自己"
url: "https://你的帳號名稱.github.io"
baseurl: ""

點擊「Commit changes」儲存。

5. 測試網站

等待 2-3 分鐘,開啟
https://你的帳號名稱.github.io,你的網站已上線!

預估時間: 15-20 分鐘


快速上手檢查清單

完成以下步驟,你的網站就上線了!

第一階段:建立基礎(預估 30 分鐘)

第二階段:加入內容(預估 1-2 小時)

第三階段:優化(選做,預估 2-4 小時)


內容維護實戰

新增文章的三種方式(由易到難)

方式一:GitHub
網頁編輯(推薦新手)⭐

適合: 不想安裝軟體,偶爾更新內容

步驟:

  1. 開啟 GitHub repository
  2. 進入 _posts 資料夾
  3. 點擊「Add file」→「Create new file」
  4. 檔名格式:YYYY-MM-DD-標題.md(例:2025-01-15-my-first-post.md
  5. 貼上以下內容:
---
layout: post
title: "我的第一篇文章"
date: 2025-01-15
categories: blog
---

這是我的第一篇文章內容。

## 小節標題

你可以使用 Markdown 語法撰寫內容。
  1. 點擊「Commit changes」
  2. 等待 1-2 分鐘自動部署完成

優點: 不需安裝任何軟體,隨時隨地可編輯
缺點: 無法即時預覽,需要等待部署


方式二:GitHub
Desktop(視覺化工具)

適合: 想在本機編輯,但不熟悉 Git 指令

步驟:

  1. 下載 GitHub Desktop
  2. Clone Repository 到本機
    • 開啟 GitHub Desktop
    • File → Clone Repository
    • 選擇你的 username.github.io
    • 選擇儲存位置
    • 點擊「Clone」
  3. 修改檔案
    • 用你喜歡的編輯器(如 VS Code、Sublime Text)修改檔案
    • 新增文章到 _posts 資料夾
  4. 提交變更
    • 回到 GitHub Desktop
    • 左下角填入 commit 訊息(如:「新增文章:我的專案介紹」)
    • 點擊「Commit to main」
    • 點擊「Push origin」
  5. 完成
    • 等待 1-2 分鐘自動部署

優點: 可本機預覽、批次修改多個檔案
缺點: 需要安裝軟體


方式三:Git 指令(進階使用者)

適合: 熟悉 Terminal,想要完整控制

# Clone repository
git clone https://github.com/你的帳號名稱/你的帳號名稱.github.io.git
cd 你的帳號名稱.github.io

# 新增文章
nano _posts/2025-01-15-my-post.md

# 提交變更
git add .
git commit -m "新增文章:我的專案介紹"
git push

提示:
新手建議先用方式一,熟悉流程後再考慮方式二。


常見內容更新場景

場景 1:修改個人簡介

檔案位置: _config.yml
about.md(依選用主題而定)

步驟:

  1. 找到檔案並編輯
  2. 修改 descriptionbio 欄位
  3. 儲存並 commit

**範例(_config.yml):**

author:
  name: "你的名字"
  bio: "前端工程師 / 開源貢獻者 / 技術寫作者"
  location: "台北, 台灣"
  links:
    - label: "GitHub"
      url: "https://github.com/你的帳號"

場景 2:新增作品展示

檔案位置: 建立 _portfolio 資料夾(或
_posts

步驟:

  1. _portfolio 資料夾中新增 Markdown 檔案
  2. 填入專案資訊(標題、描述、連結等)
  3. 儲存並 commit

**範例檔案(_portfolio/project-name.md):**

---
title: "專案名稱"
excerpt: "專案簡短描述(一句話)"
header:
  teaser: /assets/images/project-screenshot.png
tags:
  - React
  - TypeScript
  - Firebase
---

## 專案概述

這個專案解決了...

## 技術堆疊

- **前端:** React, TypeScript, Tailwind CSS
- **後端:** Firebase Functions
- **部署:** Vercel

## 專案連結

- [Live Demo](https://your-project.com)
- [GitHub Repository](https://github.com/你的帳號/專案名稱)

## 專案截圖

![專案首頁](/assets/images/project-home.png)

## 遇到的挑戰與解決方案

1. **效能優化**:使用 React.memo 減少不必要的 re-render
2. **狀態管理**:採用 Zustand 簡化複雜狀態邏輯

場景 3:調整導航選單

檔案位置: _config.yml
_data/navigation.yml

範例(navigation.yml):

main:
  - title: "關於我"
    url: /about/
  - title: "作品集"
    url: /portfolio/
  - title: "部落格"
    url: /blog/
  - title: "聯絡我"
    url: /contact/

場景 4:更換主題風格

檔案位置: _config.yml

範例:

# Minimal Mistakes 主題提供多種配色
minimal_mistakes_skin: "default" # 可選:air, aqua, contrast, dark, dirt, neon, mint, plum, sunrise

修改後儲存,等待重新部署即可看到新配色。


Markdown
快速上手(只教必要的)

80% 需求只需這些語法:

# 標題 1(最大)
## 標題 2
### 標題 3

**粗體文字**
*斜體文字*

[連結文字](https://example.com)

![圖片說明](/assets/images/photo.jpg)

- 項目符號 1
- 項目符號 2

1. 編號清單 1
2. 編號清單 2

程式碼區塊(技術部落格必備):

def hello_world():
    print("Hello, GitHub Pages!")

更多進階語法: Markdown Guide


真實案例分析

案例 1:前端工程師作品集

網站: Brittany Chiang

使用技術: – GitHub Pages – 自訂 HTML/CSS(非
Jekyll) – 響應式設計

內容結構:首頁: Hero Section +
精選 3 個專案 – About: 個人簡介 + 技能標籤(React,
TypeScript, Node.js) – Projects: 6
個代表專案,每個包含: – 專案截圖 – 技術堆疊 – GitHub repo 連結 – Live
Demo 連結 – Contact: Email + LinkedIn + GitHub

值得學習的地方: – ✅ 極簡設計,專注內容 – ✅
互動效果流暢(滑鼠移入效果) – ✅ 專案說明簡潔(3 句話:問題 → 解決方案
→ 成果) – ✅ 行動裝置優化完善

建置時間估計: 首次建置 4 小時 + 內容填寫 6 小時


案例 2:開源專案文件

網站: Vue.js
Documentation
(早期使用 GitHub Pages)

使用技術: – VuePress(基於 Vue.js
的靜態網站生成器) – GitHub Pages 部署 – 多語言支援

內容結構:Guide: 逐步教學文件 –
API Reference: 完整 API 說明 –
Examples: 互動式範例 – Migration
Guide:
版本升級指南

值得學習的地方: – ✅ 左側導航清晰(文件網站必備) –
✅ 搜尋功能強大(使用 Algolia DocSearch) – ✅ 程式碼範例可複製 – ✅
暗色模式支援

適用場景: 如果你的專案需要完整文件,VuePress 或
Docusaurus 比 Jekyll 更適合。


案例 3:個人技術部落格

網站: Dan
Abramov’s Overreacted

使用技術: – Gatsby(React 靜態網站生成器) – GitHub
Pages 部署 – Markdown 撰寫

內容結構:首頁:
文章列表(依時間排序) – 文章頁:
深度技術文章(2000-5000 字) – About: 極簡個人簡介 –
RSS Feed: 支援訂閱

值得學習的地方: – ✅ 內容為王(沒有多餘設計元素) –
✅ 閱讀體驗優化(字體大小、行距、寬度) – ✅
文章結構清晰(標題、程式碼、結論) – ✅ SEO 優化完善(每篇文章都有 meta
description)

啟示:
好的技術部落格不需要花俏設計,專注內容品質更重要。


三個案例的共同特點

特點 案例 1 作品集 案例 2 文件 案例 3 部落格
載入速度 < 1 秒 < 2 秒 < 1 秒
行動優化 ✅ 完美 ✅ 完美 ✅ 完美
SEO 設定 ✅ 有 ✅ 完整 ✅ 完整
自訂域名 ✅ 有 ✅ 有 ✅ 有
更新頻率 每季更新 每週更新 每月 2-4 篇

結論: 無論哪種類型,成功的 GitHub Pages
網站都重視:速度、行動優化、內容品質。


進階優化(選讀)

自訂域名設定

username.github.io 改成
blog.yourname.com

步驟 1:購買域名

  • 推薦:Cloudflare
    Registrar
    (價格透明、無隱藏費用)
  • 其他選擇:Namecheap、GoDaddy、Gandi

步驟 2:設定 DNS

在域名商的 DNS 設定頁面新增以下記錄:

類型: A
名稱: @
值: 185.199.108.153

類型: A
名稱: @
值: 185.199.109.153

類型: A
名稱: @
值: 185.199.110.153

類型: A
名稱: @
值: 185.199.111.153

類型: CNAME
名稱: www
值: 你的帳號名稱.github.io

步驟 3:GitHub 設定

  1. 進入 repository
  2. Settings → Pages
  3. 在「Custom
    domain」填入你的域名(如:blog.yourname.com
  4. 點擊「Save」
  5. 勾選「Enforce HTTPS」(等待 DNS 生效後,約 10-30 分鐘)

常見錯誤排解

錯誤 1:DNS_PROBE_FINISHED_NXDOMAIN – 原因:DNS
尚未生效 – 解決:等待 24-48 小時(通常 1 小時內即可)

錯誤 2:HTTPS 無法啟用 – 原因:DNS 記錄不正確 –
解決:檢查 A 記錄是否正確,確認 CNAME 指向
username.github.io


SEO 基礎優化

1. 自動生成 sitemap.xml

Jekyll 預設會自動生成,確認 _config.yml 有以下設定:

plugins:
  - jekyll-sitemap

驗證方式:開啟 https://你的網站/sitemap.xml

2. Google Search Console 設定

  1. 前往 Google
    Search Console
  2. 新增資源 → 輸入你的網站 URL
  3. 驗證擁有權(選擇「HTML 標籤」方式最簡單)
  4. 將驗證碼加入 _includes/head.html
    <head> 區段
  5. 提交 sitemap:https://你的網站/sitemap.xml

3. 社群分享預覽圖(Open Graph)

在每篇文章的 front matter 加入:

---
title: "文章標題"
image: /assets/images/og-image.jpg
description: "這篇文章的簡短描述(120-160 字)"
---

確認主題的 _includes/head.html 包含以下 meta 標籤:

<meta property="og:title" content="{{ page.title }}" />
<meta property="og:description" content="{{ page.description }}" />
<meta property="og:image" content="{{ site.url }}{{ page.image }}" />
<meta property="og:url" content="{{ site.url }}{{ page.url }}" />

效能優化

1. 圖片壓縮建議

工具:TinyPNG(線上壓縮) – ImageOptim(Mac 應用程式) – Squoosh(Google 開源工具)

建議: – 專案截圖:寬度 1200px,JPG 品質 85% – Open
Graph 圖片:1200x630px,< 200KB – 頭像:400x400px,< 100KB

2. CDN 加速(Cloudflare
免費方案)

  1. 註冊 Cloudflare
  2. 新增你的網站
  3. 將域名 DNS 改為 Cloudflare 提供的 nameservers
  4. 啟用以下功能:
    • Auto Minify(自動壓縮 HTML/CSS/JS)
    • Brotli 壓縮
    • Browser Cache TTL

效果: 全球載入速度提升 30-50%

3. 延遲載入技巧

在圖片標籤加入 loading="lazy"

<img src="/assets/images/photo.jpg" alt="描述" loading="lazy">

Markdown 中則需要用 HTML 語法:

<img src="/assets/images/photo.jpg" alt="描述" loading="lazy">

GitHub Actions 自動化(進階)

自動部署流程範例:

建立 .github/workflows/deploy.yml

name: Deploy to GitHub Pages

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Setup Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: '3.1'
          bundler-cache: true

      - name: Build site
        run: bundle exec jekyll build

      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./_site

功能: 每次 push 到 main 分支時自動建置並部署。


常見問題 FAQ

Q1: 修改內容後沒有立即生效?

原因: 瀏覽器快取或 GitHub Pages 尚未完成部署

解決方法: 1. 強制重新整理頁面(Ctrl+F5 或
Cmd+Shift+R) 2. 開啟無痕視窗測試 3. 檢查 repository
的「Actions」頁面,確認部署完成(綠色勾勾) 4. 通常部署需要 1-3 分鐘


Q2: 出現 404 Not Found 錯誤?

可能原因與解決方法:

原因 1:Repository 名稱錯誤 – 確認 repository 名稱是
你的帳號名稱.github.io(全小寫) – 範例:如果帳號是
JohnDoe,repository 應該是
johndoe.github.io

原因 2:GitHub Pages 未啟用 – 進入 Settings → Pages
– 確認「Source」已設定為正確分支(通常是 main

原因 3:檔案名稱錯誤 – 首頁檔案必須命名為
index.htmlindex.md – 文章檔案格式必須是
YYYY-MM-DD-標題.md


Q3: 如何客製化 CSS 樣式?

方法: 建立自訂 CSS 檔案並覆蓋主題樣式

步驟:

  1. 建立 /assets/css/custom.css
  2. 寫入你的自訂樣式:
/* 修改主標題顏色 */
h1 {
  color: #2c3e50;
}

/* 修改連結顏色 */
a {
  color: #3498db;
}

/* 修改程式碼區塊背景 */
pre {
  background-color: #f8f9fa;
  border-radius: 4px;
}

  1. _includes/head-custom.html(或主題對應檔案)加入:
<link rel="stylesheet" href="{{ '/assets/css/custom.css' | relative_url }}">

Q4: 可以使用 Google
Analytics 追蹤流量嗎?

可以! Jekyll 主題通常內建 Google Analytics
支援。

設定方法:

  1. 取得 Google Analytics 追蹤 ID(格式:G-XXXXXXXXXX
    UA-XXXXXXXXX-X
  2. _config.yml 加入:
# Google Analytics
google_analytics: G-XXXXXXXXXX
  1. 重新部署後,等待 24 小時即可在 Google Analytics 看到資料

Q5: 如何新增留言功能?

GitHub Pages
本身不支援留言功能,但可以整合第三方服務:

選項 1:Disqus(最簡單)

  1. 註冊 Disqus
  2. 建立一個 site(取得 shortname)
  3. _config.yml 加入:
disqus:
  shortname: 你的-shortname
  1. 確認主題有啟用 Disqus(Minimal Mistakes 預設支援)

選項 2:giscus(開源、隱私友善)

使用 GitHub Discussions 作為留言系統:

  1. 前往 giscus.app
  2. 按照步驟設定
  3. 將生成的程式碼加入 _layouts/post.html

選項 3:Utterances(極簡風格)

使用 GitHub Issues 作為留言系統:

  1. 前往 utteranc.es
  2. 按照步驟設定
  3. 將生成的 script 加入文章頁面

Q6: 如何備份我的網站?

GitHub
本身就是版本控制系統,你的所有內容都已經備份在雲端!

額外保險:

  1. 本機備份: 使用 Git clone 下載到本機

    git clone https://github.com/你的帳號/你的帳號.github.io.git
  2. 定期匯出:
    每季將重要內容(如文章、圖片)匯出到外部硬碟

  3. 多平台備份: 使用 GitHub Desktop
    同步,確保本機與遠端一致


Q7: 可以使用自己的
CSS 框架(如 Tailwind CSS)嗎?

可以! 但需要設定建置流程。

簡易方法(使用 CDN):

_includes/head.html 加入:

<script src="https://cdn.tailwindcss.com"></script>

專業方法(本機建置):

  1. 安裝 Tailwind CSS

    npm install -D tailwindcss
    npx tailwindcss init
  2. 設定 tailwind.config.js

    module.exports = {
      content: [
        './_layouts/**/*.html',
        './_includes/**/*.html',
        './_posts/*.md',
      ],
      theme: {},
      plugins: [],
    }
  3. 建立 GitHub Actions workflow 自動編譯 CSS


Q8: 網站速度慢怎麼辦?

診斷工具:

  1. PageSpeed Insights
  2. GTmetrix

常見優化方法:

問題 解決方法
圖片太大 壓縮圖片、使用 WebP 格式
載入資源過多 移除不必要的 JavaScript 外掛
沒有快取 使用 Cloudflare CDN
CSS/JS 未壓縮 啟用 GitHub Actions 自動 minify
自訂字型太大 使用系統字型或僅載入需要的字重

目標: – PageSpeed Insights 分數 > 90 –
首次載入時間 < 2 秒


總結

關鍵重點回顧

  1. GitHub Pages 適合誰:
    前端新手、想建立作品集、技術部落格的開發者
  2. 最快上手路徑: 使用 Jekyll 主題(如 Minimal
    Mistakes),30 分鐘完成基礎架構
  3. 內容維護: 新手用 GitHub 網頁編輯,熟悉後使用
    GitHub Desktop
  4. 進階優化: 自訂域名、SEO、CDN
    加速都是選做項目,優先專注內容品質

下一步建議

初學者(第 1-2 週): 1. 完成快速上手檢查清單 2.
新增 3-5 個專案展示 3. 撰寫 About 頁面 4. 測試手機版顯示

進階(第 1 個月): 1. 自訂域名(如果有需要) 2.
設定 Google Analytics 3. 優化 SEO(sitemap、meta description) 4. 學習
Markdown 進階語法

長期維護(3 個月以上): 1.
定期更新作品集(每季至少一次) 2. 撰寫技術文章(每月 1-2 篇) 3.
監控網站流量與優化 4. 考慮是否需要更進階工具(Hugo、Gatsby)


推薦學習資源

官方文件:GitHub Pages 官方文件Jekyll 官方文件(中文)Markdown Guide

主題市場:Jekyll ThemesGitHub.com/topics/jekyll-theme

社群支援:GitHub Community ForumStack
Overflow – GitHub Pages
Reddit – r/github


Leave a Comment