從 Notion 到部落格 — Notion + AI + API 打造幾秒完成零人工發佈流程

探索如何利用 AI 和 API 技術,實現從 Notion 寫作到部落格自動發布的完整工作流程


自動化部落格工作流 — 只負責輸入想法,其他給電腦去做

起因

我發現寫部落格文章最麻煩的,往往不是創作本身,而是發布的過程。 我在 Notion 裡寫了很多文章,但每次要發布到部落格時,總會遇到各種繁瑣的步驟:需要手動轉換格式、處理圖片(Notion 的圖片網址不能直接用於部落格)、還要思考 article id、content 等 SEO 相關的文字內容。這些瑣碎的工作讓我對更新部落格越來越抗拒,導致部落格長期處於「年久失修」的狀態,文章累積了不少,卻遲遲沒有發布。 更讓人沮喪的是,每次想要更新文章時,我都要重新回憶這些步驟,因為它們太瑣碎了,我根本不想面對這些完整的流程。 心中總是在想著:「如果我能把這些重複性的工作自動化,那該有多好?」但當時的我,對於如何實現這個想法還沒有清晰的思路。直到 AI 工具的出現,才讓我看到了解決這個問題的可能性。說真的,當我第一次看到 AI 能夠理解並轉換格式時,我就知道這條路是對的。

過程

第一階段:AI 輔助轉換格式

AI 工具的出現,讓我看到了解決這個問題的曙光。一開始,我嘗試請 AI 幫忙將 Notion 筆記轉換成適合部落格的文章格式。具體來說,就是讓 AI 讀取 Notion 筆記內容,然後輸出符合部落格欄位格式的 JSON 檔案,包含標題、副標題、描述、內容等欄位。雖然還是需要我手動將這些 JSON 內容貼到後台,但至少省去了格式轉換的麻煩,更新部落格的意願也稍微提升了一些。 這個階段的關鍵突破在於,我發現 AI 不僅能夠理解 Notion 的 Markdown 格式,還能夠根據我提供的規格書(BLOG_PRD),自動生成符合 SEO 最佳化的標題、副標題和描述。這讓我意識到,AI 不只是個轉換工具,它還能幫我優化內容,讓文章更符合搜尋引擎的要求。雖然這個階段還是需要人工介入,但已經大大減少了我的工作量。說實話,光是省去思考 SEO 關鍵字的時間,就讓我輕鬆不少。

第二階段:自動化 API 更新

手動貼文還是太麻煩了。我開始思考:「Strapi 後台不是有 API 可以做 POST 來更新嗎?」於是,我用 Vibe Coding 寫了一個 JavaScript 程式,可以讀取 JSON 檔案並自動透過 API 更新到 Strapi 後台。這個程式運作得很順利,結合上一步的 AI 轉換,我終於實現了從 Notion 筆記直接更新到 Strapi 後台的半自動化流程。 這個階段的關鍵在於理解 Strapi 的 GraphQL API 結構。我需要確保生成的 JSON 檔案格式完全符合 Strapi 的要求,包括正確的資料型別、必要的欄位,以及正確的時間格式。透過 Vibe Coding 的協助,我很快就寫出了一個能夠正確呼叫 GraphQL Mutation 的腳本。當我第一次看到文章自動出現在 Strapi 後台時,那種成就感是難以言喻的。這讓我意識到,自動化不僅能節省時間,還能帶來心理上的滿足感。看著系統自動完成那些我原本要花很多時間處理的工作,真的很有成就感。

第三階段:解決圖片問題

雖然文章可以自動更新了,但還有一個問題沒解決:圖片。Notion 的圖片網址不能直接用於部落格,以前我都要額外上傳到其他圖庫平台,這個步驟既麻煩又容易出錯。後來我想通了,根本不用這麼麻煩,我直接把圖片 Host 在部落格本機上(Vercel)就好了。 於是,我補上了 Notion 圖片轉存到本地端的自動流程,將這個自動化更新部落格文章的「最後一哩路」給補上了。 圖片處理的流程其實比我想像的複雜一些。我需要從 Notion 的圖片 URL 中提取實際的圖片連結,然後使用 curl 下載到本地,接著更新文章中的圖片連結指向本地檔案。這個過程需要處理各種邊界情況,比如圖片格式不同、URL 結構不同等。但最終,我還是成功實現了這個功能。現在,當系統處理文章時,它會自動下載所有圖片到本地,並更新文章中的連結,完全不需要我手動介入。這真的省了我很多時間,以前光是處理圖片就要花掉不少時間。

結果

經過這三個階段的優化,我建立了一套完整的自動化工作流程,從 Notion 筆記到部落格發布,幾乎不需要人工介入。整個流程如下:

