前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版

Hexo博客接入gitalk评论系统

首页2018-11-20 17:09:08Front-End
Hexo

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

# 一、申请GitHub Application

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

  • Application name: # 应用名称,随意
  • Homepage URL: # 网站URL,如 http://blog.poetries.top
  • Application description # 描述,随意
  • Authorization callback URL:# 网站URL, http://blog.poetries.top

点击注册后,页面跳转如下,其中Client ID和Client 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
@前端进阶之旅: 代码已经复制到剪贴板
fe
  • 一、申请GitHub Application
  • 二、fexo配置主题
  • 三、next主题配置

← webpack 打包结果依赖分析,找出产物里的体积大头移动端优化篇 →