Skip to content

Markdown 介紹

Markdown 是一種輕量級標記語言,允許你使用易於閱讀、易於編寫的純文字格式進行寫作,然後可以轉換為結構有效的 HTML(以及許多其他格式)。由 John Gruber 在 2004 年創建,Markdown 已成為網路上最受歡迎的標記語言之一。

什麼是 Markdown?

Markdown 是一種純文字格式化語法,使你能夠向純文本文檔添加格式化元素。與 HTML 或 XML 等複雜的標記語言不同,Markdown 使用簡單的標點符號來創建結構化文檔。

主要特性:

  • 人類可讀:Markdown 檔案在原始形式下易於閱讀
  • 平台無關:可在不同的作業系統和應用程式中工作
  • 可轉換:可以轉換為 HTML、PDF、Word 文檔和其他格式
  • 版本控制友好:純文字檔案與 Git 和其他版本控制系統配合良好
  • 快速編寫:最少的語法意味著更快的編寫和編輯

基礎語法範例:

markdown
# 標題 1
## 標題 2
### 標題 3

**粗體文字***斜體文字*

- 無序清單項目
- 另一個項目

1. 有序清單項目
2. 另一個項目

[連結文字](https://www.markdownlang.com)

`內聯程式碼` 和程式碼區塊:

```javascript
function hello() {
  console.log("Hello, World!");
}

## 為什麼使用 Markdown?

### 1. **簡單和速度**
- 使用最少的語法更快地編寫
- 無需記住複雜的 HTML 標籤
- 專注於內容,而不是格式化

### 2. **通用相容性**
- 無處不在:GitHub、GitLab、Reddit、Stack Overflow
- 大多數現代文字編輯器和 IDE 都支援
- 可以轉換為任何你需要的格式

### 3. **版本控制整合**
- 純文字檔案與 Git 完美配合
- 易於追蹤變更和協作
- 沒有二進位檔案衝突

### 4. **面向未來**
- 純文字永遠不會過時
- 沒有專有格式依賴
- 易於在平台之間遷移

### 5. **學習曲線**
- 快速學習(可以在 30 分鐘內掌握基礎知識)
- 跨平台一致的語法
- 沒有複雜的軟體要求

## Markdown 適合什麼?

### 📝 **文檔編寫**
- **技術文檔**:API 文檔、使用者指南、README 檔案
- **軟體文檔**:程式碼註釋、專案文檔
- **知識庫**:維基、幫助系統、內部文檔

### ✍️ **內容創作**
- **部落格文章**:個人部落格、公司部落格、技術文章
- **學術寫作**:研究論文、論文、報告
- **書籍和電子書**:技術書籍、小說、教育內容

### 💼 **商業應用**
- **專案管理**:任務清單、專案筆記、會議記錄
- **電子郵件**:富文字電子郵件,無需 HTML 複雜性
- **簡報**:轉換為投影片格式
- **報告**:商業報告、狀態更新、摘要

### 🌐 **網站開發**
- **靜態網站生成器**:Jekyll、Hugo、Gatsby、VitePress
- **CMS 內容**:WordPress、Ghost、Contentful
- **文檔網站**:GitBook、Docusaurus、MkDocs

### 📚 **教育**
- **課程材料**:講義、作業、教學大綱
- **學生作業**:論文、研究論文、實驗報告
- **協作學習**:學習小組、同儕評議

### 🔧 **技術寫作**
- **程式碼文檔**:內聯註釋、README 檔案
- **API 文檔**:端點描述、範例
- **教學**:分步指南、操作文章

## 如何使用 Markdown

### 1. **選擇你的編輯器**

**線上編輯器:**
- [Markdown 即時預覽](https://www.markdownlang.com/editor/)
- [HTML 轉 Markdown](https://www.markdownlang.com/html-to-markdown/)
- [Markdown 轉 HTML](https://www.markdownlang.com/markdown-to-html/)
- [URL 轉 Markdown](https://www.markdownlang.com/url-to-markdown/)

**桌面應用程式:**
- **Typora**:所見即所得的 Markdown 編輯器
- **Mark Text**:即時預覽編輯器
- **Obsidian**:支援 Markdown 的筆記應用
- **Notion**:支援 Markdown 的一體化工作空間

**程式碼編輯器:**
- **VS Code**:帶有 Markdown 擴充功能
- **Sublime Text**:帶有 Markdown 套件
- **Atom**:內建 Markdown 預覽
- **Vim/Neovim**:帶有 Markdown 外掛程式

### 2. **學習語法**

#### 標題
```markdown
# H1 標題
## H2 標題
### H3 標題
#### H4 標題
##### H5 標題
###### H6 標題

文字格式化

markdown
**粗體文字**
*斜體文字*
***粗體和斜體***
~~刪除線~~
`內聯程式碼`

清單

markdown
- 無序清單項目
- 另一個項目
  - 巢狀項目
  - 另一個巢狀項目

1. 有序清單項目
2. 另一個項目
   1. 巢狀有序項目
   2. 另一個巢狀項目

連結和圖片

markdown
[Markdown Lang](https://www.markdownlang.com/)
[帶標題的 Markdown Lang](https://www.markdownlang.com/ "Markdown Lang")

![替代文字](image-url.jpg)
![帶標題的圖片](image-url.jpg "圖片標題")

程式碼區塊

markdown
```javascript
function hello() {
  console.log("Hello, World!");
}
```

```python
def hello():
    print("Hello, World!")
```

表格

markdown
| 欄 1 | 欄 2 | 欄 3 |
|------|------|------|
| 列 1 | 資料 1 | 資料 2 |
| 列 2 | 資料 3 | 資料 4 |

引用區塊

markdown
> 這是一個引用區塊
> 
> 它可以跨越多行
> 
> > 並且可以巢狀

3. 練習和實驗

  • 從簡單文檔開始
  • 使用線上編輯器查看即時預覽
  • 練習不同的語法元素
  • 嘗試轉換為不同格式

它是如何工作的?

1. 解析過程

Markdown 通過兩步過程工作:

  1. 解析:Markdown 解析器讀取純文字並識別格式化語法
  2. 渲染:解析器將語法轉換為 HTML(或其他目標格式)

2. 解析器組件

詞法分析器(標記化)

  • 將文字分解為標記
  • 識別不同的語法元素
  • 處理特殊字元和轉義序列

解析器(AST 生成)

  • 創建抽象語法樹(AST)
  • 表示文檔結構
  • 處理元素之間的巢狀和關係

渲染器(輸出生成)

  • 將 AST 轉換為目標格式(HTML、PDF 等)
  • 應用樣式和格式化規則
  • 處理邊緣情況和特殊格式化

3. 常見解析器

JavaScript

  • marked:快速、輕量級解析器
  • markdown-it:可插拔的解析器,支援擴充功能
  • remark:統一生態系統的一部分

Python

  • markdown:功能完整的 Python 實現
  • mistune:快速且輕量級
  • marko:可擴充且快速

其他語言

  • PHP:Parsedown、CommonMark
  • Ruby:Redcarpet、Kramdown
  • Go:goldmark、blackfriday

4. 擴充功能系統

大多數 Markdown 解析器支援擴充功能:

GitHub 風格 Markdown(GFM)

  • 表格
  • 刪除線
  • 任務清單
  • 自動連結
  • 圍欄程式碼區塊

CommonMark

  • 標準化規範
  • 解析器之間更好的相容性
  • 更可預測的行為

自訂擴充功能

  • 數學方程式(KaTeX、MathJax)
  • 圖表(Mermaid、PlantUML)
  • 腳註
  • 定義清單
  • 目錄

5. 轉換工作流程

mermaid
graph LR
    A[Markdown 文字] --> B[解析器]
    B --> C[AST]
    C --> D[渲染器]
    D --> E[HTML/PDF/DOCX]
    
    F[擴充功能] --> B
    G[配置] --> B
    H[外掛程式] --> D

6. 實際範例

當你編寫:

markdown
# Hello World

這是**粗體***斜體*文字。

- 項目 1
- 項目 2

解析器將其轉換為:

html
<h1>Hello World</h1>
<p>這是 <strong>粗體</strong> 和 <em>斜體</em> 文字。</p>
<ul>
<li>項目 1</li>
<li>項目 2</li>
</ul>

開始使用

準備好開始使用 Markdown 了嗎?以下是一些後續步驟:

  1. 選擇一個編輯器,適合你的工作流程
  2. 練習基本語法,使用簡單文檔
  3. 探索擴充功能,如 GFM 的高級功能
  4. 嘗試不同的解析器,找到最適合你需求的
  5. 整合到你的工作流程中 - 用於文檔編寫、部落格或筆記

Markdown 的簡單性和強大功能使其成為任何定期寫作的人的絕佳選擇,無論是技術文檔、創意寫作還是日常筆記。從基礎開始,定期練習,你很快就會發現 Markdown 成為你寫作工具包的重要組成部分。

由 Markdownlang.com 整理創建