Notion Page 轉換 Markdown (Hugo)

Jacky | Aug 6, 2022 min read

此內容由 Notion 編輯並經由 Notion API 自動轉成 Hugo 頁面
The content write by Notion, and use Notion API convert to Hugo page.

前言

上次文章分享怎麼使用Github來完成自動部署功能,接下來就是研究如何取得Notion文章並存成Markdown。這次還是一樣參考這位大神的Repo來實現,雖然我有做一些修改,但是絕大部分都是原作者的內容,所以這次主要分享我參考哪些部分。

個人修改過程

首先,我在本機自行建立環境,並把他的Python程式碼做點修改

  • 改成可以輸入由本機端輸入參數進行測試,而不是讀取Github Action參數。

  • 實測發現使用最新的Notion API會有問題,沒有辦法獲取文章內容,主要是API使用的key名稱有做修改。

  • 由於轉出來的Markdown必須給Hugo進行轉換,所以需要添加Header,但是我的Hugo主題與作者不同,因此進行修改。

  • 也需要配合Notion Database的項目

確認程式的部分之後,接著測試github action的功能,原作者是將python程式放到PyPi,等到觸發action時docker會自動安裝他寫的library,但是我並沒有這樣做,而且我也有自己寫一些檔案,所以就研究怎麼修改docker環境配置,花了一些時間在github測試後,最終得到一個可以自動把文章保存在github的action。

關於Notion圖片處理的部分,這其實我花了一些時間測試,因為作者是將圖片存在其他Repo,但我希望直接存在原來Repo,雖然作者有提供相關function,但是他的方式是直接統一存放在某個地方,這方式不是我要的,所以這部分也花了一些時間,最終得到的效果是能將圖片隨著文章日期進行分類。

以上完成之後,在搭配先前的Hugo Deploy Github Action,即可完成自動部署。這樣就可以把Notion文章抓下來後直接發布到Hugo,類似一個簡易後台文章管理。

有一點要注意,要能取得Notion文章,必須要分享給Notion API

最終完成的 GitHub Action:

jacky10001/notion2md_to_hugo: Notion Page 轉換 Markdown (Hugo) (github.com)

參考

comments powered by Disqus