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/
