<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Disussions on Time Friend</title><link>https://time-friend.com/zh/tags/disussions/</link><description>Recent content in Disussions on Time Friend</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Tue, 06 May 2025 10:30:00 +0000</lastBuildDate><atom:link href="https://time-friend.com/zh/tags/disussions/index.xml" rel="self" type="application/rss+xml"/><item><title>评论系统怎么接入博客的</title><link>https://time-friend.com/zh/archive/blog-architecture-giscus/</link><pubDate>Tue, 06 May 2025 10:30:00 +0000</pubDate><guid>https://time-friend.com/zh/archive/blog-architecture-giscus/</guid><description>&lt;p&gt;博客不能没有评论. 但又不想为了一个评论功能去搞数据库和 moderation. Giscus 是一个折中方案.&lt;/p&gt;
&lt;p&gt;这个博客的评论系统用的是 Giscus. 它基于 GitHub Discussions. 所有评论都直接存在 GitHub 仓库里, 不需要自建数据库, 不需要第三方服务.&lt;/p&gt;
&lt;h1 id="整体流程"&gt;整体流程&lt;/h1&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;用户打开文章页
 ↓
加载 giscus.app/client.js
 ↓
Giscus 脚本读取 data- 属性配置
 ↓
根据 mapping=&amp;#34;pathname&amp;#34; 取当前 URL 路径
 ↓
用 GitHub Discussions API 查询匹配的 Discussion
 ↓
找到 → 渲染评论框和已有评论
未找到 → 显示&amp;#34;留个评论吧&amp;#34;输入框
 ↓
用户写评论 → 点击发布
 ↓
跳转 GitHub OAuth 授权 (首次需要)
 ↓
评论通过 API 写入仓库的 Discussions
 ↓
Giscus WebSocket 监听变更 → 实时更新评论区
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;整个过程用户无感知, 不需要离开页面.&lt;/p&gt;
&lt;h1 id="哪里对接"&gt;哪里对接&lt;/h1&gt;
&lt;p&gt;评论系统以 script 标签嵌入页面. 在 &lt;code&gt;layouts/partials/comments.html&lt;/code&gt; 里:&lt;/p&gt;</description></item></channel></rss>