• 为Mkdocs网站添加评论系统(以giscus为例)


    官方文档:Adding a comment system

    这里我同样推荐giscus

    利用 GitHub Discussions 实现的评论系统,让访客借助 GitHub 在你的网站上留下评论和反应吧!本项目深受 utterances 的启发。

    • 开源。🌏
    • 无跟踪,无广告,永久免费。📡 🚫
    • 无需数据库。所有数据均储存在 GitHub Discussions 中。:octocat:
    • 支持自定义主题!🌗
    • 支持多种语言。🌐
    • 高可配置性。🔧
    • 自动从 GitHub 拉取新评论与编辑。🔃
    • 可自建服务!🤳

    言归正传

    第一步

    mkdocs.yml中添加

    theme:
      name: material
      custom_dir: overrides  #主要是这一行
    
    • 1
    • 2
    • 3

    参考下图新建overrides文件,在此文件下参考下图新建覆盖html文件
    树状结构如下

    我们评论只针对comments.html

    {% if page.meta.comments %}
      <h2 id="__comments">{{ lang.t("meta.comments") }}h2>
      
      <script src="https://giscus.app/client.js"
      data-repo="你的仓库名称(如Wcowin/hexo-site-comments)"
      data-repo-id=" "
      data-category=" "
      data-category-id=" "
      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>
      
      <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 %}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54

    第二步

    打开https://giscus.app/zh-CN 走完这个页面的流程就会得到(这会在你的Github创建新的仓库,建议自己先去新建个 Discussions)

    <script src="https://giscus.app/client.js"
            data-repo="[在此输入仓库]"
            data-repo-id="[在此输入仓库 ID]"
            data-category="[在此输入分类名]"
            data-category-id="[在此输入分类 ID]"
            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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    复制将此代码,替换comments.html中41~55的代码

    mkdocs server一下

    最后

    在你想插入评论的地方的元数据:comments: true

    ---
    title: 留言板
    hide:
      #  - navigation # 显示右
      #  - toc #显示左
      #  - footer
      #  - feedback  
    comments: true  #默认不开启评论
    ---
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    效果

    完美!快速相应

  • 相关阅读:
    Ubuntu20.04同时安装ROS1和ROS2
    【学习笔记】CF1456E XOR-ranges
    C++----二叉树的进阶
    java Boolean 比较
    贪心算法(三)——最佳合并模式
    驱动开发:内核枚举LoadImage映像回调
    中国科学院大学计算机考研资料汇总
    达梦数据库使用IPV6连接
    计算机毕业设计之java+javaweb的医院门诊挂号系统
    GIC/ITS代码分析(6)中断处理
  • 原文地址:https://blog.csdn.net/m0_63203517/article/details/133819706