介绍

定位

Readue 是一个 README 一键式生成工具,它可以帮你免去从四处复制粘贴信息的烦恼,并始终保持和项目本身的一致性。你可以通过 CLI 来快速生成 README,可以在 可视化界面中预览内容,在 Github Actions 中持续集成,更可以通过 API 方式对多个项目的 README 进行批量更新。

初衷

Readue 是一个我筹划已久的项目,它主要致力于解决信息一致性的问题。

信息一致性

在开源项目中,README 文件是项目的重要文档之一。它通常包含项目的介绍、使用方法、贡献指南等。它是一个项目最直观的信息载体,在项目创建或者发布第一个发行版时,我们通常都会认真地书写 README 文件,以更好地向用户展示项目。

但是随着项目的迭代,项目本身的内容也在不断变化,README 文件本应随之更新,但很遗憾地是,后期我们的重心往往会放在功能迭代,或专门的文档站点内容建设上,却忽略了 README 才是用户访问你的项目时第一眼看到的内容。

因此,Readue 应运而生,它旨在帮助开发者在项目迭代的过程中,及时保持 README 内容与项目本身的一致性。

功能特性

接下来我们会介绍 Readue 的主要功能特性。

1. 一键生成

对于开源项目来说,在 README 文件中的很多内容都是类似的,比如项目信息、证书、Monorepo 的子包信息等。但我们却需要为每个项目都手动书写这些内容,这无疑会浪费大量的时间。

使用 @readue/cli 工具在项目根目录执行 readue,即可一键写入 README。

2. 自定义块

Readue 将 README 的内容视为一个一个的内容块,每个内容块都由一个单独的插件来负责,接受统一的参数,输出不同的内容,用户可以根据自己的需要,灵活自定义生成的信息。

lexmin0412/readue 项目本身为例,它的块配置信息如下:

module.exports = {
	...,
	// 其他配置信息
	blocks: {
		type: 'custom',
		list: [
			"@readue/block-base_info",
			"@readue/block-packages",
			"@readue/block-star_history",
		]
	}
}

它使用了 @readue/block-base_info@readue/block-packages@readue/block-star_history 插件,Readue 会在运行过程中依次执行这些插件,并将它们返回的内容拼接起来,最终生成 README。

当然,你也可以自定义自己的插件,来实现官方插件没有覆盖的需求。

使用方式

Readue 提供了 CLI 、API、可视化界面三种方式来生成 README,分别适用于不同的场景。

生成方式应用场景
CLI命令行工具,适用于 CI/CD 场景
APINode.js API,适用于批量更新 README
可视化界面所见即所得,使用成本低,适用于一次性操作