Reference
https://www.zhihu.com/question/31377141
https://help.github.com/articles/setting-up-an-apex-domain/
前言
本文将梳理出如何让 hexo 使用畅言;将整体需要实施的步骤记录如下,
首先,因为注册畅言,需要备案,所以,需要做的是,申请一个域名,然后将该域名重定向到 comedsh.github.io 上;
域名相关
申请域名
使用万维网申请,不过现在万维网已经被阿里收购了,所以需要登录阿里云进行申请;这里我申请的域名就是 shangyang.me
域名重定向
CNAME 设置
首先,需要在 hexo 本地工程中 source 目录中添加一个 CNAME 文件,1
shangyang.me
注意,内容不要写前缀www.
,否则只能映射 www.shangyang.me;github 的映射原理是,当通过 comedsh.github.io 进行访问的时候,会通过 CNAME 中配置的域名进行转发,这里会转发至 shangyang.me;
然后通过命令hexo generate --deploy
提交到 github 仓库中;
CNAME 的内容如下,
域名解析
进入阿里云的云解析,找到相关域名,点击解析
然后添加如下的解析记录,
两条 A 记录,一条 CNAME 记录,这样,就可以将 shangyang.me 域名映射到 comedsh.github.io 上面了;为什么需要输入上述两条 A 记录,参考官方解释 https://help.github.com/articles/setting-up-an-apex-domain/#configuring-a-records-with-your-dns-provider
添加好映射以后,等域名解析成功激活以后,阿里云解析很快,一般 1、2 分钟就激活了;激活以后,再次输入 shangyang.me 就可以访问到 comedsh.github.io 了;
备注,后面试了试,发现不添加 CNAME 也是可以的;而且这里也本不应该家 CNAME,因为该条记录的意思是,将 www.shangyang.me 解析到 comedsh.github.io 上,所以,这个关系是不对的;
域名备案
- https://beian.aliyun.com/ 进入备案平台
- 开始备案
- 验证备案类型
卡在这里了… 选择产品类型,要知道,github 使用的是国外的服务器,是不能备案的.. 所以,只能变通的去备案了,先注册一个国内的服务器,比如 ECS.. 然后搭建你的应用,通过备案,拿到备案号,让后再映射到你的 github 上…. 痛苦..
畅言相关
注册
去官网注册 https://changyan.kuaizhan.com/; 不过注册的时候需要提交备案号,否则只能试用期 14 天;注册完以后,会得到 client_id (appid) 和 client_secret(conf);
设置 jacman
在本地 hexo 的 jacman 中配置畅言的 javascript 使其生效,
配置 comment.ejs
路径
配置内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32<!--
<% if (theme.duoshuo_shortname && page.comments){ %>
<section id="comments" class="comment">
<div class="ds-thread" data-thread-key="<%- page.path %>" data-title="<%- page.title %>" data-url="<%- page.permalink %>"></div>
</section>
<% } %>
<% if( (config.disqus_shortname || theme.disqus_shortname) && page.comments) { %>
<section id="comments" class="comment">
<div id="disqus_thread">
<noscript>Please enable JavaScript to view the <a href="//disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
</section>
<% } %>
-->
<section id="comments" class="comment">
<div id="SOHUCS" sid="<%= page.title %>"></div>
<script>
(function(){
var appid = 'your appid',
conf = 'your app secret';
var doc = document,
s = doc.createElement('script'),
h = doc.getElementsByTagName('head')[0] || doc.head || doc.documentElement;
s.type = 'text/javascript';
s.charset = 'utf-8';
s.src = 'http://assets.changyan.sohu.com/upload/changyan.js?conf='+ conf +'&appid=' + appid;
h.insertBefore(s,h.firstChild);
window.SCS_NO_IFRAME = true;
})()
</script>
</section>注释掉之前默认的 duoshuo 和 disqus;添加畅言片段如下,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<section id="comments" class="comment">
<div id="SOHUCS" sid="<%= page.title %>"></div>
<script>
(function(){
var appid = 'your appid',
conf = 'your app secret';
var doc = document,
s = doc.createElement('script'),
h = doc.getElementsByTagName('head')[0] || doc.head || doc.documentElement;
s.type = 'text/javascript';
s.charset = 'utf-8';
s.src = 'http://assets.changyan.sohu.com/upload/changyan.js?conf='+ conf +'&appid=' + appid;
h.insertBefore(s,h.firstChild);
window.SCS_NO_IFRAME = true;
})()
</script>
</section>注意,如果你的网站使用的是 https 协议,那么引用 changyan 脚本的时候同样需要使用 https,否则不能显示;
1
s.src = 'https://assets.changyan.sohu.com/upload/changyan.js?conf='+ conf +'&appid=' + appid;