介绍
Vssue (/'vɪʃuː/,由 "V" 和 "Issue" 组合而来) 是一个 Vue 组件 / 插件,可以为你的静态页面开启评论功能。
由于你的页面是“静态”的,你没有数据库和后端 API 的支持。但是你希望让你的页面拥有评论功能,让用户可以登录和发表评论。代码托管平台(如 Github、Gitlab、Bitbucket、Coding 等平台)提供了 OAuth API ,在它们的帮助下,Vssue 可以让用户通过这些平台的帐号登录,将评论存储在这些平台的 Issue 系统中,并在当前页面展示。
这也是 Vssue 名字的由来:由 Vue 驱动并基于 Issue 实现。
Vssue 是如何工作的
代码托管平台遵从 OAuth 2 spec 提供了 OAuth API。Vssue 利用平台提供的 OAuth API,使得用户可以登录并发表评论。
下面是 Vssue 的简要工作过程:
用户在平台的授权页面允许 Vssue 接入后,平台会带有 code
或 token
重定向回 Vssue 的页面(如果是 code
,Vssue 则会根据 code
向平台请求 token
)。
Vssue 获取 token
后,会将 token
存储在 localstorage 中,于是用户就成功使用平台的帐号“登录”到了 Vssue。
接下来, Vssue 就可以获取用户的基本信息、获取当前页面的评论,用户也可以发表评论了。
与类似项目的比较
Vssue 的灵感来自于 Gitment 和 Gitalk,但是和它们有些区别:
- Vssue 支持 Github、Gitlab 和 Bitbucket,并且很容易扩展到其它平台。Gitment 和 Gitalk 仅支持 Github。
- Vssue 可以发表、编辑、删除评论。Gitment 和 Gitalk 仅能发表评论。
- Vssue 是基于 Vue.js 开发的,可以集成到 Vue 项目中,并且提供了一个 VuePress 插件。 Gitment 基于原生JS,而 Gitalk 基于 Preact。