Hexo 博客接入 gitalk 评论系统
一、申请 GitHub Application
https://github.com/settings/applications/new
Application name
: # 应用名称,随意Homepage URL
: # 网站 URL,如 http://blog.poetries.topApplication 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
官方文档:https://github.com/gitalk/gitalk/blob/master/readme-cn.md
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论