Hexo 博客接入 gitalk 评论系统

发布于 2024-10-11 06:15:55 字数 4637 浏览 7 评论 0

一、申请 GitHub Application

https://github.com/settings/applications/new

点击注册后,页面跳转如下,其中 Client IDClient Secret 在后面的配置中需要用到,到时复制粘贴即可

二、fexo 配置主题

这里以我个人博客的主题来配置

themes/fexo/layout/_partial/component/ 新建一个 gitalk.ejs

<% if (page.comments && theme.gitalk.enable){ %>
  <div id="gitalk-container"></div>
  <link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css">
  <script src="https://unpkg.com/gitalk/dist/gitalk.min.js"></script>
  <script type="text/javascript">
      var gitalk = new Gitalk({
        clientID: '<%=theme.gitalk.ClientID%>',
        clientSecret: '<%=theme.gitalk.ClientSecret%>',
        repo: '<%=theme.gitalk.repo%>',
        owner: '<%=theme.gitalk.githubID%>',
        admin: ['<%=theme.gitalk.adminUser%>'],
        id: location.pathname,
        distractionFreeMode: '<%=theme.gitalk.distractionFreeMode%>'
      })
      gitalk.render('gitalk-container')           
     </script>
<% } %>

themes/fexo/layout/_partial/component/comments.ejs 中加入

<div class="fexo-comments <%= className %>">
  <%- partial('disqus') %>
  <%- partial('duoshuo') %>
  <%- partial('gitalk') %> <!-- 加入上面新建的 -->
</div>

themes/fexo/layout/_partial/article.ejs 中的 article 文章后面加入

<!-- 使用 gitalk 作为评论系统 -->
<%- partial('gitalk') %>

/theme/fexo/source/css/style.css 中加入

/**gitalk css**/
.gt-header a, .gt-comments a, .gt-popup a{
  border-bottom: none;
}
.gt-container .gt-popup .gt-action.is--active:before{
  top: 0.7em;
}

在主题配置文件 _config.yml 加入

# 评论配置
gitalk:
  enable: true
  githubID: poetries
  repo: poetries.github.io   # 例:poetries.github.io
  owner: poetries
  ClientID: ''
  ClientSecret: ''
  adminUser: poetries #指定可初始化评论账户
  distractionFreeMode: true

然后回到文章页面,刷新页面后授权初始化就看到了

三、next 主题配置

新建 /layout/_third-party/comments/gitalk.swig 文件,并添加内容

  {% if page.comments && theme.gitalk.enable %}
  <link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css">
  <script src="https://unpkg.com/gitalk/dist/gitalk.min.js"></script>
   <script type="text/javascript">
        var gitalk = new Gitalk({
          clientID: '{{ theme.gitalk.ClientID }}',
          clientSecret: '{{ theme.gitalk.ClientSecret }}',
          repo: '{{ theme.gitalk.repo }}',
          owner: '{{ theme.gitalk.githubID }}',
          admin: ['{{ theme.gitalk.adminUser }}'],
          id: location.pathname,
          distractionFreeMode: '{{ theme.gitalk.distractionFreeMode }}'
        })
        gitalk.render('gitalk-container')           
       </script>
{% endif %}

修改 /layout/_partials/comments.swig ,添加内容如下,与前面的 elseif 同一级别上

{% elseif theme.gitalk.enable %}
 <div id="gitalk-container"></div>

修改 layout/_third-party/comments/index.swig ,在最后一行添加内容:

{% include 'gitalk.swig' %}

新建 /source/css/_common/components/third-party/gitalk.styl 文件,添加内容:

.gt-header a, .gt-comments a, .gt-popup a
  border-bottom: none;
.gt-container .gt-popup .gt-action.is--active:before
  top: 0.7em;

修改 /source/css/_common/components/third-party/third-party.styl ,在最后一行上添加内容,引入样式

@import "gitalk";

在主题配置文件 next/_config.yml 中添加如下内容

# 评论配置
gitalk:
  enable: true
  githubID: poetries
  repo: poetries.github.io   # 例:poetries.github.io
  owner: poetries
  ClientID: ''
  ClientSecret: ''
  adminUser: poetries #指定可初始化评论账户
  distractionFreeMode: true

官方文档:https://github.com/gitalk/gitalk/blob/master/readme-cn.md

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

捂风挽笑

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

玍銹的英雄夢

文章 0 评论 0

我不会写诗

文章 0 评论 0

十六岁半

文章 0 评论 0

浸婚纱

文章 0 评论 0

qq_kJ6XkX

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文