升级Hexo3记录

  1. 1. Plugins
    1. 1.1. Generator Plugins
    2. 1.2. Optimize Plugins
    3. 1.3. Deploy Plugins
  2. 2. Theme
  3. 3. 部署

Hexo3发布已经很久了,一直没时间折腾升级

其实刚发布时尝试升级过,但是generate文章经常报错,文章分类生成后不合并,问题非常多,然后就等稳定点再升级了,一拖就拖到了现在

其实感觉Hexo3新版的特性对我没啥用,只是手贱喜欢新版

官方新版的特性说明如下:

  • New CLI: Command line interface is separated into a stand-alone module: hexo-cli
  • Slimmer Core Module: Generators, deployers and server are also separated from the main module.
  • New Generator API: Generator API changed a lot in Hexo 3.
  • Include Assets in a Post: Serveral useful tag plugins are added in Hexo 3: post_path, post_link, asset_path, asset_link, asset_img.
  • Async Tag Plugins: Tag plugins can do async jobs now!
  • Timezone Support: You can define the timezone of your site now.

新版虽然没提供啥对我有用的功能,但是升级的兼容性让我折腾了一番

因为我的所有文章md文件是放git保存的,最后干脆重新init一个Hexo 3的目录,重新配置,然后将文章源码拷贝过来,这样感觉效率更好,也避免2到3中间残留的某些代码导致各种诡异问题

Plugins

首先是插件,Hexo 3将很多功能从核心代码中拆出来作为插件了,下面是我安装的插件

Generator Plugins

负责生成对应内容的插件,Hexo init的时候应该已经自动安装前三个了,feed和sitemap需要手工安装

1
2
3
4
5
npm install hexo-generator-archive --save
npm install hexo-generator-category --save
npm install hexo-generator-tag --save
npm install hexo-generator-feed --save
npm install hexo-generator-sitemap --save

原来在sitemap中自己修改了代码,让生成的XML中包含category和tag,并且和post不同的权重,重装之后也懒得改了

Optimize Plugins

用户压缩代码用的插件,似乎css不用插件也会自己压缩,不过我还是安装了clean-css,另外还有一个html-minifly,但是一直不生效,懒得折腾删除了

1
2
npm install hexo-clean-css --save
npm install hexo-uglify --save

Deploy Plugins

Hexo 3的时候官方提供了ftp部署插件,原来的jsftp插件貌似不兼容了,不过官方的ftpsync在万网的主机上不好使,我使用客户端上传时也是没传几个文件就会超时,然后重连,但是这个插件没有那么强的容错处理,所以每次传几个文件就报错了。。。无奈

1
2
npm install hexo-deployer-rsync --save
npm install hexo-deployer-ftpsync --save

Theme

主题依然是用官方的Landscape修改出来的,和原来Hexo2的基本不变,因为是官方提供的,没有什么不兼容的部分

自己增加的模块主要有百度分享、百度推荐、Adsense、多说评论、文章声明,还有TOC

没有使用官方函数的的地方就一个,文章分类,为了让Google解析的时候能获取到更多信息,分类上增加Breadcrumb属性,因为官方的list_categories没法支持,Hexo2的时候我直接改源码了,但是后面升级冲突很恶心,所以这次自己在模板里写js好了

大概代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<% if (post.categories && post.categories.length){ %>
<div class="article-category">
<% if (index){ %>
<%- list_categories(post.categories, {
show_count: false,
class: 'article-category',
style: 'none',
separator: '►'
}) %>

<% } else { %>
<%
var cats = [];
post.categories.forEach(function(cat){
cats.push('<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a class="article-category-link" href="' + url_for(cat.path) + '" itemprop="url"><span itemprop="title">' + trim(cat.name) + '</span></a></span>')

});
%>
<%- cats.join('►') %>
<% } %>
</div>
<% } %>

部署

全部修改完,Generate成功后就是部署到主机了,因为搞到了万网的免费主机,所以放弃我的破VPS了,但是只能使用ftp,并且ftp插件还不能正常运行,蛋疼的只能generate完成后找客户端上传,如果可以使用rsync就好了

废话那么多,主要是觉得自己半年多都没一篇文章了,除草。。。

声明: 除非注明,小峰网络遨游记文章均为原创,转载请以链接形式标明本文地址

本博客原创文字只代表本人某一时间内的观点或结论,与本人所在公司没有任何关系。

本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。

第三方若用于商业用途的转载,须取得本人授权。

本文作者:

本文地址:http://xfeng.me/upgrade-hexo3/

你可能还对下面文章感兴趣: