ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

standard-readme 规范详解:为开源项目编写标准、可维护、易检索的 README

standard-readme 规范详解:为开源项目编写标准、可维护、易检索的 README 文档开发工具【免费下载链接】standard-readmeA standard style for README files项目地址https://gitcode.com/gh_mirrors/st/standard-readme点击查看免费下载本文围绕开源仓库 standard-readme 的中文说明文档展开系统讲解标准 Readme的定位、诞生背景、完整的段落规范含每个段落的状态、要求与建议、本地安装与 CLI 用法、合规徽章的使用方式以及极简/全量两类示例 README。读完本文你将掌握一套可直接套用的 README 写作框架既能保证内容完整、段落顺序统一又能让用户、搜索引擎与自动化工具linter、生成器快速理解与解析你的项目文档。什么是 standard-readmeREADME 文件是大多数人接触代码时看到的第一个东西它应当回答三个问题为什么要使用这个模块、如何安装它、以及如何使用它。standard-readme 正是为了把这份门面文档标准化而生的仓库——它定义了一种 README 样式标准让创建和维护 README 变得更容易因为写好一份文档需要付出不少努力。本仓库见 README.zh-CN.md包含五部分内容一份标准 README 应该长什么样的规范即 spec.md另有中文译本 spec.zh-CN.md一个用于检查 README 语法错误的**提示工具linter**的链接该项目仍处于进行中状态一个用于快速创建标准 README 的生成器generator-standard-readme一个指向该规范的徽章供合规项目引用一批标准 README 的实例位于 example-readmes/ 目录——你正在阅读的这份 README 本身就是完全合规的范例。需要特别强调的是标准 Readme 是为开源组件设计的。尽管它在历史上源于 Node 与 npm 项目但同样适用于其他编程语言和包管理器。也就是说这套规范并不绑定 JavaScript 生态任何语言的库都可以采用。背景为什么 README 需要标准化标准 Readme 的念头最初由 maxogden 在 feross/standard 项目的一个 Issue 中提出一个标准化 README 的工具是否有用。随后大量讨论汇集在 zcei 的 standard-readme 仓库中而在维护 IPFS 系列仓库时作者需要一种方式在组织内统一 README 风格这份规范便由此诞生。规范背后有一个核心理念引用自 Perl 社区Ken Williams, Perl Hackers如果你的文档是完整的那么使用你代码的人就不用再去看代码了。这非常重要。它使得你可以分离接口文档与具体实现意味着你可以修改实现代码而保持接口与文档不变。请记住是文档而非代码定义了一个模块的功能。写 README 本就费力持续维护更难。把这一过程外包给标准——让写作更容易、编辑更容易、判断一次改动是否符合规范更清晰——你就能少操心初始文档是否合格把更多时间花在写代码和用代码上。标准化还带来了生态层面的好处用户花更少的时间搜索他们需要的信息段落位置固定一看便知工具可以从描述中搜集信息、自动运行示例代码、检查授权协议等README 的内容与结构可被搜索引擎、代码托管平台与自动化脚本稳定解析。基于此仓库确立了五个目标一份定义良好的规范持续迭代欢迎通过 Issue 讨论变更一份完全合规的示例 README本文件且 example-readmes 文件夹中有更多一个语法提示器一个生成器一个合规徽章。规范核心合规 README 的总则规范的权威定义在 spec.md一个合规的 README 必须满足以下总则文件名必须叫README大写扩展名视格式而定Markdown 用.md、Org Mode 用.org、HTML 用.html等国际化命名若项目支持 i18n文件名须带 BCP 47 语言标签如README.de.mdde为语言标记优先使用非区域子标记若项目只有一个 README 且非英语则该文件可以直接使用其他语言而无需标注当存在多个语言版本时README.md保留给英语版本有效性必须是所选格式Markdown、Org Mode、HTML 等下的合法文件段落顺序段落必须按规范给出的顺序出现可选段落可以省略段落标题必须使用规范列出的标题除非另有说明若 README 使用其他语言标题需翻译成对应语言链接不得包含失效链接代码示例如有代码示例应遵循项目其余部分相同的 lint 规则。在这些总则之下规范定义了 16 个标准段落状态分为必须与可选两类。下面逐一展开每个段落的要求与建议。标题必须标题必须与仓库名、文件夹名和包管理器名称一致若不一致则允许在括号中以斜体附上相关标题例如# Standard Readme Style _(standard-readme)_如果文件夹、仓库或包管理器名称有任何不匹配必须在长描述中附注说明原因。建议标题应当自明self-evident让人一眼看清项目是什么。横幅可选不能有自己的标题必须链接到当前仓库中的本地图片必须直接出现在标题之后。横幅是 README 顶部的视觉入口规范刻意要求本地图片避免依赖外部资源。仓库内的横幅示例可参考 example-readmes/assets/text_wordmark_dark.png其在 maximal-readme.md 中紧跟在标题之后使用。徽章可选不能有自己的标题必须用换行符分隔每行一个徽章不要挤在一行。建议方面可以使用 Shields.io 或类似服务创建和托管徽章图片对于静态徽章考虑使用本地托管的图片以避免外部请求带来的追踪问题和多余资源消耗并建议加上Standard Readme 合规徽章。本仓库自身的徽章实践可参考 README.md 顶部以及 maximal-readme.md 中并排展示的多个徽章GitHub 创建时间、贡献者数、许可证、合规徽章。简短描述必须不能有自己的标题必须少于 120 个字符不能以开头即不能是引用块必须独占一行必须与包管理器description字段一致如果在 GitHub 上还必须与 GitHub 仓库描述一致。这一段的工程意义在于单一事实来源README 首行描述、包管理器的 description 字段、GitHub 描述三者保持一致搜索引擎和平台才能索引到同一段项目简介。本仓库的 package.json见 package.json中description: A standard style for README files与 README 首行描述完全一致正是该要求的实例。建议借助gh-description这类工具同步 GitHub 描述或用npm show . description查看本地 npm 包的 description。长描述可选不能有自己的标题如果文件夹、仓库或包管理器名称不匹配必须在这里说明原因对应标题段落的要求。建议如果太长考虑把内容移到背景段落应当覆盖构建该仓库的主要原因。规范引用了 perlmodstyle 作者 Kirrily Skud Robert 的经典建议长描述应大致描述你的模块通常只需几个段落更细节的例程或方法、冗长的代码示例和深入内容应放到后续段落。理想情况下对模块稍有了解的读者不需要按 Page Down 就能唤起记忆随着读者继续阅读他们会获得越来越多的知识。——这正是 README自顶向下、由浅入深的信息架构原则。目录必须不足 100 行的 README 可选必须链接到文件中的所有段落必须从下一个段落开始不要包含标题本身和目录这个标题必须至少有一层深度必须捕获所有二级标题Markdown 的##、Org Mode 的**、HTML 的h2等。建议可以额外捕获第三、第四级标题对于很长的目录这些更深层条目是可选的。目录把 README 变成可快速跳转的导航文档这是它与文档而非代码定义模块理念的直接呼应。安全可选如果安全问题足够重要、需要突出强调可以放在这个位置否则应放进额外部分。背景可选必须覆盖动机为什么做这个项目必须覆盖抽象依赖项目依赖的上层概念/生态而非具体依赖列表必须覆盖知识来源intellectual provenance此时设置一个参见See Also小节也很合适。安装默认必须纯文档仓库可选必须包含一个说明如何安装的代码块子段落Dependencies如果存在不寻常的依赖、或需要手动安装的依赖则该子段落为必须。建议可以链接到对应编程语言的必备站点如 npmjs、godocs包含安装所需的系统特定信息对存在多个版本的包增加一个Updating更新段落会很有用。用法默认必须纯文档仓库可选必须包含一个展示常见用法的代码块如果支持 CLI必须给出指示常见用法的代码块如果可被导入importable必须同时给出导入方式与用法的代码块子段落CLI只要存在 CLI 功能该子段落就是必须的。建议覆盖可能影响使用方式的基本选择——例如 JavaScript 项目要说明 promise/callback、ES6 等用法差异如果相关指向一份可运行的用法示例文件。Usage 与 Install 一起构成了 README 的动手部分让用户不读源码就能跑起来。额外部分可选该位置用于容纳 0 个或多个与项目相关的其他段落每个段落都必须有自己的标题不要真的把这一节命名为额外部分位置在用法之后、API之前如果安全内容不够重要、未放在上方则应放到这里。API可选必须描述导出的函数和对象。建议描述签名、返回类型、回调和事件标明不明显non-obvious的类型描述注意事项如果使用外部 API 生成器如 go-doc、js-doc 等可以在此指向一份外部的API.md文件——这种情况下该文件可以是这一节的全部内容。维护者可选必须命名为Maintainer或Maintainers必须列出仓库维护者并附上至少一种联系方式如 GitHub 链接或邮箱。建议这应当是一份小名单——真正负责项目方向、应该被 ping 的人而不是所有拥有访问权限的人例如整个组织。列出前任维护者也是一种好的署名与礼貌。致谢可选必须命名为Thanks、Credits或Acknowledgements建议说明对项目开发有重要帮助的人或事并给出适用的公开联系链接。如何贡献必须必须说明用户可以在哪里提问必须说明是否接受 Pull Request必须列出贡献的任何要求例如提交需要 sign-off。建议链接到 CONTRIBUTING 文件如果有措辞尽量友好链接到 GitHub issues链接到行为守则Code of Conduct——CoC 常位于贡献段落/文档或组织级位置不一定在每个仓库重复全文但强烈建议始终链接到其所在位置在此处设置一个列出贡献者的子段落也是受欢迎的。许可证必须必须声明许可证全名或标识符以 SPDX 许可证列表为准未授权仓库写UNLICENSED如需更多细节写SEE LICENSE IN filename并链接到许可证文件该要求沿袭自 npm 的 package.json 规范必须声明许可证持有人必须是最后一个段落。建议链接到仓库内更完整的许可证文件。本仓库以 MIT 协议开源版权归 Richard Littauer完整文本见 LICENSE其 license 字段也在 package.json 中声明为MIT——规范、README 与包元数据三者保持一致。定义文档存储库规范中出现的术语文档存储库documentation repositories指不包含任何功能代码的仓库。这类仓库例如个人知识库没有可安装、可运行的功能因此 Install 与 Usage 段落对它们从默认必须降级为可选。安装与使用把规范打印到终端规范文档本身就是一份可运行的文档包。根据 README.zh-CN.md本地安装方式如下项目基于 Node 与 npm请先确保本地已安装二者$ npm install --global standard-readme-spec安装后即可在终端打印出 spec.md 的完整内容$ standard-readme # Prints out the standard-readme spec需要说明的是中文版文档中写作standard-readme-spec而英文版 README.md 与仓库的实际可执行命令名均为standard-readme——从 package.json 的bin字段可以看到映射关系standard-readme: cat.js即全局安装后提供的命令是standard-readme。其实现非常轻量cat.js 的核心逻辑只有两行用 Node 内置的fs.readFileSync读取与脚本同目录的spec.md再console.log输出到终端。整个安装使用流程本质上是把规范文档以 npm 包形式分发供随时查阅。另外遵循规范本身不需要安装任何东西——规范是一份写作指南不是运行时依赖。npm 包只是方便你随时把规范打出来对照检查。生成器快速搭出 README 框架如果你不想从零开始排版可以使用配套的生成器generator-standard-readme快速搭建新的 README 框架。该生成器包提供一个全局可执行文件命令别名同样是standard-readme用法请以该生成器包自身的说明为准。生成器 规范 提示器构成了完整的创建—校验—维护工具链生成器负责脚手架规范负责定义正确形态提示器仍在开发中负责事后检查语法错误。徽章让合规被一眼看见如果你的项目遵循 Standard-Readme 规范并且托管在 GitHub 上非常建议把合规徽章加入 README 顶部——它让读者一眼看到这份 README 是标准化的让更多人访问并采纳该规范。加入徽章并非强制的。徽章本体使用 Shields.io一个广受欢迎的、为项目与文档生成可定制徽章的服务渲染。在 Markdown 中加入徽章的代码如下[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?styleflat-square)](https://github.com/RichardLitt/standard-readme)实践中推荐把徽章放在 README靠近顶部的位置让重要信息立刻可见同时不要堆砌过多徽章过多的徽章会让 README 显得杂乱、降低可读性。徽章在排版上也必须遵守规范不能有自己的标题并且每个徽章要用换行符分隔。示例 README从极简到全量想看规范如何落地可以直接阅读 example-readmes/ 目录下的两份示例minimal-readme.md采用默认最小选项仅包含规范要求的骨架——标题、简短描述、Install含代码块、Usage含代码块、Contributing声明PRs accepted、LicenseMIT © Richard McRichface。它演示了只有必须段落时 README 应有的样子也是不足 100 行时可省略目录的依据所在。maximal-readme.md采用全量选项几乎覆盖每个可选段落——标题后紧跟本地横幅图text_wordmark_dark.png、四个徽章、简短描述 长描述、完整目录Security/Background/Install/Usage/API/Contributing/License、Security、Background、Install、Usage、API、更多可选段落、Contributing并指出编辑 README 需符合 standard-readme 规范、License。它是理解每个段落要求与建议的活教材。此外本仓库的 README.md 与 README.zh-CN.md 本身就是完全合规的示例——标题、简短描述、目录、背景、安装、使用、徽章、示例、相关仓库、维护者、贡献、许可证一应俱全可以逐段对照 spec 学习。相关仓库围绕 README 写作这一主题社区还有两个值得参考的项目Art of Readme讲述写高质量 README 的艺术open-source-template一份鼓励参与开源的 README 模板。维护、贡献与许可证维护者RichardLitt。如何贡献欢迎通过提交 Issue 或 Pull Request 参与标准 Readme 遵循 Contributor Covenant 1.3.0 行为规范。许可证本项目以 MIT 协议发布版权归 Richard Littauer。总而言之standard-readme 提供了一套有规范、有工具、有范例的完整方案以 spec.md 定义 README 的唯一正确骨架以 example-readmes/ 提供从极简到全量的参照以 npm 包standard-readme命令实现见 cat.js让规范随手可查再以徽章形成生态内的可视化认同。无论你的项目使用哪种语言和包管理器都可以把这份规范直接引入让 README 从随手写的说明升级为用户、搜索引擎与工具都能稳定依赖的文档接口。赞分享文档开发工具【免费下载链接】standard-readmeA standard style for README files项目地址https://gitcode.com/gh_mirrors/st/standard-readme点击查看免费下载相关推荐standard-readme 规范完全指南为开源项目编写标准、可维护的 READMEstandard readme 规范完全指南为开源项目编写标准、可维护的 README 导读 本文以 standard readme 项目仓库中的 READ文档开发工具Standard Readme 规范全解析为开源项目编写标准化 README 的完整指南Standard Readme 规范全解析为开源项目编写标准化 README 的完整指南 Standard Readme 是一份面向开源库的 README 编文档开发工具CommonDevKnowledge开发规范README文档与代码编写标准详解CommonDevKnowledge开发规范README文档与代码编写标准详解 想要让你的开源项目脱颖而出掌握专业的README文档规范和代码编写标准是关键文档知识库移动开发上一篇深度拆解MyComputerManager如何用3大核心技术驯服Windows顽固快捷方式下一篇Visual C运行库修复工具终极解决方案解决Windows软件兼容性问题创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表