477 字
2 分钟
Mizuki实现Giscus评论区
准备工作
- 新建一个github仓库,必须为
public
,开启discussion
- 打开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/