Gitalk评论系统如何只在文章和指定页面内出现

前言

我使用Gitalk评论系统主要原因是我可以查看给我评论的各位Github大佬的仓库,说不准可以学点啥。其次是Gitalk虽然要登录Github,但它的PC端和手机端界面都看着舒服,而且评论数据在自己可控范围,不会随意被ban。

gitalk:一个基于 Github Issue 和 Preact 开发的评论插件
官方Demo:https://gitalk.github.io/
官方文档说明:点击查看

欢迎来到我的小屋https://ahh666.com

以下是我希望Gitalk设置的效果:

  1. 在文章和指定自建页面(关于about页面)出现,不在标签tags和分类categories出现评论系统。
  2. 配置在主题的配置文件_config.yml里直接可以设置,方便未来信息的更改。
  3. 自动初始化。

但接踵而来的问题是Gitalk设置的效果并不理想。
一开始参考了asdfv1929大佬的设置方法点击查看方法,设置略微麻烦(万一哪天想删掉Gitalk还有点麻烦),设置完后发现效果不是我想象中的那样(标签tags和分类categories,甚至是自建的热度排行页面都有Gitalk评论系统)。 【点击查看如何建热度排行页面】
接着我参考cr1753343566大佬直接在post.swing中添加Gitalk代码点击查看方法。但最后发现只能在文章中出现评论系统,在自建的关于about页面无法实现评论系统(想拿来当留言板),而且没办法自动初始化,这一点官方设置可以解决。其次,一旦想同时在文章和多个自建页面设置,每次想修改,必须打开post.swing找到那一堆代码修改。可视化和可操控性略差。

于是我决定结合cr1753343566大佬的简便操作和asdfv1929大佬的可操作性。再加上自己的研究来完成我理想的效果。
(其实asdfv1929的方法不麻烦,只是需要在各个不同文件夹操作,对于我来说有点眼花缭乱?丢人了)
Σ(っ °Д °;)っ

第一步:新建一个OAuth Application

在GitHub上注册新应用,链接:https://github.com/settings/applications/new
Gitalk评论系统如何只在文章和指定页面内出现_第1张图片

点击注册后,页面跳转如下,其中Client IDClient Secret在后面的配置中需要用到,到时复制粘贴即可:[1] Gitalk评论系统如何只在文章和指定页面内出现_第2张图片

不小心关掉页面,找不到Client ID的话,可以参考下面步骤找到:
或者打开https://github.com/settings/developers
Gitalk评论系统如何只在文章和指定页面内出现_第3张图片Gitalk评论系统如何只在文章和指定页面内出现_第4张图片

第二步:本地设置

创建新的页面(关于About)

在Git中输入hexo n page <页面名字>创建页面(创建过的读者无视这条)

例如:
创建

gitalk.swig

新建/themes/next/layout/_macro/gitalk.swig文件和/themes/next/layout/gitalk.swig文件,并且2个都添加内容:
(在2个目录下建相同的gitalk.swig,如果有大佬可以只建一个文件的办法可以评论告诉我)

	
	
	 
	

_config.yml

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

# 配置gitalk
gitalk:
  enable: true  //是否可见
  githubID: Github的用户名 //如:AhaoHe
  repo: 仓库名称 //如:ahaohe.github.io
  ClientID: 12345678  //填上面得到的Client ID
  ClientSecret: ssssssss //填上面得到的Client Secret
  adminUser: XXXXX //指定可初始化评论账户
  distractionFreeMode: true

post.swing

找到/themes/next/layout/_macro/post.swing文件,打开并在最下面且在**{% endmacro %}**上面添加如下内容:

	
{% if not is_index and theme.gitalk.enable %} {% include 'gitalk.swig' %} {% endif %}

如图所示:
Gitalk评论系统如何只在文章和指定页面内出现_第5张图片

page.swig

找到/themes/next/layout/page.swig文件,打开并在**{% else %}上面和各种{% elif page.type === ‘xxxx’ %}**下面添加如下内容:

	about可以替换成你想出现Gitalk的自建页面的名字
	                         ↓
	{% elif page.type === 'about' %}
		{{ page.content }}
		
{% if not is_index and theme.gitalk.enable %} {% include 'gitalk.swig' %} {% endif %}

如图所示:
Gitalk评论系统如何只在文章和指定页面内出现_第6张图片

完成/展示

只要初始化过一个评论区,其他评论区也会自动初始化。
点击查看展示页面

Gitalk评论系统如何只在文章和指定页面内出现_第7张图片

结语

  1. 在文章和指定自建页面(关于about页面)出现,不在标签tags和分类categories出现评论系统。
  2. 配置在主题的配置文件_config.yml里直接可以设置,方便未来信息的更改。
  3. 自动初始化。

以上三点都完成了,基本符合我的预期要求


错误解决

主要问题有:

  1. 使用Github账户登陆评论区时会返回首页或者404报错
  2. 使用Github账户登陆评论区时401报错
  3. 未找到相关的Issues进行评论,请联系XXX进行创建
  4. Error Not Found
  5. Error: Validation Failed
  6. 评论初始化404

以下链接也许会帮助你解决问题:

  1. (推荐)【已解决】Hexo NexT使用Gitalk未找到相关的Issues进行评论Error:Validation Failed- Junzhou Liu
  2. hexo next 主题配置 gitalk 评论后无法初始化创建 issue
  3. GitTalk评论配置-评论初始化404-LSCR7 / cr1753343566(虽然底下给出了解决办法,但我本人使用后好像没效果。)

参考文献


[1] Hexo NexT主题中集成gitalk评论系统 . asdfv1929 [引用日期 2019-4-11]
[2] GitTalk评论配置 . LSCR7 [引用日期 2019-4-11]

你可能感兴趣的:(Blog)