Markdown 是什麼?|如何用它來寫文件 ? | 學習軟體工程師的數位筆記方案


個人認為 Markdown + iCloud + Git 的組合是目前最佳的數位筆記方案!
這邊介紹,Markdown 的快速入門方法,以及一些我在使用的 Markdown 語法



文件 

002.markdown-tutor.md


模板範例




Markdown 快速入門與基本語法

輕量級標記式語言,易讀易寫的純文字格式

Markdown 格式,在同一種標籤下可以有多種符號表示, 這裡不介紹每一種標籤符號的全部用法。

僅整合平時撰寫文檔、筆記、教程時,固定使用的格式,並且提供語法範例。

目錄

  • 準備軟體
  • 常用語法

準備軟體

  • 文本編輯器
  • Markdown 檢視器


文本編輯器

記事本、Notpad++、Sublime Text、VSCode、Typora、Vim ...etc


任一可編輯純文字的文本編輯器皆可,後續會介紹常用的 Markdown 編輯軟體

創建 .md 或 .markdown 副檔名檔案,即可開始使用 Markdown 語法撰寫文件

Markdown 檢視器

Chrome Extension : Markdown Viewer

Chrome 商店,搜尋 markdown viewer


安裝 Markdown Viewer 插件


擴充功能設定


允許存取本地端的檔案


.md 或 .markdown 檔案,拖放進 Chrome 瀏覽器中




常用語法

平時撰寫文檔、筆記、教程時,固定使用的格式範例

以下為 Markdown 語法範例 精簡內容

  • 標題
  • 內文
  • 清單
  • 標註
  • 區塊
  • 程式碼
  • 分隔線
  • 超連結
  • 圖片
  • 表格

標題

H1 ~ H3

H1 - 大標題

使用 = 符號,常駐數量 6 個,通常一份文檔只會有一個 H1 大標題

並且會與檔名相同或者是使用檔名的完整名稱

H1 大標題
======

H2 - 標題

使用 - 符號,常駐數量 6 個 , 通常文檔會常駐開頭「目錄」與結尾「參考資料」兩個 H2 標題。

其他的 H2 標題,則依據目錄列表而定

H2 標題
------

H3 - 子標題

使用三個 # 符號,通常使用在 H2 標題的下一階層中, 不會單獨存在於其他階層,如: 不會單獨的在 H1 大標題之下。

### H3 子標題

H4 - 小標題

H4 以下的小標題不使用

除文字大小已經與內文差不多以外, # 符號頻繁出現,也使得純文本的情況下不好辨認。



內文

僅使用一般文字、粗體、斜體、刪除線

一般文字

通常只注意換行的段落是否恰當,若文字太多的情況下, 會使用區塊或程式碼符號標示。

### H3 子標題
內文

粗體

標題部分提到 H4 以下不使用,但若仍有下一階層分段的需求, 通常會使用粗體文字取代。

因此,一份文檔通常除了 H1 大標題以外,只會有三個階層 :

  • H2 標題
  • H3 子標題
  • 粗體 (小標題)

若超出此階層內容,會再重新安排文檔格式,使之不超出三個階層。

### H3 子標題

**01**

內文

內文中的粗體、斜體、刪除線

撰寫文檔內文時,視情況使用粗體、斜體、刪除線,原則上還是盡量不使用到 HTML 語法

例如: 底線 <u> 或者是 <font> 更改文字樣式

避免造成純文字格式閱讀時的困難

內文,**粗體***斜體*~~刪除線~~

清單

三種型態皆使用,但項目符號僅使用 + 號

項目

符號僅使用 + 符號,縮排階層最多三層

最基本的應用,就是每個文檔的目錄

+ Item1
    + Item1.1
    + Item1.2
      + Item 1.2.1
      + Item 1.2.2
+ Item2
+ Item3

任務清單

符號僅使用 + 符號,縮排階層最多兩層

使用在待辦清單的筆記或文檔上

+ [X] To-Do1
  + [X] Detail 1-1
  + [X] Detail 1-2
  + [ ] Detail 1-3
+ [ ] To-Do2
+ [ ] To-Do3

數字

使用機率不高,清單項目通常優先以 + 為主, 有特殊情況需表明順序時,才會使用,縮排最多一層

雖然文本的數字不影響渲染結果,但在純文本的情況下, 仍維持順序排列,避免閱讀純文本時有落差。

有時會與項目符號 + 混合使用。

1. Item1
2. Item2
3. Item3

+ Item1
    1. Item1.1
    2. Item1.2
+ Item2
    1. Item2.1
    2. Item2.2
+ Item3

標註

補充說明與重點高亮

標題補充

通常使用在 H1 大標題 、H2 標題、H3 子標題,下方補充說明

可以是簡介、大綱、副標題,用於幫助讀者更快瞭解章節內容

H1 大標題
======
`H1 標題-副標題`

H2 標題
------
`H2 標題-大綱`

### H3 子標題
`H3 子標題-工作流程`

清單補充

使用在清單列表的後方,補充說明該項目其他的資訊內容

