Notion 是區塊編輯器,不是 Markdown 編輯器

重點摘要
  • Markdown 在 Notion 裡只是輸入捷徑,不是儲存格式,所以沒有原始碼檢視可以打開。
  • > 加空白鍵產生的是切換清單,不是引用區塊;引用區塊要用雙引號。
  • Notion 的標題只有三層,#### 以下在匯入時會被壓成標題 3。
  • 表格、註腳與原始 HTML 是三個穩定會失敗的匯入項目:先移除,之後用原生區塊重建。

頁面上的一切都是區塊

段落、標題、待辦,全都是區塊(block),各自存在 Notion 自己的資料庫裡,帶有識別碼、顏色與權限。Markdown 則是相反的想法:加上少量標點約定的純文字,存在一個屬於你的檔案裡。

Markdown 是一道門,不是一個容器

兩者只在一個地方交會。Notion 把 Markdown 當成輸入方式:在行首輸入 ## 就會變成標題區塊,同一瞬間你打的字元也消失了。頁面背後沒有任何 ## 被保存,也沒有原始碼檢視可以切換,因為根本沒有原始碼。

所以 Markdown 是內容進來的方式,也是出去的其中一種格式,卻從來不是 Notion 中間握著的東西。真正握著 Markdown 的工具會交給你一個檔案,Obsidian 每一則筆記都是這樣。

為什麼這一件事就能解釋大半疑問

幾乎所有關於 Notion 與 Markdown 的困惑,都收束成同一句話:字元在抵達的當下就用掉了。沒有原始碼檢視、匯出必然有損、貼進去的文件有時完全走樣,原因都在這裡。記住這句,後面的內容就順著讀得下去。

插圖:Markdown 符號被吸進層層堆疊的 Notion 內容區塊,原始文字隨之消失

邊打字邊轉換的輸入捷徑

Notion 的捷徑分成兩類。區塊捷徑要在空白行的開頭輸入標記再按空白鍵才會觸發;行內捷徑則在你打完第二組符號的當下生效。

區塊層級捷徑

