Catalog npm
Back to packageRELEASE DETAILS

0.3.0

npm

0721c

GitHub Issue submissions, human review and readable static comment trees

Published5 Oct 2026
Direct dependencies7
Transitive dependenciesNot calculated

README

Current package documentation

0721c

基于 GitHub Issue 投稿评论、PR 审核评论、Actions 自动生成评论索引的前端评论系统。

读者点击网站上的“发表评论”或“回复”,在 GitHub 中填写正文。提交后,工作流将评论转成审核 PR 并关闭 Issue;维护者合并 PR 后,评论显示在网站上。

开始使用

安装到网站项目:

npm install 0721c

直接初始化评论仓库:

npx 0721c init ./blog-comments

准备一个公开的 GitHub 评论仓库,以及要接入评论的网站。评论仓库与网站源码仓库分别管理。

  1. 初始化评论仓库:安装工具、生成分支、上传并设置 Actions。
  2. 接入网站:Nuxt Content 或 Vue / JavaScript。
  3. 从网站提交一条评论,在评论仓库审核 PR,合并后查看网站上的评论。
  4. 按需设置邮件通知,在文章收到评论或评论收到回复时发送提醒。

本地工具要求 Node.js 22 或更新版本、Git。Vue 组件要求 Vue 3.5,Nuxt 模块支持 Nuxt 3.17 至 4.x。 当前版本为 0.3.1,安装方式见初始化说明。

Nuxt Content 接入示例

在 nuxt.config.ts 中指定评论仓库和文章路径:

export default defineNuxtConfig({
  modules: ['@nuxt/content', '0721c/nuxt'],
  comments0721c: {
    repository: 'OWNER/REPO',
    siteUrl: 'https://blog.example',
    content: { pathPrefixes: ['/article'] },
  },
});

在公共文章模板的正文后挂载组件,其中 page 是当前查询到的 Content 文档:

<ClientOnly>
  <ContentComments0721c :document="page" />
</ClientOnly>

组件从文档取得文章路径和标题。详细配置、Front Matter 和样式示例见 Nuxt Content 接入。

自定义评论区文案

在 comments0721c 中设置 messages,统一覆盖网站提示:

messages: {
  error: '评论加载失败,请注意,评论系统需要确保当前网络环境能够连接 GitHub',
  stale: '刷新失败,请确保当前网络环境能够连接 GitHub',
}

未填写的键继续使用内置文案。完整配置见自定义文案。

评论仓库

分支用途日常操作
main工作流、运行文件和配置调整策略,更新运行文件
comments已审核的评论记录合并评论 PR,编辑或删除评论
index前端读取的文章评论树由工作流生成

例如文章 /article/essay/2026-09-28-hello 的数据保存在:

comments 分支
article/essay/2026-09-28-hello/comments-37.json

index 分支
article/essay/2026-09-28-hello.json

评论记录按文章路径分目录,文件名为 comments-<Issue 编号>.json。网站读取 index 分支中当前文章的 JSON 文件。

文档

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 9

Native requirements
7 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
lucide
Environment
{
  "local_name": "lucide",
  "alias": false,
  "peer_metadata": null
}
^0.468.0runtime
dompurify
Environment
{
  "local_name": "dompurify",
  "alias": false,
  "peer_metadata": null
}
3.4.16runtime
markdown-it
Environment
{
  "local_name": "markdown-it",
  "alias": false,
  "peer_metadata": null
}
15.0.2runtime
vue
Environment
{
  "local_name": "vue",
  "alias": false,
  "peer_metadata": null
}
3.5.43development
jsdom
Environment
{
  "local_name": "jsdom",
  "alias": false,
  "peer_metadata": null
}
30.1.1development
@nuxt/kit
Environment
{
  "local_name": "@nuxt/kit",
  "alias": false,
  "peer_metadata": null
}
4.5.2development
typescript
Environment
{
  "local_name": "typescript",
  "alias": false,
  "peer_metadata": null
}
5.9.3development
vue
Environment
{
  "local_name": "vue",
  "alias": false,
  "peer_metadata": {
    "optional": true
  }
}
>=3.5.0 <4peer
@nuxt/kit
Environment
{
  "local_name": "@nuxt/kit",
  "alias": false,
  "peer_metadata": {
    "optional": true
  }
}
>=3.17.0 <5peer

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "shasum": "374799f1f7fb7c5a0867b3ce4ef67e6a1ad9d1f2",
  "tarball": "https://registry.npmjs.org/0721c/-/0721c-0.3.0.tgz",
  "fileCount": 89,
  "integrity": "sha512-o7r55wXbtupr0x25LYOkdBGq8md2NhwWD/2+k3+G77yJT5/RS9qqDFABwdaY/F1gDtRF6g185thDzSKMALnjvA==",
  "signatures": [
    {
      "sig": "MEYCIQDpvFwQIdlDpLLxNBHgnL/qzkf9U9U32jzpq7zLoTl24gIhAJHK5lubtiLLcUaY1797JBFHwrGNXZIlheEqr1Gh0lno",
      "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
    },
    {
      "sig": "MEQCIA2v+s/m/lmrP4skj2XksoBSFGMySBT9chLdqLlb1IiaAiAvFB0s7m++kD8bcQ9lyi80NZzJ43d0dQBkGFynWSuswA==",
      "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
    }
  ],
  "unpackedSize": 256980
}

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 17:27 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:65fd7a46975478f1c115a4a704246b6284a63b1d3619f4bfeadd97a57f1e41fa

Other collected versions

0.3.16 OctView all collected versions →