选择博客框架

现在主流的博客框架有hexo, jekyll, WordPress三款,其中WordPress应该算是功能最强大的,自带MySQL数据库,数量众多的插件和主题,支持自定义各种侧边小控件,还有一个图形化界面管理后台,但是不像前两者可以方便的搭在GithubPages上,需要自己买台服务器提供空间,而且对markdown的支持貌似也不如前两者好。至于hexo和jeklly在特点上几乎没什么区别,只是一个基于nodejs一个基于ruby,都很轻量级,性能好速度快,近年来很火。

在分别尝试了用Amativeness主题配合WordPress建站和用Themia主题配合Hexo建站后最后还是选择了后者,搭建完成发现还少了不少东西,需要继续折腾。

多说

多说是国内知名的网站第三方评论系统,Themia基于的tranquilpeak主题中已经集成了多说,直接把申请到的key填入就可以生效了。但是没有做任何处理的默认的主题样式很一般…而且和Themia的风格也不怎么搭,不折腾一下能忍咩?好在多说支持自定义css属性,那就好办了,这里是自定义样式文档

直接分享下我的评论栏的css代码吧

  • 圆形头像与鼠标悬浮旋转
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ds-reset .ds-avatar img {
width:54px;height:54px;
margin-right: 12px;
border-radius: 27px;
-webkit-border-radius: 27px;
-moz-border-radius:27px;
box-shadow: inset 0 -1px 0 #3333sf;
-webkit-box-shadow: inset 0 -1px 0 #3333sf;
-webkit-transition: 0.4s;
-webkit-transition: -webkit-transform 0.4s ease-out;
transition: transform 0.4s ease-out;
-moz-transition: -moz-transform 0.4s ease-out;}
#ds-reset .ds-avatar img:hover{
box-shadow: 0 0 10px #fff; rgba(255,255,255,.6), inset 0 0 20px rgba(255,255,255,1);
-webkit-box-shadow: 0 0 10px #fff; rgba(255,255,255,.6), inset 0 0 20px rgba(255,255,255,1);
transform: rotateZ(360deg);
-webkit-transform: rotateZ(360deg);
-moz-transform: rotateZ(360deg);}
  • 右侧的背景图片 url地址换成你的外链图片
1
#ds-thread #ds-reset .ds-textarea-wrapper textarea {background:url(http://odck16ake.bkt.clouddn.com/duoshuo.png) no-repeat right bottom !important; }
  • 边框和按钮变圆角,设置背景色
1
2
3
4
5
6
#ds-thread #ds-reset .ds-textarea-wrapper {
border-radius: 3px 3px 0px 0px;
background-color: #F4F6F7;}
#ds-thread #ds-reset .ds-post-options {
border-radius: 0px 0px 0px 3px;}

把上面的代码直接粘贴到多说后台自定义css中保存即可。到这里还没有结束,接下来还要给评论加上操作系统和浏览器信息,继续:

  • 添加样式
