部署Notion Blog到Cloudflare

設定

  1. 建立 Notion 集成

訪問 Notion 集成
建立一個“新整合”,並記下內部整合令牌

確認創建的整合對內容具有唯讀權限

  1. 準備 Notion 資料庫

建立一個用於管理部落格文章的資料庫,並設定以下屬性:

屬性名稱 類型 描述

標題 文章標題

已發布複選框 發布標誌

首次發布日期 發布日期(清單排序鍵)

最後編輯時間由 Notion 自動分配,因此無需設定。

資料庫 ID 可從以下 URL 取得:

https://www.notion.so/<workspace>/<DATABASE_ID>?v=...

^^^^^^^^^^^^^

  1. 項目設定

npm install

建立 .env 文件

cp .env.example .env

設定 NOTION_TOKEN 和 NOTION_DATABASE_ID

開發伺服器

npm run dev

建置和預覽

npm run build

npm run preview

  1. 站點資訊設定

網站資訊可透過環境變數(astro.config.mjs)覆蓋。

環境變數 預設值 用途

SITE_NAME 備註 網站名稱

SITE_DESCRIPTION 用於發布 Notion 的網站(類似部落格) 網站描述

SITE_AUTHOR 作者 作者姓名(頁尾/oEmbed 中的 Author_name)

SITE_COPYRIGHT_YEAR 建構執行年份 頁腳版權聲明年份

SITE_URL https://your-blog.pages.dev 公共網域(用於規範 URL/OGP/oEmbed URL)

  1. 部署到 Cloudflare Pages

GitHub - windyakin/note: Notion + Astro + Cloudfla…

將程式碼庫推送到 GitHub

Cloudflare 控制面板 → Pages → “建立專案”

連接 Git 程式碼庫

建置設定:

框架預設:Astro

建置指令:npm run build

建置輸出目錄:dist

將 NOTION_TOKEN / NOTION_DATABASE_ID 設定為環境變量

部署
自動反映建置中的文章更新

Cloudflare Worker 包含在 worker/ 目錄下。一個定時任務(預設間隔 5 分鐘)會檢查 Notion 資料庫,如果頁面集或 last_edited_time 有任何變化,則會觸發頁面部署鉤子來啟動建置。