惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
量子位
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
Blog — PlanetScale
Blog — PlanetScale
月光博客
月光博客
Google DeepMind News
Google DeepMind News
小众软件
小众软件
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
MongoDB | Blog
MongoDB | Blog
B
Blog RSS Feed
博客园 - Franky
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog
博客园 - 聂微东
The GitHub Blog
The GitHub Blog
Recent Announcements
Recent Announcements
Y
Y Combinator Blog
Microsoft Security Blog
Microsoft Security Blog
雷峰网
雷峰网
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell

Donghai's Blog

使用DBeaver连接Dynamics 365 Dataverse | Donghai C# 技术备忘 - LINQ | Donghai 为Astro站点添加Google Analytics | Donghai C# 技术备忘 - LINQ - Donghai’s Blog 20260819 说些什么 | Donghai Dynamics 365 interview questions | Donghai C# 技术备忘 (1) | Donghai Dynamics 365 事件框架、事件执行管道 | Donghai 马拉松配速表 | Donghai 马拉松赛事分级 | Donghai 抖音创作日志(2026年) | Donghai 2026年跑步日志(5月开始) | Donghai 2FA | Donghai 初尝Github Actions | Donghai AstroPaper主题添加Waline评论 | Donghai Dynamics 365集中视图/聚焦视图/Focused View | Donghai AstroPaper主题添加GitHub风格的Markdown警告框 | Donghai AstroPaper主题自定义记录 | Donghai 我日常收藏的优质网站资源导航(持续更新) | Donghai 如何从归档页批量获取URL并提交到Bing Webmaster Tools | Donghai PaperMod 使用 Zeoseven 自定义网页字体 | Donghai 我常用的Prompt | Donghai Hugo默认时区导致本地预览文章不显示 | Donghai 通过手动提交工单解决Bing不收录网站问题 | Donghai 如何访问 Power BI 管理门户(Power BI Admin Portal) | Donghai 还在手敲时间戳?Win11输入法一个技巧,秒输当前时间戳 | Donghai 工作术语备忘录(持续更新) | Donghai 使用XrmToolBox导出安全角色表级权限到Excel | Donghai 24年的年终总结 | Donghai World笔记 | Donghai
PaperMod添加Giscus评论 | Donghai
Donghai · 2025-01-23 · via Donghai's Blog

PaperMod添加Giscus评论

Table of contents

Open Table of contents
  • 步骤 1 新建 giscus.html
  • 步骤 2 新建 comments.html
  • 步骤 3 添加评论组件
  • 步骤 4 维护 params.yml

步骤 1 新建 giscus.html

新建文件 layouts/partials/features/comments/giscus.html

{{ $id := .id | default "giscus-comments" }} {{- $langMap := dict "zh" "zh-CN"
"zh-tw" "zh-TW" "zh-hk" "zh-HK" "ar" "ar" "be" "be" "bg" "bg" "ca" "ca" "cs"
"cs" "da" "da" "de" "de" "el" "gr" "eo" "eo" "es" "es" "eu" "eu" "fa" "fa" "fr"
"fr" "he" "he" "hu" "hu" "id" "id" "it" "it" "ja" "ja" "km" "kh" "ko" "ko" "nl"
"nl" "pl" "pl" "pt" "pt" "ro" "ro" "ru" "ru" "th" "th" "tr" "tr" "uk" "uk" "uz"
"uz" "vi" "vi" -}} {{- $giscusLang := index $langMap site.Language.Lang |
default "en" -}}

<div id="{{ $id }}" class="giscus-container"></div>

<script>
  const getCurrentGiscusTheme = () => {
    const theme = document.documentElement.getAttribute("data-theme");
    return theme === "dark" ? "dark_dimmed" : "gruvbox";
  };
  const updateGiscusTheme = () => {
    const iframe = document.querySelector("iframe.giscus-frame");
    if (!iframe) return;

    iframe.contentWindow.postMessage(
      {
        giscus: { setConfig: { theme: getCurrentGiscusTheme() } },
      },
      "https://giscus.app"
    );
  };
  document.addEventListener("DOMContentLoaded", () => {
    const attrs = {
      src: "https://giscus.app/client.js",
      "data-repo": "{{ .Site.Params.comments.giscus.repo }}",
      "data-repo-id": "{{ .Site.Params.comments.giscus.repoId }}",
      "data-category": "{{ .Site.Params.comments.giscus.category }}",
      "data-category-id": "{{ .Site.Params.comments.giscus.categoryId }}",
      "data-mapping": "{{ .Site.Params.comments.giscus.mapping }}",
      "data-strict": "{{ .Site.Params.comments.giscus.strict }}",
      "data-reactions-enabled":
        "{{ .Site.Params.comments.giscus.reactionsEnabled }}",
      "data-emit-metadata": "{{ .Site.Params.comments.giscus.emitMetadata }}",
      "data-input-position": "{{ .Site.Params.comments.giscus.inputPosition }}",
      "data-theme": getCurrentGiscusTheme(),
      "data-lang": "{{ $giscusLang }}",
      "data-loading": "lazy",
      crossorigin: "anonymous",
      async: "",
    };
    const newScript = document.createElement("script");
    Object.entries(attrs).forEach(([k, v]) => newScript.setAttribute(k, v));
    document.querySelector("#giscus-comments").appendChild(newScript);
    const themeButtons = document.querySelectorAll("#theme-toggle");
    themeButtons.forEach(btn =>
      btn.addEventListener("click", () => {
        setTimeout(updateGiscusTheme, 60);
      })
    );
  });
</script>layouts/partials/features/comments/giscus.html

新建文件 layouts/partials/comments.html

{{- $commentsConfig := .Site.Params.comments -}} {{- $commentSystem :=
$commentsConfig.system -}}

<div class="comments-container">
  {{- if $commentsConfig.enabled -}} {{- if eq $commentSystem "giscus" -}} {{
  partial "features/comments/giscus.html" (dict "Site" $.Site "Page" $ "id"
  "giscus-comments") }} {{- else -}}
  <p style="background: yellow; color: red; text-align: center; padding: 10px">
    Oh! Unsupported comment system.
  </p>
  {{- end -}} {{- end -}}
</div>layouts/partials/comments.html

步骤 3 添加评论组件

根据自己的需要,在对应的页面添加评论组件,以 single.html 为了,在 </footer> 标签下添加

    {{- end }}
  </footer>

  {{- if (.Param "comments") }} 
  {{- partial "comments.html" . }} 
  {{- end }}  
</article>layouts/_default/single.html

步骤 4 维护 params.yml

comments:
  enabled: true
  system: "giscus"
  giscus:
    repo: "你的 repo"
    repoId: "你的 repoId"
    categoryId: "你的 categoryId"
    category: "Announcements"
    mapping: "pathname"
    strict: "0"
    reactionsEnabled: "1"
    emitMetadata: "0"
    inputPosition: "top"
    lang: "zh-CN"config/production/params.yml

(完)

如果这篇文章刚好帮到了你,欢迎请我喝杯咖啡