增加依托于 github issue 的免费评论系统
Giscus 是一个依托于 GitHub Discussion 系统的评论模块,用户可以通过 GitHub 账号登陆,还支持 markdown 格式的评论,界面既简洁又好看。
例子可以参见本页面的最底部。
在你可以使用 Giscus 之前,你需要完成以下步骤:
配置 giscus 专用仓库
- 该仓库是公开的,否则访客将无法查看 discussion。
- giscus app 已安装,否则访客将无法评论和回应。 点此安装。
- Discussions 功能已在你的仓库中启用。启用路径为项目的
Settings
-Features
-Discussions
。
在线生成自己的专用配置
访问 Giscus 并通过他们的配置工具生成代码片段以加载评论系统。 复制该代码片段用于下一步。生成的代码片段应该看起来与此类似。
<script
src="https://giscus.app/client.js"
data-repo="<username>/<repository>"
data-repo-id="..."
data-category="..."
data-category-id="..."
data-mapping="pathname"
data-reactions-enabled="1"
data-emit-metadata="1"
data-theme="light"
data-lang="en"
crossorigin="anonymous"
async
>
</script>
配置 comments.html,并放到 overrides/partials 目录下
comments.html(默认情况下为空)是添加 Giscus 生成的代码片段的最佳位置。 遵循主题扩展指南并用 覆盖 comments.html。用你在上一步中使用 Giscus 配置工具生成的代码片段替换突出显示的行。
{% if page.meta.comments %}
<h2 id="__comments">{{ lang.t("meta.comments") }}</h2>
<script
src="https://giscus.app/client.js"
data-repo="<username>/<repository>"
data-repo-id="..."
data-category="..."
data-category-id="..."
data-mapping="pathname"
data-reactions-enabled="1"
data-emit-metadata="1"
data-theme="light"
data-lang="en"
crossorigin="anonymous"
async
>
</script>
<!-- Synchronize Giscus theme with palette -->
<script>
var giscus = document.querySelector("script[src*=giscus]")
// Set palette on initial load
var palette = __md_get("__palette")
if (palette && typeof palette.color === "object") {
var theme = palette.color.scheme === "slate"
? "transparent_dark"
: "light"
// Instruct Giscus to set theme
giscus.setAttribute("data-theme", theme)
}
// Register event handlers after documented loaded
document.addEventListener("DOMContentLoaded", function() {
var ref = document.querySelector("[data-md-component=palette]")
ref.addEventListener("change", function() {
var palette = __md_get("__palette")
if (palette && typeof palette.color === "object") {
var theme = palette.color.scheme === "slate"
? "transparent_dark"
: "light"
// Instruct Giscus to change theme
var frame = document.querySelector(".giscus-frame")
frame.contentWindow.postMessage(
{ giscus: { setConfig: { theme } } },
"https://giscus.app"
)
}
})
})
</script>
{% endif %}
.
├─ overrides/
│ └─ partials
│ └─ comments.html
│ └─ base.html
└─ mkdocs.yml
大功告成
现在你可以通过在 md 文件中将 comments 设置为 true 来在页面上启用评论:
---
comments: true
---
# Page title
...
官方文档: 1. https://squidfunk.github.io/mkdocs-material/setup/adding-a-comment-system/?h=comment
评论
本文总阅读量次