標準副檔名是 .md。比較長的 .markdown 意思相同,但少見得多。兩者標示的都是普通的純文字檔,沒有特殊編碼、沒有二進位檔頭,也沒有壓縮。

notes.txt 改名成 notes.md,它就已經是一份合法的 Markdown 檔。再改回去,裡面的內容也一個位元組都沒變。

GitHub、VS Code、Obsidian 和幾乎所有現代工具都認得這兩種副檔名,看到就會自動啟用 Markdown 渲染或語法上色。它註冊的 MIME 類型是 text/markdown,如果你要用網頁伺服器直接提供原始檔,就該送出這個類型。

重點速覽

標準副檔名.md
其他會看到的.markdown、.mdown、.mkd、.mkdn
MIME 類型text/markdown
檔案內容純 UTF-8 文字,任何編輯器都讀得開
特殊檔名README.md 會被渲染成儲存庫首頁

副檔名做了什麼,又沒做什麼

重點摘要
  • 就用 .md。它最短,而且每個編輯器都會把它對應到 Markdown 模式。
  • 副檔名只是給軟體的提示,檔案內容一個位元組都不會被改動。
  • 檔案裡沒有任何地方記錄你用的方言,這就是 GFM 表格換個地方會壞掉的原因。
  • .mdx.rmd.qmd 看起來像親戚,其實是各有工具鏈的不同格式。

副檔名不會改變檔案裡的任何內容,它只是告訴軟體該怎麼對待這些內容。看到 .md,GitHub 會把檔案渲染成排版後的頁面而不是原始文字。VS Code 這類編輯器會開啟語法上色和預覽窗格。靜態網站產生器則知道建置時要把它轉成 HTML。

就這一個機制,解釋了幾件常令人意外的事。一個完全沒用到 Markdown 語法的 .md 檔仍然合法,因為單純的段落本來就是合法語法。滿是 Markdown 語法卻存成 .doc 的檔案也沒有壞,只是名字貼錯。檔案裡也沒有記錄方言,所以用了 GFM 表格的文件在 GitHub 上好好的,到嚴格的 CommonMark 渲染器裡卻只剩一堆直線符號。

插圖:一份標示著 .md 的純文字檔,同時被程式碼託管平台、編輯器與網站產生器辨識

你可能遇到的所有副檔名

偶爾還是會碰到比較舊或比較特殊的副檔名。完整情況如下。

副檔名地位GitHub 會渲染常見於
.md標準到處都是,就用這個
.markdown長寫法較舊的部落格與 Jekyll 網站
.mdown舊寫法比較舊的專案
.mkd / .mkdn舊寫法罕見,多半只剩歷史檔案
.mdx不同格式不會React 技術文件網站
.rmd / .qmd不同格式部分R Markdown 與 Quarto 報告

其中兩個其實不是 Markdown

  • .mdx 是混入 JSX 元件的 Markdown。語法有重疊,但一般的渲染器會被那些元件標籤卡住。
  • .rmd.qmd 把 Markdown 和可執行的程式碼區塊混在一起,各自需要專屬工具鏈才能產生成品。

就用 .md 吧

除非特定工具另有要求,一律選 .md。它最短、辨識度最高,也是每個編輯器都會自動對應到 Markdown 模式的那一個。我們完整指南裡的所有範例也都以它為準。

README.md 為什麼是特別的檔名

有一個檔名帶有額外意義。GitHub、GitLab、Bitbucket 會把叫做 README.md 的檔案渲染成儲存庫或資料夾的首頁。就是這一個慣例,讓 Markdown 成為全世界預設的文件格式。每個專案的門面都是一個 Markdown 檔,數百萬名開發者根本沒下定決心要學,就把語法學會了。

my-project/
├── README.md        渲染成儲存庫首頁
├── CONTRIBUTING.md  GitHub 介面會直接連到它
├── LICENSE.md       顯示在側邊欄
├── docs/
│   └── setup.md     一般的文件頁
└── src/

大寫、小寫與子資料夾

全大寫是慣例而非規定。小寫的 readme.md 渲染結果一模一樣,但大寫寫法普及到讓小寫在老手眼裡就是怪。另外,放進任何子資料夾的 README 也會被渲染在那個資料夾的頁面上,這是替目錄補說明的一種安靜作法。

裡面該放什麼

一個標題、一段簡短介紹、安裝步驟,再加一兩張表格,多數 README 就成形了。如果你常寫,GFM 指南涵蓋了 GitHub 疊在標準 Markdown 之上的表格、待辦清單、警示框與自動連結。

.md 檔裡面到底裝了什麼

用記事本或文字編輯程式打開,看到的就是自己寫的字,加上一些標點符號。沒有隱藏結構,也沒有軟體綁定。存成 UTF-8(現代編輯器的預設值),重音字母、繁體中文和表情符號都能完整保存。

純文字為什麼一直划算

  • Git 會逐行比對 Markdown 檔,所以合併請求上能精準看到改了哪一句。
  • 全文搜尋不必先開啟任何應用程式就能找到你的筆記。
  • 十年前的備份現在照樣打得開,因為沒有任何一個程式擁有這個格式。
  • 同一個檔案可以被渲染成網頁、PDF 或印出來的講義,中間不需要任何專有容器。

這種可攜性才是這個格式真正的理由,什麼是 Markdown 把這個論述講得更完整。想知道它和手寫標籤差在哪,請看 Markdown 與 HTML 的比較

建立與開啟 .md 檔

  1. 在我們的編輯器寫好內容,點工具列的 .md,就會以正確的副檔名下載檔案。
  2. 或在任何文字編輯器用「另存新檔」自己輸入完整檔名,例如 meeting-notes.md
  3. Windows 上請先把存檔類型選成「所有檔案」,否則記事本會偷偷補上 .txt
  4. macOS 上請在文字編輯程式選「格式」再選「製作純文字」才存檔,否則會得到一個掛著 .md 名字的 RTF 檔。
錯誤                         正確
notes.md.txt                 notes.md
(記事本自動補上 .txt)      (存檔類型先選「所有檔案」,
                              再輸入完整檔名)

Windows 隱藏副檔名的陷阱

檔案總管預設隱藏已知副檔名。所以 notes.md.txt 只會顯示成 notes.md,這個雙重副檔名要等到某個工具拒絕渲染時才會被發現。在檢視索引標籤打開「副檔名」顯示,可以省下一小時的困惑。

開啟反而是簡單的方向

任何文字編輯器都能打開 .md,因為它就是文字。想看排版後的樣子,把內容貼進編輯器讀預覽窗格就好。更多說明在如何開啟 .md 檔,語法忘了就翻語法速查表

相關問題

立即使用編輯器

開啟編輯器