GitHub:如何让 `utteranc.es` 用于网站讨论

GitHub: How to get `utteranc.es` to work for website discussion

我的网站https://friendly.github.io/HistDataVis/ wants to use the seemingly light weight and useful discussion feature offered by the https://github.com/utterance应用

我相信我已经在我的存储库中正确安装了它,https://github.com/friendly/HistDataVis,但是它在构建时没有出现在网站上。

我对如何确定问题所在或如何纠正问题感到困惑。有人可以帮忙吗?

作为参考,这是我的设置:

    <script>
      document.addEventListener("DOMContentLoaded", function () {
        if (!/posts/.test(location.pathname)) {
          return;
        }
        
        var script = document.createElement("script");
        script.src = "https://utteranc.es/client.js";
        script.setAttribute("repo", "friendly/HistDataVis");
        script.setAttribute("issue-term", "og:title");
        script.setAttribute("crossorigin", "anonymous");
        script.setAttribute("label", "comments ??");
        
        /* wait for article to load, append script to article element */
          var observer = new MutationObserver(function (mutations, observer) {
            var article = document.querySelector("d-article");
            if (article) {
              observer.disconnect();
              /* HACK: article scroll */
                article.setAttribute("style", "overflow-y: hidden");
              article.appendChild(script);
            }
          });
        
        observer.observe(document.body, { childList: true });
      });
    </script>
    ---
    title: "Discussion"
    date: "`r Sys.Date()`"
    output: 
      distill::distill_article:
        toc: true
        includes:
          in_header: utterances.html
    ---

编辑2 按照@laymonage 建议的解决方案,我修复了脚本。我现在在我的网页上看到评论部分,但是当我尝试使用它时出现错误,“未安装话语”。然而,正如我刚刚检查的那样,话语安装。

您的这部分代码:

if (!/posts/.test(location.pathname)) {
  return;
}

阻止脚本的其余部分加载,因为它总是 true

条件检查location.pathname的值是否通过正则表达式测试字符串posts并取反(!)。这意味着条件是 true 如果 location.pathname (当前 [=40= 的路径名],例如 /HistDataVis/ for https://friendly.github.io/HistDataVis/)不包含 posts 字符串中的任意位置。您网站上的 None 个页面在 pathname 中有 posts,因此脚本将在那里结束。

如果您将 /posts/ 更改为 /HistDataVis 或者完全删除 if 块,它应该可以工作。


或者,您也可以尝试 giscus, a similar project that uses GitHub Discussions instead of Issues. Someone already made a guide on how to use it with Distill免责声明:我是 giscus 的开发者。