Markdown指南

什麼是Markdown?

Markdown是一種輕量級標記語言,您可以用它為純文字文件添加格式元素。它允許您使用簡單、易讀的語法建立格式化文字,可以轉換為HTML和其他格式。

將Markdown視為一種無需複雜文字處理器即可編寫格式化文件的方式。您只需在純文字中添加特殊字元來指示格式,如粗體斜體程式碼

為什麼使用Markdown?

Markdown非常簡單且易於學習。您可以在短短10分鐘內掌握基礎知識。格式符號直觀 - 星號表示強調,井字號表示標題。您只需輸入並添加簡單符號來格式化文字。

Markdown在任何平台和任何文字編輯器上都能工作。由於檔案是純文字,即使在幾十年後也始終可讀。檔案輕量且載入迅速。

Markdown在各個平台都有廣泛支援。GitHub、Reddit、Discord和Slack都使用Markdown。Obsidian、Notion和VS Code等熱門應用程式原生支援它。這使其成為文件、筆記和Web內容的完美選擇。

Markdown與Git等版本控制系統完美配合。您可以專注於內容而不受格式干擾。團隊協作更容易,因為每個人都可以在沒有特殊軟體的情況下編輯檔案。

Markdown開發歷史

起源:原版Markdown(2004年)

Markdown最初由John Gruber在2004年建立,Aaron Swartz做出了重要貢獻。Gruber將其設計為一種使用易讀易寫的純文字格式編寫的簡單方式,可以轉換為結構有效的HTML。這是John Gruber最初設計和實作的「核心」,包含最基本的格式語法 - 我們稱之為「基本原版風味」。

基本語法(原版Markdown包含):

  • 標題:使用#符號(# 標題
  • 強調
  • 斜體:使用*_包圍文字(*斜體*_斜體_
  • 粗體:使用**__包圍文字(**粗體**__粗體__
  • 清單
  • 無序清單:使用*-+- 項目
  • 有序清單:使用數字和句點(1. 項目
  • 連結:使用[連結文字](連結位址)
  • 圖片:使用![圖片描述](圖片位址)
  • 程式碼區塊:用空格縮排(通常4個空格或1個Tab)
  • 引用:使用>符號(> 這是引用
  • 水平線:使用---***

問題:不一致的實作

然而,原版Markdown缺乏嚴格的正式規範。這導致不同Markdown解析器在處理邊緣情況時行為不一致。

空白處理:例如,在清單項目中,多少個空格的縮排算作子清單?是2個空格、3個空格還是4個空格?不同的解析器可能有不同的判斷。

換行處理:在某些情況下,常規換行(\n)應該被解析為<br>(換行)標籤,還是應該簡單地作為文字中的空格處理?這也可能因解析器而異。

HTML混合使用:Markdown允許嵌入HTML。然而,在一些複雜的HTML結構中,Markdown解析器如何處理其中的Markdown語法也存在模糊區域。

解決方案:CommonMark(2014年)

2014年9月,引入了CommonMark來解決這些不一致問題。由John MacFarlane領導,它為Markdown提供了嚴格的規範。

CommonMark提供了精確的規範,其中每個邊緣情況都有明確定義。它包括一個包含600多個測試案例的綜合測試套件,以確保實作之間的一致性。該規範提供了一個參考實作,作為其他解析器遵循的標準。它保持與大多數現有Markdown文件的向後相容性,同時確保明確的解析,相同的輸入在所有相容解析器中始終產生相同的輸出。

擴充風味和附加功能

隨著使用者有不同的需求,出現了各種擴充的Markdown風味來滿足特定要求。

GitHub風味Markdown(GFM)附加語法:

  • 表格:使用管線語法建立表格
  | 標題1 | 標題2 | 標題3 |
|-------|-------|-------|
| 儲存格1 | 儲存格2 | 儲存格3 |
| 儲存格4 | 儲存格5 | 儲存格6 |
  • 刪除線:使用~~包圍文字(~~刪除的文字~~
  • 任務清單:建立互動式核取方塊
  - [x] 已完成任務
- [ ] 未完成任務
  • 圍欄程式碼區塊:使用帶語言規範的三重反引號
  ```javascript
function hello() {
console.log("Hello World!");
}
```
  • 自動連結:URL和電子郵件地址自動變為可點擊
其他熱門擴充:

  • 腳註:學術寫作使用[^1]語法
  這是帶腳註的句子[^1]。
[^1]: 這是腳註內容。

結果:這是帶腳註的句子¹。

  • 數學表達式:科學文件使用$E=mc^2$
  • 表情符號快捷鍵:使用:smile:變成😊
  • 定義清單:用於詞彙表和技術文件
  術語1
: 術語1的定義

術語2
: 術語2的定義
: 術語2的另一個定義

結果:建立帶有突出顯示術語和縮排定義的格式化清單

如何運作?

Markdown遵循簡單的三步工作流程

步驟1:建立Markdown檔案

首先,使用任何文字編輯器建立帶有.md.markdown副檔名的純文字檔案。使用簡單的格式符號編寫內容:

步驟2:使用Markdown工具處理

您的.md檔案然後由Markdown轉換工具或處理器處理。這些工具讀取您的Markdown檔案並將其轉換為所需的輸出格式。

步驟3:輸出到各種格式

Markdown處理器可以將您的檔案轉換為多種格式:

Web顯示:

  • 轉換為HTML用於網站、部落格和Web應用程式
  • 在瀏覽器中顯示具有適當樣式的格式化內容
文件:

  • 轉換為PDF用於可列印文件和報告
  • 產生Word文件(.docx)用於辦公用途
  • 建立LaTeX用於學術論文和出版品
發布:

  • 產生電子書(EPUB格式)
  • 建立簡報投影片
  • 製作文件網站
這個工作流程意味著您在Markdown中寫一次,然後使用不同的工具將內容轉換為您需要的任何格式 - 無論是在網站上顯示、列印為PDF還是作為文件分享。

附加資源

基本文件