1
2
3
4
5
6
7
8
span.this_ua {background-color: #ccc!important;border-radius: 4px;padding: 0 5px!important;margin: 0 1px!important;border: 1px solid #BBB!important;color: #fff;}
.this_ua.platform.Windows{background-color: #39b3d7!important;border-color: #46b8da!important;}
.this_ua.platform.Linux {background-color: #3A3A3A!important;border-color: #1F1F1F!important;}
.this_ua.platform.Android {background-color: #00C47D!important;border-color: #01B171!important;}
.this_ua.browser.Chrome{background-color: #5cb85c!important;border-color: #4cae4c!important;}
.this_ua.browser.Firefox{background-color: #f0ad4e!important;border-color: #eea236!important;}
.this_ua.browser.IE{background-color: #428bca!important;border-color: #357ebd!important;}
.this_ua.browser.Opera{background-color: #d9534f!important;border-color: #d43f3a!important;}
  • 找到你的博客中的多说js代码,在后面紧接着添加引用ua-parser.js的部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript">
var duoshuoQuery = {short_name:'codeest'};
(function() {
var ds = document.createElement('script');
ds.type = 'text/javascript';ds.async = true;
ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';
ds.charset = 'UTF-8';
(document.getElementsByTagName('head')[0]
|| document.getElementsByTagName('body')[0]).appendChild(ds);
ds = document.createElement('script');
ds.type = 'text/javascript';ds.async = true;
ds.src = 'http://faisalman.github.io/ua-parser-js/src/ua-parser.js';
ds.charset = 'UTF-8';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ds);
})();
</script>
  • 在上面这段代码下面再紧接着添加下面这段
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script type="text/javascript">
if (typeof DUOSHUO !== 'undefined')hookDUOSHUO_tp();
else $('[src="http://static.duoshuo.com/embed.js"]')[0].onload=hookDUOSHUO_tp;
function hookDUOSHUO_tp(){
var _D_post=DUOSHUO.templates.post
DUOSHUO.templates.post=function (e,t){
var rs=_D_post(e,t);
if(e.post.agent&&/^Mozilla/.test(e.post.agent))
rs=rs.replace(/<\/div><p>/,show_ua(e.post.agent)+'</div><p>');
return rs;
}
}
function show_ua(string){
$.ua.set(string);
var sua=$.ua;
if(sua.os.version=='x86_64')sua.os.version='x64';
return '<span class="this_ua browser '+sua.browser.name+'">'+sua.browser.name+' | '+sua.browser.version+'</span>'+'<span class="this_ua platform '+sua.os.name+'">'+sua.os.name+' '+sua.os.version+'</span>';
}
</script>

PS: 这里我又喜闻乐见的踩到坑了。。网上大部分的介绍在上面的代码中使用的都是e.agent,但是根据最新版的多说embed.js中的定义应该使用e.post.agent,修改完后总算看到效果了

多说收工٩(ˊᗜˋ*)و

不蒜子

不蒜子是极简的网页计数器,用起来真的是低碳绿色环保,两句代码就能集成,帮助统计网站的访问量。官网上也写明了使用方法,我这里提下要点。

  • 首先在博客的script文件中加入这段脚本
1
2
<script async src="//dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js">
</script>
  • 然后在网站的bottom中插入总访问量PV和总访客数UV
1
2
3
<span id="busuanzi_container_site_pv">
本站总访问量<span id="busuanzi_value_site_pv"></span>
</span>
1
2
3
<span id="busuanzi_container_site_uv">
本站访客数<span id="busuanzi_value_site_uv"></span>人次
</span>
  • 最后在每篇文章中加入单页访问量PV
1
2
3
<span id="busuanzi_container_page_pv">
本文总阅读量<span id="busuanzi_value_page_pv"></span>
</span>

PS:我一开始手滑把单页PV用成了全站PV,还给不蒜子作者发邮件询问为什么统计量不对呢。。捂脸 >///<

不蒜子收工٩(ˊᗜˋ*)و

捐赠

好吧。。这个破站现在并没有什么值得各路dalao打赏的干货,不过梦想还是要有的,万一有路过的好心人投了一颗糖或者送了一杯速溶咖啡呢,直接上代码吧。

  • 添加样式
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
.donate_bar {
text-align: center;
margin-top: 10px;
}
.donate_bar a.btn_donate {
display: inline-block;
margin-left: auto;
margin-right: auto;
width: auto;
height: auto;
background: #fff;
border-radius: 3px;
letter-spacing: .01em;
cursor: pointer;
color: #9eabb3!important;
border: 1px solid #9eabb3;
font-size: 1.5rem;
padding: 8px 15px;
-webkit-transition: background 0s;
-moz-transition: background 0s;
-o-transition: background 0s;
-ms-transition: background 0s;
transition: background 0s
}
.donate_bar a.btn_donate:hover {
background-position: 0 -82px
}
.donate_bar.hidden{
display: none
}
.post-donate{
margin-top: 10px;
}
#donate_guide{
height: 210px;
width: 420px;
margin: 0 auto;
}
#donate_guide img{
height: 200px;
height: 200px;
}
  • 代码部分,放到文章评论区上方即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div class ="post-donate">
<div id="donate_board" class="donate_bar center">
<a id="btn_donate" class="btn_donate" href="javascript:;" title="打赏">给作者投食戳这里OwO</a>
<br>
</div>
<div id="donate_guide" class="donate_bar center hidden" >
<!-- 支付宝打赏图案 -->
<img src="http://odck16ake.bkt.clouddn.com/qr_alipay.png" alt="支付宝打赏">
<!-- 微信打赏图案 -->
<img src="http://odck16ake.bkt.clouddn.com/qr_wechat.png" alt="微信打赏">
</div>
<script type="text/javascript">
document.getElementById('btn_donate').onclick = function(){
$('#donate_board').addClass('hidden');
$('#donate_guide').removeClass('hidden');
}
</script>
</div>

PS:上面的打赏按钮样式是根据Themia按钮风格来的,可以根据自己的博客风格微调,记得把代码中的支付宝和微信图案换成自己的,不然钱打到我的账户我可不管╮( ̄▽ ̄)╭

捐赠收工٩(ˊᗜˋ*)و

性能与SEO优化

性能关乎博客页面加载速度,SEO关乎搜索排名的前后,有余力的就把这块也一起折腾了吧,这方面内容比较多,而且已经有一些不错的文章介绍了这方面的内容,我就直接甩自己看过的文章链接了
性能: Hexo折腾记——性能优化篇
SEO: Hexo Seo优化让你的博客在google搜索排名第一

集成APlayer

APlayer是前端小鲜肉(大神)DIYgod开发的一款开源HTML5播放器,功能丰富,UI简洁美观,是代替原生HTML5播放器的不二选择!但是直接使用需要传入封面url,音频url,歌词文件等一系列参数,配置下来比较麻烦
这时就需要配合163music-APlayer-you-get-docker这款根据id自动解析网易云音乐资源并加载到APlayer的音乐接口来使用了,163music-APlayer-you-get-docker已经做了充足的封装,只需要使用Hexoiframe标签调用接口地址即可引入APlayer到博客中,下面是示例:

插入单曲

对应模板:

1
{% iframe https://music.daoapp.io/iframe?song=36990266&qssl=1&autoplay=0&max_width=100% 100% 100 %}

对应模板:

1
{% iframe https://music.daoapp.io/iframe?song=40729947&qssl=1&autoplay=0&max_width=100% 100% 100 %}

插入歌单

对应模板:

1
{% iframe https://music.daoapp.io/iframe?playlist=37288058&qssl=1&autoplay=0&max_width=100% %}

HTTPS化

这个属于TODO,先占个坑

其他

Themiatranquilpeak自带的内联代码和代码块样式总是感觉不太满意,灰色的底图和博客背景几乎一致,字体颜色也是,完全起不到突出作用,所以参考另一款我比较喜欢的博客样式even做了调整,给代码块加了淡黄色的护眼底色,把内联代码的字色改为了红色以表突出,像这样

1
String str = "像这样";

除此之外,在Themia的基础上还加了底部图片Banner,blog age计时,侧边栏样式优化,都是一些html/css/js的修改,没什么好说的了,很羡慕那些前端工程师们可以把自己的博客打点的很漂亮,Android党鸭梨山大(/ω\),以后前端知识精进了再继续折腾,到此结束~

多说迁移到Disqus(2017-3-30 update)

多说居然倒了,自17年6月1日起将停止服务,WordPress党的胜利…虽然多说是国内最知名的第三方评论系统,不过毕竟变现能力有限,难免资金链断掉了,缅怀多说,那么就要考虑尽早迁移了。国内其他的选择还有友言,网易云跟帖等等类似的第三方评论,并且都支持多说数据一键迁移,国外显然是Disqus,不过Disqus现在已经在墙外了,而且迁移过程比较麻烦。一番考虑后我还是选择了Disqus,一方面是Themia自带了Disqus配置,接入十分方便,另一方面是怕其他国内第三方评论又步了多说的后路,Disqus已经形成了自己的一套生态圈,服务稳定。

确定了目标后就要开始迁移了,一番搜索后找到了开源项目duoshuo2disqus,先从多说后台导出评论数据,然后运行项目中的duoshuo-migrator.py脚本把原始数据转化为可以导入Disqus后台的xml文件。但是Disqus导入数据的后台中没有Hexo的选项,于是我抱着死马当作活马医的心态选择了导入到WordPress中,然后重新生成博客发现评论数据已经成功同步到了Disqus,于是这次迁移算是顺利的完成了,没有踩到坑(/ω\)

Disqus虽然不能自定义样式了,不过整体风格和Themia主题还是挺搭的,收工~ 最后,也感谢多说一直以来的免费服务,我欠多说一个会员…

声明:本站所有文章均为原创或翻译,遵循署名-非商业性使用-禁止演绎 4.0 国际许可协议,如需转载请确保您对该协议有足够了解,并附上作者名(Est)及原贴地址