终于,不用再一个个地提醒同事读README了

5,596 阅读4分钟

前言

你是否在参与有README.md的项目的编写时,老是在更改了README.md之后不厌其烦地一个一个告知同事去读README.md?你是否遇到过有人因为没读README.md,在修改代码的时候犯了低级错误?你是否在项目中有好几个甚至几十个README.md,而没有办法在README.md被修改之后及时地找到并阅读README.md?

现在好了,有了rtf-readme这个项目中的插件和相关CLI工具后,你再也不用担心上面的问题了。

rtf-readme项目地址:github.com/digshare/rt…

VSCode 插件地址: marketplace.visualstudio.com/items?itemN…

项目讨论QQ群:1029881641

rtf-readme项目功能一览

  • 支持在VSCode中,当打开/修改一个文件时,提醒查看修改这个文件所需要读的README文件。
  • 支持在CI中,使用命令行来查看是否有人 在没有阅读需要读的README 的情况下,修改了某个文件。
  • 支持在README中,使用glob patterns来指定某些文件在修改时需要读这个README。
  • 支持README文件中写父目录路径的glob patterns。
  • 支持自定义需要提示查看的README的路径。

过一遍项目的插件功能

rtf-readme项目分为三个部分:VSCode插件、命令行客户端、命令行服务端。其中,木帆科技已经提供了一个服务端,在生成配置文件的时候会自动添加到配置文件中,所以使用这个项目的童鞋们不用自己去找公网服务器部署了。而要使用VSCode插件、命令行客户端,必须要在项目中有个配置文件。

下面,我们就来尝试用VSCode插件来创建一个rtf-readme项目所需要的配置文件。

首先,我们需要下载vscode插件rtf-readme。在插件搜索框中输入rtf-readme,找到rtf-README插件,并下载。

下载完成后,按Ctrl+Shift+P快捷键,然后在弹出来的框中输入Create Config File,找到rtf-README插件所提供的命令“rtf-README: Create Config File”。

使用命令“rtf-README: Create Config File”来创建配置文件,一般server的URL直接使用默认的就好(除非你自己在某个公网服务器搭了个rtf-readme服务)。创建好的配置文件放在项目根目录里,

让我们来看看配置文件里都有啥。

如上图所示,配置文件中一共有4个子项,分别是(1) server: 支持数据中心化的公网服务器地址; (2) token: 用于指定某固定项目的字符串,一般一个项目用一个单独的token; (3) ignore: 这个字段指定插件和命令行工具要忽略的文件,支持glob pattern格式; (4) readme: 指定插件和命令行工具需要考虑到的README文件路径,支持glob pattern格式。

配置文件创建后,就可以开始使用插件提示和命令行检查了。当然,在使用前,我们得下载rtf-README插件(前面已经安装过了)以及在npm.js上下载rtf-reame包。

要让插件在打开文件的时候提示阅读README文件,首先,我们可以在根目录创建一个README.md文件,然后在里面输入 <!-- README ** --> ,这样写了以后,保存README.md,再打开项目中的其他文件,就可以看到VSCode的提醒读README的提示了。

另外,还可以在项目根目录执行yarn rtfr check来执行检查,看有没有文件被修改但却没读README的情况。这里的修改是指提交到git中,所以要测试这个功能,需要两个commit:先提交README.md,然后再提交这个README.md关联的文件。另外,还需要第二个commit和第一个commit的作者不同,且第二个commit的作者没有阅读第一个commit提交的README.md。

细心的童鞋可能已经注意到,在README文件添加glob patterns后,VSCode中打开的文件的左上方出现了一个n associated字样。

这个字样是rtf-README插件添加的,意思是这个文件有1个README与它相关联。点击上图中红框部分,还会弹出与这个文件相关联的README文件的文件名和路径。

服务器端简要说明

为了中心化README阅读的数据,需要起一个服务器来保存数据。为什么要中心化呢?因为数据存在本地的话,数据会随着分支切换而改变,这样一来就不好维护了。

服务器端记录了两种数据,分别是用户读过的README版本和使用rtf-readme check检查过的commit。前者是通过记录README相对路径和README的commit hash来实现记录README版本的。

碎碎念

有人可能不知道rtf是什么意思,其实rtf是read the f***ing的简写

我司其他项目推荐

magicspace,一个前端代码自动生成器。