如何编写好的README
在github
上了上传了许多仓库,如何更好的管理、使用这些仓库,其中关键的一点在于README
的编写。README
的目的是向使用者展示仓库的使用方法、来历以及未来的进展。越来越重视写好一个REAMDE
,优秀的工程不一定有一个好的README
,但是不好的REAMDE
一定不是一个优秀的工程
关于这个问题在网上也有许多讨论:如何写好Github中的readme?。当前主要参考了一个关于如何编写标准README
的github
仓库:RichardLitt/standard-readme
内容列表
下面首先讲解standard-readme
提供了README
文件编写规范,并结合网上讨论进行相应的调整,然后使用README
生成器yo
,最后编写一些适应不同场景的README
模板
规范
standard-readme
提供了一个编写规范,原文和翻译如下
- 原文:Specification
- 翻译:[译]规范
里面提出了README
的章节列表:
- 标题(
Title
,必须) - 横幅(
Banner
,可选) - 徽章(
Badges
,可选) - 简短说明(
Short Description
,必须) - 详细描述(
Long Description
,可选) - 内容列表(
Table of Contents
,必须) - 安全(
Security
,可选) - 背景(
Background
,可选) - 安装(
Install
,默认必须,对文档仓库而言可选) - 用法(
Usage
,默认是必须的,对于文档仓库而言是可选的) - 附加内容(
Extra Sections
,可选) - 应用编程接口(
API
,可选) - 主要维护人员(
Maintainers
,可选) - 致谢(
Thanks
,可选) - 参与贡献方式(
Contributing
,必须) - 许可证(
License
,必须)
从上到下按需实现相应章节内容,其中横幅指的是仓库logo
,内容列表指的是后续章节标题,而不是工程架构
横幅
网上有很多在线设计logo
的网站,不过下载是要收费的。找了一个免费的logo
设计网站:logoly,还有自定义logo
工具:zjykzj/zlogo
协议
参考Adding a license to a repository
可以在线添加新文件,输入文件名为LICENSE
或LICENSE.md
,选择一个license
模板,预览后提交即可
如果要更换协议,直接删除新建一个即可
自定义
standard-readme
提供了相对完整的README
章节架构,结合网上讨论和实际使用经验,再增加以下4
个章节:
- 中英文
- 徽章
- 版本更新日志
- 待办事项
并更新章节参与贡献方式(Contributing
)
中英文
- 状态:默认是必须的,对于文档仓库而言是可选的
- 必要条件:
None
- 建议:
- 准备中英文两份
README
,相互之间可跳转 README.md
为英文内容,README.zh-CN.md
为中文内容- 放置在徽章之后,简短说明之前
- 准备中英文两份
徽章
- 状态:可选
- 必要条件:
- 标题为徽章
- 建议:
- 使用http://shields.io或类似服务创建和托管图像
规范中已经提到了一个徽章章节,里面添加的是仓库编写、部署过程中使用的工具、规范等相应的徽章,而本章节在于给出自己仓库的专属徽章
徽章生成参考自定义徽章
版本更新日志
- 状态:可选
- 必要条件:
- 使用
git
进行版本管理
- 使用
- 建议:
- 基于Conventional提交规范和[SEMVER]语义版本规范进行版本提交
- 使用standard-version进行
CHANGELOG
生成 - 链接到本地仓库的
CHANGELOG
文件
待办事项
- 状态:可选
- 必要条件:
None
- 建议:
- 列出后续待完成的事项
- 按实现顺序从上到下排列
参与贡献方式
在参与贡献方式章节中应该明确是否允许合并请求,并给出进行版本管理的相应规范,比如
完整内容列表
综上所述,完整的内容列表如下:
- 标题(
Title
,必须) - 横幅(
Banner
,可选) - 徽章(
Badges
,可选) - 中英文(
Chinese and English
,默认是必须的,对于文档仓库而言是可选的) - 简短说明(
Short Description
,必须) - 详细描述(
Long Description
,可选) - 内容列表(
Table of Contents
,必须) - 安全(
Security
,可选) - 背景(
Background
,可选) - 徽章(
Badge
,可选) - 安装(
Install
,默认必须,对文档仓库而言可选) - 用法(
Usage
,默认是必须的,对于文档仓库而言是可选的) - 附加内容(
Extra Sections
,可选) - 应用编程接口(
API
,可选) - 版本更新日志(
CHANGELOG
,可选) - 待办事项(
TODO
,可选) - 主要维护人员(
Maintainers
,可选) - 致谢(
Thanks
,可选) - 参与贡献方式(
Contributing
,必须) - 许可证(
License
,必须)
生成器
模板
参考:
以仓库zjZSTU/PyNet为例,生成不同适用范围的自定义模板。README
模板地址:templates
最小README
建立一个最简单基本的README
,仅包含必须的章节内容,参考MINIMAL_README.md
- 标题(
Title
,必须) - 中英文(
Chinese and English
,默认是必须的,对于文档仓库而言是可选的) - 简短说明(
Short Description
,必须) - 内容列表(
Table of Contents
,必须) - 安装(
Install
,默认必须,对文档仓库而言可选) - 用法(
Usage
,默认是必须的,对于文档仓库而言是可选的) - 参与贡献方式(
Contributing
,必须) - 许可证(
License
,必须)
标准README
完整的实现所有章节内容,参考STANDARD_README.md