部署Notion Blog到Cloudflare
設定
- 建立 Notion 集成
訪問 Notion 集成
建立一個“新整合”,並記下內部整合令牌
確認創建的整合對內容具有唯讀權限
- 準備 Notion 資料庫
建立一個用於管理部落格文章的資料庫,並設定以下屬性:
屬性名稱 類型 描述
標題 文章標題
已發布複選框 發布標誌
首次發布日期 發布日期(清單排序鍵)
最後編輯時間由 Notion 自動分配,因此無需設定。
資料庫 ID 可從以下 URL 取得:
https://www.notion.so/<workspace>/<DATABASE_ID>?v=...
^^^^^^^^^^^^^
- 項目設定
npm install
建立 .env 文件
cp .env.example .env
設定 NOTION_TOKEN 和 NOTION_DATABASE_ID
開發伺服器
npm run dev
建置和預覽
npm run build
npm run preview
- 站點資訊設定
網站資訊可透過環境變數(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)
- 部署到 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 有任何變化,則會觸發頁面部署鉤子來啟動建置。