+ item `2020-10`
  + item `10/20 done`
  + item `10/25 done`

內文標註

標註內文中,要特殊注意的文字

符號僅使用`+` 符號,縮排階層最多三層


區塊

重點文字標示

區塊文字類似於程式碼區塊,通常用於標示較短的文字描述, 由於,純文字顯示下為四個空格,不太容易辨認。

若文字內容較長,仍使用程式碼區塊符號

    Text Block

程式碼

程式語法高亮

程式語法高亮,大量使用在技術教程、開發文件、程式筆記...等文檔上

除了常見的程式語言還會使用 diff 比對版本差異功能

若說明的文字太多,也會使用程式碼區塊,前方不加程式語言名稱, 當作一般文字使用,可以避免一般文字的換行問題。


```
Text - 文字說明
```

```java
// Java Code 
System.out.println("Hello Word");
```

```diff
+ System.out.println("Hello Word");
- System.out.println("Hello Word");
```

分隔線

段落章節分隔

分隔線僅使用 - 符號,且數量為三個,僅滿足最小觸發渲染條件。

可以避免多餘的文字符號佔用電腦空間

---

超連結

參考資料與文檔索引

超連結的寫法有三種,通常僅會使用 <url> 與 [title](url) 此兩種方法

參考資料

文檔通常會常駐「目錄」與「參考資料」,

「目錄」內容使用清單列表呈現, 「參考資料」則使用 H3 子標題 + <url> 呈現資料來源

參考資料
------
### Gitlab
<https://gitlab.com/GammaRayStudio>

### Blogger
<https://gamma-ray-studio.blogspot.com/>

### Youtube
<https://www.youtube.com/user/rhxs020>

文檔索引

程式專案中,通常都會建立一個連接所有文檔的索引目錄,

使用 [title](url) 連接所有開發文件, 用於快速尋找特定的開發文件。

帳本 , Index
======
`Account Book`

Project
------
+ [000-0.account-book-index](000-0.account-book-index.md)
+ [000-1.account-book-list](000-1.account-book-list.md)
+ [000-2.account-book-ref](000-2.account-book-ref.md)
+ [000-3.account-book-data](000-3.account-book-data.md)
+ [000-4.account-book-issue](000-4.account-book-issue.md)
+ [000-5.account-book-task](000-5.account-book-task.md)
+ [000-6.account-book-flow](000-6.account-book-flow.md)
+ [000-7.account-book-style](000-7.account-book-style.md)
+ [000-8.account-book-guide](000-8.account-book-guide.md)

App
------
### 功能需求
[001-1.account-book-feat](001-1.account-book-feat.md)

### 基礎設施層
+ [002-1.infra-sa](002-1.infra-sa.md)
+ [002-2.infra-spec](002-2.infra-spec.md)

### 領域層
+ [003-1.domain-sa](003-1.domain-sa.md)
+ [003-2.domain-spec](003-2.domain-spec.md)

### 應用層
+ [004-1.application-sa-ux](004-1.application-sa-ux.md)
+ [004-2.application-spec](004-2.application-spec.md)

### 使用者介面層
+ [005-1.view-sa-ui](005-1.view-sa-ui.md)
+ [005-2.view-spec](005-2.view-spec.md)

### 關於專案
[README](README.md)

上述是一個 iOS App 開發的專案文件索引, 每個文件前方都會以一個三位數的編號, 這部分後續的文件教程會再詳細說明。


圖片

Markdown 圖片使用 ![title](url) 格式, url 超連結的路徑為要顯示的圖片,

通常使用相對路徑,在文檔的同級目錄底下 assets/ 資料夾加上編號, 作為圖片來源的資料夾位置。

![markdown-viewer](assets/002/markdown-viewer.png)


圖片的部分,除常見的 png、jpg 外,通常會建議使用 svg 格式

在加入版本控制時,檔案會比較小,也易於版控比對, 這部分後續會有詳細教程介紹。

表格

只使用最簡單的 Markdown 表格,置左對齊

| Markdown             | Simple               | Table           |
| :------------------- | :------------------- |:--------------- |
| left-aligned column  | column               | column          |
| $100                 | $100                 | $100            |
| $10                  | $10                  | $10             |
| $1                   | $1                   | $1              |

由於表格要呈現較複雜的格式,如: 合併儲存格等功能, 都必須要使用到 Html 的標籤格式,

為了呈現效果而導致原始的文檔變得不易閱讀, 違背了原本 Markdown 易讀易寫的原則。

[Table](assets/002/table.csv)

若仍有複雜表格格式的需求,建議使用超連結的方式連接其他格式檔案, 以外部擴展方式涵蓋表格功能。

參考資料

留言

熱門文章

Markdown 語法大全,範例模板

【如何寫乾淨的程式碼 ? 】程式設計 代碼風格 指南 | 基礎 + 9 個進階概念

【 git 基礎教程 #1】什麼是 git ? | Sourcetree 介紹 與 入門基礎操作教學

【什麼是 git flow ?】 5 項分支全詳解 | Sourcetree 實戰演練