部落格環境設定與維護教學

這篇文章會用最白話的方式,一步一步帶你搞懂這個部落格是怎麼運作的,包含環境安裝、本機預覽、寫文章、部署上線、以及日常維護。

部落格環境設定與維護教學

一、這個部落格是什麼?

這是一個用 Jekyll 建立的靜態網站,託管在 GitHub Pages 上。

簡單來說:

  • Jekyll = 一個把 Markdown 文章自動變成網頁的工具(用 Ruby 寫的)
  • GitHub Pages = GitHub 提供的免費網站空間,把程式碼推上去就自動幫你部署
  • 你只需要寫 Markdown 檔案,Jekyll 會幫你套上版型,變成好看的網頁

二、環境安裝(第一次使用才需要)

第 1 步:安裝 Ruby

Jekyll 是用 Ruby 寫的,所以要先裝 Ruby。

Windows:

  1. RubyInstaller 下載安裝檔
  2. 安裝時勾選「Add Ruby executables to your PATH」
  3. 安裝完成後會跳出一個黑色視窗,直接按 Enter 就好

Mac:

brew install ruby

Linux (Ubuntu/Debian):

sudo apt update
sudo apt install ruby-full build-essential

裝完後,打開終端機確認:

ruby -v

看到版本號就代表成功了。

第 2 步:安裝 Bundler

Bundler 是 Ruby 的套件管理工具,用來安裝專案需要的所有套件。

gem install bundler

第 3 步:安裝專案的依賴套件

進入專案資料夾,執行:

cd YongRui0402.github.io
bundle install

這個指令會根據 Gemfile 裡面列的套件,把所有需要的東西裝好。


三、在本機預覽網站

裝好環境後,用這個指令就能在自己的電腦上跑起來:

bundle exec jekyll serve

然後打開瀏覽器,輸入 http://localhost:4000,就能看到你的部落格了。

每次你修改檔案並存檔,網站會自動重新產生,重新整理瀏覽器就能看到變化。

要停止的話,在終端機按 Ctrl + C


四、專案架構說明

打開專案資料夾,你會看到這些東西:

YongRui0402.github.io/
├── _config.yml          ← 網站的所有設定(標題、作者、外掛...)
├── _posts/              ← 部落格文章放這裡
│   └── 分類名稱/年份/     ← 依照分類和年份建子資料夾
├── _wiki/               ← 知識筆記、快捷鍵參考
├── _layouts/            ← 版型模板(控制頁面長什麼樣)
│   ├── default.html     ← 最外層的框架(header + footer)
│   ├── post.html        ← 文章頁面的版型
│   ├── wiki.html        ← Wiki 頁面的版型
│   └── page.html        ← 一般頁面的版型
├── _includes/           ← 可重複使用的小元件
│   ├── header.html      ← 網站頂部導覽列
│   ├── footer.html      ← 網站底部
│   ├── comments.html    ← 留言功能
│   └── sidebar-*.html   ← 側邊欄元件(搜尋、文章導覽...)
├── _data/               ← 資料檔(用 YAML 格式寫的清單)
│   ├── links.yml        ← 友站連結
│   ├── skills.yml       ← 技能關鍵字
│   └── social.yml       ← 社群帳號連結
├── pages/               ← 固定頁面(關於、分類、連結...)
├── assets/              ← 靜態資源(CSS、JS、圖片)
├── Gemfile              ← 列出需要安裝的 Ruby 套件
├── CNAME                ← 自訂網域設定
└── index.html           ← 首頁

版型是怎麼套的?

所有頁面都會先經過 _layouts/default.html,它負責載入 header.html(上方導覽列)和 footer.html(底部)。

然後根據每篇文章的 layout 設定,再套上對應的版型:

  • 文章 → post.html
  • Wiki → wiki.html
  • 一般頁面 → page.html

就像洋蔥一樣一層包一層:default → post → 你寫的內容


五、怎麼新增一篇文章

第 1 步:建立檔案

_posts/ 底下,依照分類建立資料夾,然後新增一個 Markdown 檔案。

檔名格式一定要是: YYYY-MM-DD-文章標題.md

例如:

_posts/Python/2025/2025-03-29-我的第一篇文章.md

第 2 步:寫 Front Matter(文章設定)

每篇文章開頭都要有這段設定(用三個減號包起來):

---
layout: post
title: '我的第一篇文章'
categories: 'Python'
description: '這篇文章在講什麼'
keywords: Python, 入門
---
欄位 說明
layout 固定填 post
title 文章標題
categories 分類名稱,會顯示在分類頁面
description 簡短描述
keywords 關鍵字(幫助搜尋引擎找到你)

第 3 步:寫文章內容

在 Front Matter 下面,就可以用 Markdown 語法寫內容了:

# 大標題

這是一段普通文字。

## 小標題

- 項目一
- 項目二

​```python
print("Hello World")
​```

第 4 步:本機預覽

bundle exec jekyll serve

打開 http://localhost:4000,確認文章出現在首頁,點進去看看排版是否正確。


六、怎麼新增一篇 Wiki

Wiki 適合放指令整理、快捷鍵筆記這類參考資料。

_wiki/ 底下新增 .md 檔案(Wiki 不需要日期命名):

---
layout: wiki
title: Docker
categories: Docker
description: Docker 常用指令筆記
keywords: Docker, 容器
---

### 常用指令

| 功能         | 指令                |
|:-------------|:-------------------|
| 列出容器     | docker ps          |
| 建立容器     | docker run ...     |

七、部署上線

這是最簡單的部分。因為用的是 GitHub Pages,你只要把程式碼推到 GitHub,網站就會自動更新。

# 1. 把修改加入暫存區
git add _posts/Python/2025/2025-03-29-我的第一篇文章.md

# 2. 建立一個 commit(附上簡短說明)
git commit -m "新增文章:我的第一篇文章"

# 3. 推到 GitHub
git push origin main

推上去後等大約 1~2 分鐘,打開 https://YongRui0402.github.io/ 就能看到更新了。


八、日常維護

修改網站設定

所有設定都在 _config.yml,常見的修改:

想改什麼 改哪裡
網站標題 titlesubtitle
作者資訊 authoremaillocation
導覽列選項 navs 區塊
每頁顯示幾篇 paginate(目前是 8)

注意: 修改 _config.yml 後,需要重新啟動 jekyll serve 才會生效(Ctrl + C 停止,再重新執行)。

修改友站連結

編輯 _data/links.yml

- name: 朋友的部落格
  url: https://example.com/

修改技能關鍵字

編輯 _data/skills.yml

- name: 前端技能
  keywords:
    - HTML
    - CSS
    - JavaScript

刪除文章

直接刪除 _posts/ 底下對應的 .md 檔案,然後推上 GitHub 就好。

更新依賴套件

偶爾可以執行這個指令,讓套件保持在最新版本:

bundle update

九、常見問題

Q:bundle exec jekyll serve 跑不起來? → 試試先執行 bundle install,確保所有套件都有裝好。

Q:改了 _config.yml 但網站沒變?_config.yml 的修改需要重啟 jekyll serve 才會生效。

Q:文章沒有出現在首頁? → 檢查檔名是否符合 YYYY-MM-DD-標題.md 格式,日期不能是未來的日期。

Q:推到 GitHub 後網站沒更新? → 到 GitHub 的 Actions 頁面檢查部署狀態,通常等 1~2 分鐘就好。

Search

    Table of Contents