範本先給你,其他之後再說
- 下面是一份完整的 README:標題、一句話簡介、徽章、安裝、使用方式、設定、貢獻與授權。
- 貼進編輯器,一邊填空一邊看渲染結果。
- 完成後存成儲存庫根目錄的
README.md,GitHub 會自動顯示在專案頁面上。 - 小專案要的是四個區塊,不是九個。本頁後面有精簡版。
# Project Name
One sentence that says what this does and who it is for.
<!-- badges: build, version, license -->


## Installation
```bash
npm install project-name
```
## Usage
```js
import { run } from 'project-name';
run({ input: 'data.csv', verbose: true });
```
Output:
```
Parsed 1,204 rows in 1.2s
```
## Configuration
| Option | Type | Default | What it does |
| :-------- | :------ | :-------- | :-------------------------------- |
| `input` | string | none | Path to the file to read |
| `verbose` | boolean | `false` | Prints each step as it runs |
| `output` | string | `./dist` | Folder the results are written to |
## Contributing
Pull requests are welcome. For anything large, open an issue first so we
can agree on the shape of it. Run `npm test` before you push.
## License
MIT. See [LICENSE](LICENSE).
先改這五個地方
- 標題和它下面那一句。這兩行負責八成的工作,其他都只是細節。
- 安裝指令。把
npm install換成真實情況:pip install、go get、git clone,或一個下載連結。 - 使用範例。貼你真的跑過的那一行,不要寫虛構的示意碼。
- 設定表格。不存在的選項整列刪掉。空表格比沒有表格更糟。
- 徽章。指向你自己的儲存庫,不然就把那兩行刪掉。假徽章一眼就被看穿。
邊填邊看預覽
盲寫一份 README,推上去才發現表格沒對齊,這個循環太慢。把整段貼進首頁的編輯器吧:渲染結果就在原始碼旁邊,表格少一根管線,你還在打字時就會看見。
小提醒:照上面的順序填,填到沒有真話可寫就停手。一份誠實的短 README,遠勝過一份留著四個 TODO 的長範本。
每個區塊各自在回答什麼
每個區塊都在回答訪客心中的一個問題。以下列出那個問題,以及讓問題沒被回答的常見錯誤。
標題與一句話簡介
問題是「這是什麼」。一句話講清楚它做什麼、給誰用:「一個把 CSV 匯出檔轉成易讀 Markdown 報表的命令列工具。」
常見錯誤是講怎麼做的,而不是做什麼。沒有人為了知道你用哪個框架才點進來。
徽章
問題是「這專案還活著嗎」。一顆綠色建置徽章加上最近的版本號,半秒內就回答完。
常見錯誤是排上九顆徽章。超過四顆就不再是訊號,只是把簡介擠出第一屏的裝飾品。
安裝
問題是「我要怎麼拿到它」。一段可複製的圍籬程式碼,前面不要鋪陳。有前置需求就在區塊上方用一行寫完。
常見錯誤是把指令埋進整段文字裡。人們在掃描那個灰色方塊,不是在讀動詞。
使用方式
問題是「用起來長什麼樣」。給出最小但確實有作用的範例,再把輸出貼出來。
常見錯誤是列了一堆參數卻沒有範例。看過能跑的程式碼的人會自己去找參數;只看到參數的人通常就離開了。
設定
問題是「我能改嗎」。選項、型別、預設值、作用,四欄表格最快,因為讀者會沿著第一欄找那個只記得一半的名稱。
常見錯誤是預設值早就過期。改版時只來得及更新一個地方的話,就更新這張表。
貢獻與授權
貢獻回答「我能幫忙嗎」。兩行就夠:歡不歡迎 pull request,以及開大型 PR 前該做什麼。更長的規範放進獨立的 CONTRIBUTING.md。
授權回答「公司能用嗎」。寫出授權名稱並連到檔案。不寫並不等於中立,因為沒有授權時,法律預設是任何人都不得使用你的程式碼。
小專案用的精簡 README
多數儲存庫不需要九個區塊。一支腳本、一份設定檔倉庫,或一個週末做出來的小東西,用下面這種你真的維護得下去的版本更合適:
# csv2md
Turns a CSV file into a Markdown table. No dependencies.
## Install
```bash
pip install csv2md
```
## Use
```bash
csv2md data.csv > report.md
```
## License
MIT
什麼時候長版範本反而多餘
- 專案根本沒有選項。只有一列的設定表格是雜訊,一句話講完就好。
- 使用者只有你自己。私人儲存庫的貢獻說明只會放到過期,而且沒人會讀。
- 這是示範、分支或課堂作業。標題、一句話、怎麼執行,就結束了。
- 真正的文件在別的地方。那 README 就是路標:描述專案,連到文件網站。
注意:不要把還留著佔位文字的範本直接推上去。一份寫著「Project Name」的 README,等於告訴訪客這專案第一天就被放棄了。
什麼樣的 README 真的有人讀
讀者只給一份 README 幾秒鐘就做決定。撐得過那次掃描的,是下面幾個習慣。
- 先講它做什麼,不要先講怎麼做的。「把 CSV 轉成 Markdown 表格」能換到注意力;「用 Rust 和 Tokio 寫的」留到後面再說。
- 安裝指令要出現在第一屏。如果得先滑過一整段理念才看得到
pip install,很多人根本不會滑。 - 不只給指令,也給輸出。指令說要打什麼,輸出說會拿到什麼,後者才是讀者想像不出來的部分。
- 徽章控制在四顆以內。建置、版本、授權,最多再加測試覆蓋率。第五顆只會稀釋前面四顆。
- 當成寫給沒看過這個專案的人。半年後的你也算那種人。
- 跟畫面有關就放截圖。一張介面圖省下三段文字描述。
- 改功能的那次提交就順手改 README。寫錯的 README 比寫得少的更糟,因為錯誤的步驟會實實在在浪費讀者的時間。
拿自己的檔案做這個測試
用陌生人的眼光只讀第一屏,回答三個問題:這是什麼、怎麼安裝、用起來長什麼樣。任何一題答不出來,就把那段往上搬。
把 README 的格式寫好
README 就是一份 Markdown 檔,所以它的每個毛病都是 Markdown 的毛病。範本裡的每個部分,各自依賴一種語法。
架構與程式碼
標題用單個 #,區塊用 ##,標題語法專頁也說明了為什麼跳級會破壞 GitHub 依標題建立的大綱。安裝與使用指令要放進標了語言的圍籬區塊,bash 和 js 才有語法上色,細節都在程式碼區塊專頁。
清單、表格與圖片
功能條列就是一般的無序清單,清單專頁的巢狀規則值得花一分鐘,子清單被壓平幾乎都出在那裡。設定選項最適合用管線表格,上面範本的對齊冒號寫法,表格專頁有完整說明。
截圖和徽章共用同一套圖片語法,細節在圖片專頁;只需要那一行的話,Markdown 怎麼插入圖片就是最短的答案。徽章其實是包在連結裡的圖片。
方言與長檔案
GitHub 渲染的是 GitHub 風格 Markdown,待辦清單、刪除線與表格都能用,寫 README 就照這個方言寫。超過大約一千字時,用目錄產生器做一份目錄,不要手動維護錨點。
這些語法還很陌生的話,語法速查是最快的索引,完整 Markdown 指南會依序帶你走一遍。
檔案該放哪裡,又該怎麼檢查
檔名和位置,正是讓它自動被渲染的關鍵。
- 檔名取
README.md。主檔名全大寫,副檔名.md小寫。readme.md也讀得到,但大寫是慣例,也會排在資料夾清單最前面。 - 放在儲存庫根目錄。代管平台先看那裡。放在
docs/或.github/底下也算數,但根目錄那份優先。 - 每個資料夾都可以有一份。子資料夾的 README 會在有人瀏覽該資料夾時顯示,用來說明一整包範例很划算。
推上去之前先檢查
寫的時候在編輯器裡看預覽;同事丟一份檔案給你審,就用 Markdown 檢視器打開它。
推上去之後記得看一眼渲染後的頁面。相對路徑的圖片最常陣亡:在你電腦上讀得到的截圖,在專案頁面上仍可能 404,因為路徑是相對於儲存庫解析的。
常見問題
README 應該包含哪些內容?
最少三樣:一句話說明專案做什麼、怎麼安裝、一個使用範例。專案真的有使用者之後,再加上設定、貢獻與授權。本頁最上方的範本已照讀者預期的順序排好六個區塊。
README 要寫多長?
長到足以回答「這是什麼、怎麼安裝、怎麼使用」就停。小工具常常兩百字以內就夠。超過大約一千字,就把細節搬進 docs/,讓 README 回到門面的角色。
檔名一定要叫 README.md 嗎?
想在 GitHub、GitLab 和多數平台上被自動渲染,是的,放在根目錄的 README.md 最保險。沒有副檔名的 README 一樣看得到,但只會當純文字顯示,標題、表格和程式碼區塊全消失。
README 一定要放徽章嗎?
不用。公開專案上,徽章是建置狀態、版本與授權的快速摘要;私人專案上只是雜訊。控制在四顆以內,不希望陌生人點下去的就刪掉。
怎麼在 README 裡加截圖?
把圖片一起提交進儲存庫,通常放在 docs/img/,再用相對路徑引用:。圖片專頁談了代管方式,也解釋為什麼從自己硬碟來的絕對路徑一定失效。
延伸閱讀
立即使用編輯器
立即使用編輯器