Mobile wallpaper 1
477 字
2 分钟
Mizuki实现Giscus评论区
2025-09-13

准备工作#

  1. 新建一个github仓库,必须为public,开启discussion
  2. 打开giscus官网根据需求更改配置,配置完成后复制配置文件
    <script src="https://giscus.app/client.js"
    data-repo="Leaf-0w0/blog-giscus"
    data-repo-id="***"
    data-category="Announcements"
    data-category-id="***"
    data-mapping="pathname"
    data-strict="0"
    data-reactions-enabled="1"
    data-emit-metadata="0"
    data-input-position="top"
    data-theme="preferred_color_scheme"
    data-lang="zh-CN"
    data-loading="lazy"
    crossorigin="anonymous"
    async>
    </script>

配置Mizuki#

打开src/config.ts,将

export const commentConfig: CommentConfig = {
enable: false, // 启用评论功能。当设置为 false 时,评论组件将不会显示在文章区域。
twikoo: {
envId: "https://twikoo.vercel.app",
lang: "en", // 设置 Twikoo 评论系统语言为英文
},
};

修改为,将giscus: {}内的内容修改为你在官网获取到的配置文件

export const commentConfig: CommentConfig = {
enable: true, // 启用评论功能。当设置为 false 时,评论组件将不会显示在文章区域。
giscus: {
enable: true,
repo: "Leaf-0w0/blog-giscus",
repoId: "***",
category: "Announcements",
categoryId: "***",
mapping: "pathname",
strict: "0",
reactionsEnabled: "1",
emitMetadata: "0",
inputPosition: "top",
theme: "preferred_color_scheme",
lang: "zh-CN",
},
};

src/components/comment目录中添加一个文件,命名为Giscus.astro,可将Twikoo.astro文件删除

---
import { commentConfig } from "@/config";
interface Props {
path: string;
}
const { path } = Astro.props;
const giscusConfig = commentConfig.giscus;
---
<div class="giscus-container">
{giscusConfig && (
<script src="https://giscus.app/client.js"
data-repo={giscusConfig.repo}
data-repo-id={giscusConfig.repoId}
data-category={giscusConfig.category}
data-category-id={giscusConfig.categoryId}
data-mapping={giscusConfig.mapping || "pathname"}
data-strict={giscusConfig.strict || "0"}
data-reactions-enabled={giscusConfig.reactionsEnabled || "1"}
data-emit-metadata={giscusConfig.emitMetadata || "0"}
data-input-position={giscusConfig.inputPosition || "top"}
data-theme={giscusConfig.theme || "preferred_color_scheme"}
data-lang={giscusConfig.lang || "zh-CN"}
data-loading="lazy"
crossorigin="anonymous"
async>
</script>
)}
</div>
<style>
.giscus-container {
width: 100%;
margin-top: 1rem;
}
</style>

修改同一目录下的index.astro,将

import Twikoo from "./Twikoo.astro"; //文件内第4行
if (commentConfig?.enable && commentConfig?.twikoo) { //文件内第16行
commentService = "twikoo"; //文件内第17行
{commentService === 'twikoo' && <Twikoo path={path} />} //文件内第22行

修改为

import Giscus from "./Giscus.astro";
if (commentConfig?.enable) {
if (commentConfig?.giscus) {
commentService = "giscus";
}
{commentService === 'giscus' && <Giscus path={path} />}

src/types/config.ts中的

twikoo?: TwikooConfig; //文件内第134行
type TwikooConfig = { //文件内第137行
envId: string; //文件内第138行
region?: string; //文件内第139行

修改为

giscus?: GiscusConfig;
type GiscusConfig = {
enable: boolean;
repo: string;
repoId: string;
category: string;
categoryId: string;
mapping?: string;
strict?: string;
reactionsEnabled?: string;
emitMetadata?: string;
inputPosition?: string;
theme?: string;

完成修改#

修改完毕后你的Mizuki主题就能使用giscus评论区了

Mizuki实现Giscus评论区
https://szh.rainettle.top/posts/mizuki_giscus/
作者
SuzuhaYuki
发布于
2025-09-13
许可协议
CC BY-NC-SA 4.0