在朋友的推荐下尝试了一些Hexo
+ Next
,使用后感觉真的很简单,并且Next
效果很棒,最终切换为Hexo
+ Next
。
切换过程遇到了一些问题,做一个记录,分享出来。
安装
安装过程遇到2个问题:
- 我是在
Mac
上使用刚刚发布的Node.js V8.0
,结果在安装过程中发现依赖包fsevents
包V1.1.1不支持Node.js V8
,好在等了几天 V1.1.2解决了这个问题。然后按照官方文档进行安装。 - 我使用了npm 淘宝镜像(参考常用国内源汇总), 结果发现部分包按照失败,指定官方源解决:
1
2
3npm i hexo-cli -g --registry=https://registry.npmjs.org/
npm i --registry=https://registry.npmjs.org/
404
将404.html放在themes/next/source/404.html
,注意,这个配置在本地调整不生效,deploy
后生效。
CDN配置
参考Next进价设定修改国内CDN,以提高网页访问速度。
SVG问题解决
之前使用Jekyll
写过一篇”用SVG实现一个半圆形仪表盘“的文章,其中显示SVG部分直接写<svg>
标签就可以,更换之后发现svg无法显示。修改如下:
1 | {% raw %} |
Reveal支持
以前做了一些Keynote
,并在Blog
中进行展示,这个我还是希望能支持。没有找到很好的办法,只能修改Next
源码。
首先,我的Markdown
文件中的Front-matter
中增加一个描述,key
为iframe
,值为Keynote
地址。
例如:
1 | iframe: "https://qiaolb.github.io/presentation/brief-history-time.html" |
然后修改themes/next/layout/_macro/post.swig
,在header
最后增加如下内容:
1 | {% if page.iframe %} |
这样就可以在header区域显示出Keynote
。接下来调整样式,在themes/next/source/css/_custom/custom.styl
,增加以下内容:
1 | .post-header iframe { |
一切就绪,所有以前的内容都可以正常显示了。
Search
我配置了Local Search
,这个比较简单。首先需要安装模块:
1 | npm install hexo-generator-search --save |
然后打开主题设置文件
(themes/next/_config.yml
),打开Local Search
功能:
1 | local_search: |
还有很多好玩的配置,以后慢慢研究。