当前位置: 首页 > news >正文

VitePress搭建-接入giscus的注意事项。

VitePress搭建-接入giscus的注意事项。

如何创建就不说了。教程很多。

说几个注意项目。

  1. 这是App地址,十分有用。
    在这里你可以直接获取到你使用的一些参数,以及检查你的仓库可不可用。
    仓库要求
  • 是 public的,这个很简单。
  • 安装giscus app 应用。 app安装地址,点进去就行,按步骤操作直接完成就好了。没别的问题。
  • 打开Discussions , settings 直接下拉,找到Discussions 勾选上。完成。
  1. 在使用giscus有几个用户信息需要自己填。好在 App地址 有工具。
  • 在repository 输入框输入 {用户名}/{仓库名} 后 他会检测仓库要求是否全部达成。
  • 然后就是设置Discussions 的相关设置,其中 Discussion Category 需要自己选的。也就是让你的评论储存在Discussions 的那块地方,有 announcements、General、Ideas,随便选。
  • 选完后,在往下会有这个。
<script src="https://giscus.app/client.js"data-repo="xxx" //后续需要用data-repo-id="xxx" //后续需要用data-category="General"//后续需要用data-category-id="xxx"//后续需要用data-mapping="pathname"data-strict="0"data-reactions-enabled="1"data-emit-metadata="0"data-input-position="bottom"data-theme="preferred_color_scheme"data-lang="zh-CN"crossorigin="anonymous"async>
</script>

有了这些信息就可以在VitePress用了。

在.vitepress 里的theme 文件夹里新建一个myLayout.vue文件。

<script setup lang="ts">
import Giscus from "@giscus/vue";import escookTheme from "@escook/vitepress-theme";
import { watch } from "vue";
import { inBrowser, useData } from "vitepress";const { isDark, page } = useData();const { Layout } = escookTheme;watch(isDark, (dark) => {if (!inBrowser) return;const iframe = document.querySelector("giscus-widget")?.shadowRoot?.querySelector("iframe");iframe?.contentWindow?.postMessage({ giscus: { setConfig: { theme: dark ? "dark" : "light" } } },"https://giscus.app");
});</script>
<template><Layout><template #doc-footer-before> </template><template #doc-after><div style="margin-top: 24px"><Giscus id="comments" repo="用户名/仓库名" repoId="仓库Id" category="分类名称"categoryId="分类Id" mapping="pathname" strict="0" reactions-enabled="1"emit-metadata="0" input-position="bottom" lang="zh-CN" crossorigin="anonymous":theme="isDark ? 'dark' : 'light'" /></div></template></Layout>
</template>
<style scoped></style>

把之前拿到的repo、repoId、category、categoryId填上去。

escookTheme 是我用的自定义主题,如果不用用DefaultTheme 也就行

import DefaultTheme from "vitepress/theme";
const { Layout } = DefaultTheme;

然后在theme的index 文件引用即可。

import { h } from "vue";
import type { Theme } from "vitepress";import "@escook/vitepress-theme/style.css";
import "./style.css";
import myLayout from "./components/myLayout.vue";import dataShow from "./components/dataShow.vue";export default {Layout: () => {return h(myLayout, null, {});},enhanceApp({ app, router, siteData }) {app.component("dataShow", dataShow);},
} satisfies Theme;

完成。

相关文章:

  • 第十章 继承与派生
  • PCL库开发入门
  • 【C++】win 10 / win 11:Dev-C++ 下载与安装
  • 域名解析,配置Linux系统的固定IP地址
  • 大模型应用开发自学笔记
  • 右起第2个LED灯的闪烁(STC89C52单片机)
  • 车载测试用例开发-如何平衡用例覆盖度和测试效率的方法论
  • SpringBoot Actuator健康检查:自定义HealthIndicator
  • MySQL完整版进阶及附录
  • Linux 420 find stat touch tree scp crontab
  • 【去哪儿网】登录滑块逆向算法AES加密分析(逆天滑块轨迹)
  • C++学习:六个月从基础到就业——内存管理:RAII原则
  • 【重走C++学习之路】14、多态
  • Oracle高级语法篇 - 用户与角色关系
  • 【中级软件设计师】语言处理程序(汇编程序、解释程序、编译程序)附软考真题
  • Java表达式2.0
  • 【中间件】redis使用
  • 【第三十二周】CLIP 论文阅读笔记
  • 计算机视觉与深度学习 | RNN原理,公式,代码,应用
  • 在 Debian 12 中恢复被删除的 smb.conf 配置文件
  • 北京市平谷区政协原主席王春辉接受纪律审查和监察调查
  • 吉林建筑大学党委原书记崔征接受纪律审查和监察调查
  • 马上评丨电子屏不如黑板?解决问题不能靠怀旧
  • 最高法:学校未及时发现并制止校园暴力行为,需承担侵权责任
  • 习近平同阿塞拜疆总统阿利耶夫会谈
  • 金光耀:被激活的复旦记忆