# + 空白鍵       →  標題 1
## + 空白鍵      →  標題 2
### + 空白鍵     →  標題 3
- + 空白鍵       →  符號清單
1. + 空白鍵      →  編號清單
[] + 空白鍵      →  待辦區塊(含核取方塊)
> + 空白鍵       →  切換清單 toggle(不是引用區塊)
" + 空白鍵       →  引用區塊
```(三個反引號) →  程式碼區塊
---              →  分隔線

其中兩點最容易讓人意外。Notion 的標題只有三層#### 以下無處可去,和規格允許的六層差距,標題指南裡有完整對照。

注意:> 加空白鍵產生的是切換清單,而不是其他 Markdown 工具都會給的引用區塊;Notion 把引用區塊改對應到雙引號。手指習慣來自 GitHub 或 Reddit 的人,最容易踩到這一條。

行內捷徑

**粗體**                          →  粗體文字
*斜體*                            →  斜體文字
~~刪除線~~                        →  刪除線
`程式碼`                          →  行內程式碼
[MD Editor](https://mdeditor.tw)  →  超連結

這些就是語法速查表裡的同一批符號。真正重要的是「沒有」的部分:管線表格、圖片、註腳與原始 HTML 都沒有捷徑。在 Notion 打出管線表格,只會得到一段全是直線符號的文字。

打字輸入與整段貼上的差別

貼上是一次整批轉換

打字是一次轉換一個結構;貼上則是整批處理:Notion 會一次解析貼入文字中它認得的結構,並建立對應區塊。標題、清單、強調、程式碼區塊與連結大致都能過關,超出辨識範圍的部分則原封不動變成字元。

所以長文如果是在別處寫好的,貼上一定比重打一次快,手也輕鬆得多,因為不會有捷徑在句子寫到一半時忽然觸發。

當你就是要保留符號

有時原始字元本身就是內容,最典型的例子就是寫「關於 Markdown 的教學」。這時請用不含格式的貼上:Ctrl+Shift+V,Mac 上是 Cmd+Shift+V

無論哪一種方式,最後拿到的都是區塊:貼上標題得到的是標題區塊,而不是一行以井字號開頭的文字。這和Markdown 轉 HTML 的轉換是同一件事,差別只在 Notion 把結果留下,而不是拿給你看。

匯入 .md 檔:什麼保得住、什麼會壞掉

匯入指令的實際行為

Notion 側邊欄的匯入指令包含 Markdown 選項,可接受單一 .md 檔或一整包 .zip,每個檔案建立一個頁面。頁面標題通常取自檔名,因此開頭那行 # 標題 常會在內文裡重複一次。刪掉其中一個是匯入後的第一項整理工作。

下表是誠實版的對照。標示為「不穩定」的項目請逐一檢查,因為匯入行為改過好幾次。

Markdown 功能打字時有捷徑嗎匯入 .md 保得住嗎匯出時會產生嗎
標題 1 至 3可以
標題 4 至 6沒有,Notion 只有三層被壓成標題 3不會產生
粗體、斜體、刪除線可以
行內程式碼可以
程式碼區塊可以,語言可能要重選
符號清單與編號清單可以
巢狀清單用 Tab 縮排縮排一致時多半可以
待辦清單 - [ ]有,用 []可以,變成待辦區塊
引用 >沒有,> 會變切換清單可以,成為引用區塊
分隔線 ---可以
行內連結可以
圖片 ![替代文字](file.png)沒有,請用 /image檔案要一起放在 zip 裡才行會,輸出成相對路徑
管線表格沒有,請用 /table不穩定,每一個都要檢查簡易表格通常會
註腳 [^1]沒有變成純文字不會產生
原始 HTML沒有不會被渲染不會產生
YAML 前置資料沒有變成開頭的一段純文字不會產生

會壞掉的部分,先給解法

所有失敗項目的解法形狀都一樣:匯入前先移除,匯入後用原生方式重建。照這個順序做,匯入就不再是碰運氣。

  1. 先把表格、註腳與原始 HTML 從 .md 檔裡拿掉。
  2. 把巢狀超過三層的清單壓平。
  3. 匯入檔案,或連同圖片一起打包的 zip。
  4. /table 重建表格,再刪掉重複出現的標題行。

註腳在 Notion 裡沒有容身之處,請改寫成句中的括號說明,或集中放在文末的「附註」段落。放棄掉的語法長什麼樣,見註腳指南

表格值得多花那一步。Notion 的簡易表格是真正的區塊,表現遠比匯入來的好,所以請等頁面進來之後再建,不要跟解析器硬碰硬。第四個風險是過深的巢狀清單:嚴謹解析器接受的縮排,匯入時仍可能整個塌掉,原因在清單指南裡有說明。

把 Notion 頁面匯出成 Markdown

匯出按鈕在哪裡

  1. 點開任一頁面右上角的 ... 選單。
  2. 選擇匯出
  3. 格式挑 Markdown & CSV
  4. 按下確認前,先設定子頁面與圖片選項。

拿到的通常是 .zip 而非單一檔案,因為 Notion 必須把附件跟文字一起打包。典型的匯出結果長這樣:

My Project Notes 8f3c1a20d4b6431f9e7a2c5d81b0e6a4.md
My Project Notes 8f3c1a20d4b6431f9e7a2c5d81b0e6a4/
    screenshot.png
    Task list 2b91f7c04e8d40a1.csv

該預期的幾個怪癖

  • 檔名會帶一串 ID。匯出的檔案是「頁面標題 + 一長串十六進位字元」,那就是頁面的內部識別碼。功能正常,但很醜,放進程式碼倉庫前建議批次改名。
  • 圖片會變成本機檔案。附件會寫進 Markdown 檔旁邊的資料夾,以網址編碼的相對路徑引用。把 .md 單獨搬走而沒帶資料夾,圖片全都失效。
  • 資料庫匯出成 CSV,不是 Markdown。Notion 資料庫在 Markdown 的意義上並不是表格,因此會以獨立的 .csv 檔離開,內容只涵蓋目前的檢視畫面。
  • 沒有 Markdown 對應的區塊會被壓平。結構消失,內容以一般段落與清單留下來。把頁面匯出再匯入,不會還原原本的版面。

為什麼還是該定期匯出

匯出是唯一能讓文字以「不依賴某家公司持續營運」的方式保存下來的方法。一個 .md在任何編輯器裡都打得開,這十年如此,下個十年也一樣。這個檔案到底是什麼,詳見副檔名說明

Notion 有、但 Markdown 表達不出來的東西

Notion 最出色的一些功能在 Markdown 裡完全沒有對應,這正是匯出必然有損的原因:

  • 資料庫 - 表格、看板、日曆與時間軸檢視,加上具型別的屬性、篩選、排序與關聯。Markdown 只有一種扁平的表格結構,也沒有「屬性型別」的概念。
  • 切換清單(toggle) - 可收合的區段。Markdown 沒有收合機制,最接近的是允許內嵌 HTML 時的 <details> 元素。
  • 標註區塊(callout) - 帶表情符號的彩色方框。GitHub 為此另有自己的警示語法,見 GFM 指南,但那是 GitHub 的擴充,不是可攜的 Markdown。
  • 同步區塊 - 同一份內容同時出現在多個頁面。文字檔沒有這種機制。
  • 分欄版面 - 並排的左右欄。Markdown 只有由上而下的單一區塊流。
  • 提及、留言與頁面屬性 - Notion 原生的中繼資料,在文字檔裡無處安放。

兩邊都沒有錯

Markdown 刻意精簡,才能維持可攜;Notion 刻意豐富,才能一次取代 wiki、試算表與任務追蹤工具。清楚自己的內容有多少落在可攜的子集合裡,就能預期一個頁面能拿回多少。其他 App 各自把這條線畫在哪裡,可以看平台對照

真正可行的工作流程

在 Markdown 裡起草,在 Notion 裡收尾

如果你在意文字的所有權,就把順序倒過來:先在真正的 Markdown 環境裡打草稿,讓字元就只是字元,寫完再把成品搬進 Notion 分享與討論。我們的免費線上 Markdown 編輯器正是為此而生:左邊寫、右邊即時看到渲染結果,然後把原始文字複製過去。

這麼做能換到 Notion 單獨給不了的兩件事。你保有一份標準的 .md 檔,二十年後任何工具都打得開;貼上的結果也乾淨可預期,不會有捷徑在句子中間亂觸發。技術文件、部落格草稿,以及任何要進版本控制的內容,都該走這條路。

小提醒:.md 檔當成正本,Notion 頁面當成對外的呈現版。內容要改就改檔案,再重新貼一次。兩邊都改、之後再想辦法合併,正是版本開始走鐘的起點。

哪些事交給 Notion 就好

Notion 專心用在它擅長的地方:協作頁面、專案資料庫,以及需要附上留言的會議記錄,然後定期匯出當備份,並事先知道哪些部分會有損。

想把語法打穩,可以讀完Markdown 完整指南;還在猶豫該寫哪種方言,該選哪種 Markdown 方言是最短的答案。聊天平台又是另一套規則,看 Discord 的 Markdown 就知道。

相容性資料驗證日期

常見問題

Notion 支援 Markdown 嗎?

部分支援,而且不是多數人想像的那種支援。Notion 把 Markdown 當成輸入捷徑系統,以及匯入、匯出的格式,但它不會把頁面以 Markdown 儲存。捷徑一旦轉換完成,字元就被 Notion 區塊取代,無法再當成原始文字編輯。

可以看到或編輯 Notion 頁面的 Markdown 原始碼嗎?

不行。沒有原始碼檢視,因為 Notion 根本沒有 Markdown 原始碼可以顯示。最接近的做法是把頁面匯出成 Markdown、在別的工具裡編輯那個 .md 檔,再重新匯入成新頁面。

為什麼在 Notion 打 &gt; 不會產生引用區塊?

因為 Notion 把這個字元對應到切換清單。想要引用區塊,請輸入雙引號再按空白鍵。這是 Notion 捷徑與標準 Markdown 之間最大的一項差異,標準寫法請見語法指南

Markdown 表格能正確匯入 Notion 嗎?

表格是 Markdown 匯入中最不穩定的部分,行為也改過不只一次。匯入後請逐一檢查,若有表格變成純文字,就用 /table 指令重建。支援管線表格的平台語法可參考表格指南

如果我想要真正的 Markdown 檔案,是不是該用 Obsidian?

若檔案所有權是你的首要考量,答案是肯定的。Obsidian 把每則筆記都存成你自己硬碟上一般資料夾裡的 .md 檔,完全不需要匯入或匯出。另一個方向的取捨請見 Obsidian 的 Markdown

延伸閱讀

立即使用編輯器

立即使用編輯器