完整工作流程

workflow.png

流程步驟說明

  1. 獲取 Notion 文章內容
    • 使用 Notion MCP 的 fetchNotionPage 工具,輸入 Notion 頁面 URL
    • 自動獲取頁面標題、內容(Markdown 格式)、建立時間等完整資訊
  2. 格式化文章內容
    • 根據 BLOG_PRD 規格書自動整理文章格式
    • 自動生成 SEO 最佳化的 Article ID(小寫字母和連字符,包含關鍵字,50 字以內)
    • 優化標題,加入主要關鍵字(60 字以內)
    • 生成副標題,補充說明主標題並包含次要關鍵字(100 字以內)
    • 生成文章描述,約 50 字,包含主要關鍵字
    • 整理內容結構,確保有清晰的引言、主體和結論段落
    • 處理圖片:將 Notion 圖片下載到本地,並更新文章中的圖片連結
  3. 生成 JSON 檔案
    • 將格式化後的文章儲存為 JSON 檔案
    • 檔案路徑:blog/docs/\{articleId\}.json
    • 包含所有必要欄位:title、subTitle、content、description、articleId、publishedAt
  4. 建立 Strapi 文章
    • 執行 create-article-script.js 腳本
    • 透過 GraphQL API 將文章建立到 Strapi CMS
    • 自動設定發布時間和相關屬性
  5. 觸發網站重新生成
    • 自動觸發 Vercel Webhook
    • 重新生成部落格網站,讓新文章立即上線

實際效果

現在,我只需要在 Notion 中完成文章寫作,然後提供 Notion 頁面 URL,整個流程就會自動執行。從內容獲取、格式轉換、圖片處理,到最終發布,全部由系統自動完成。這讓我能夠專注在內容創作上,而不需要分心處理技術性的發布流程。 這個自動化流程帶來的改變是巨大的。以前,我可能需要花上數十分鐘來處理一篇文章的發布,現在只需要幾秒鐘就能完成。更重要的是,它消除了我對更新部落格的心理障礙。以前我會因為發布流程太麻煩而拖延更新,現在我只需要專注在寫作上,發布的事情交給系統就好。這讓我的部落格更新頻率大幅提升,也讓我能夠更專注在內容品質上。說真的,這種感覺真的很棒,就像有個助手幫你處理所有瑣事一樣。

技術架構

整個系統的技術架構相當簡潔。核心是使用 Notion MCP(Model Context Protocol)來獲取 Notion 內容,然後透過 AI 進行格式轉換和優化,最後使用 GraphQL API 更新到 Strapi。圖片處理則是在格式轉換過程中同步進行,確保所有資源都能正確處理。整個流程設計得相當模組化,每個步驟都可以獨立測試和優化,這讓未來的擴展變得更容易。如果你也想建立類似的系統,這個架構應該能給你一些靈感。

有待優化之處

雖然目前的流程已經相當自動化,但還有一個環節需要人工處理:封面圖片。目前封面圖片都還是人工處理,所以透過自動化流程發布的那些文章,大多還沒有封面圖片。我希望未來可以串上自動生圖的流程,讓系統能夠根據文章內容自動生成合適的封面圖片,以達到部落格文章完全全自動更新的終極目標。 除了封面圖片,還有一些其他的優化空間。比如,我可以加入自動標籤功能,讓系統根據文章內容自動生成相關標籤。或者,我可以加入自動摘要功能,讓系統能夠從文章中提取關鍵資訊,生成更精準的描述。甚至,我可以考慮加入多語言支援,讓系統能夠自動將文章翻譯成其他語言。這些都是未來可以探索的方向。說實話,每次想到這些可能性,我就覺得很有趣,還有很多可以探索的空間。

未來展望

我的終極目標是建立一個完全自動化的內容發布系統。在這個系統中,我只需要在 Notion 中寫好文章,系統就會自動處理所有後續工作:格式轉換、SEO 優化、圖片處理、封面生成、標籤分類、多語言翻譯,甚至自動推廣到社群媒體。這聽起來像是科幻小說中的場景,但隨著 AI 技術的不斷發展,我相信這個目標在不久的將來就能實現。到時候,我們真的可以做到「只負責輸入想法,其他給電腦去做」。 目前的自動化流程已經讓我節省了大量的時間和精力,也讓我能夠更專注在內容創作上。這不僅提升了我的工作效率,也提升了我的創作品質。我相信,隨著技術的不斷進步,我們都能夠建立屬於自己的自動化工作流程,讓電腦幫我們處理那些重複性的工作,而我們則可以專注在更有創造性和價值的事情上。如果你也在思考如何自動化自己的工作流程,希望這篇文章能給你一些啟發。