Hexo+Next博客不完全指南
按:现在是2020年6月,接触Next主题也有一段时间了。如今折腾主题还是得依靠官方DOC文档和主要贡献者的博客,因为他们才是对项目最清楚的人。
例如今天准备开启代码块的Mac视图效果(如下面的代码块所示),百度出来的结果很多都是引入JS包
,殊不知至少从我使用的Next7.8开始,主题的配置文件里直接可以设置效果:
1 |
|
为此当我遇到主题问题,会访问米米的博客 、Documentation | NexT ,遇到博客问题会查看Hexo标签插件等官方文档。当然我前期看不懂的时候,也从许多个人博客中了解到很多知识。其中很多人比较注重博客内容的更新,这个需要注意。
懒人搭建
本博客搭建于coding.net,与GitHub一样提交代码,不过在coding.net中静态网站
可以运行基于node.js的Hexo博客框架。原理在于平台在用户提交代码后自动执行hexo generate
以生成静态文件并部署,而使用GitHub的话则需要使用hexo g
在本地生成好的静态文件(位于public
文件夹中)再推送至仓库中。
这意味着coding.net平台已经准备好了博客运行环境,个人需要做的仅是推送修改好的代码。此外,使用GitHub账户登录 .com也可以实现网站的自动部署,具体请参考百度。以coding.net为例你可以:
- 克隆我的博客源代码,将配置文件替换为自己的即可:
1 |
|
- 按自己需求修改配置文件
_config.yml
与source\_data\next.yml
- 推送到自己的仓库
前期准备
- 查看hexo官网说明文档 ;
- 安装node.js运行环境;
- 为提高npm速度建议切换为淘宝的cnpm命令,查看官方详细说明;
- Git,如直接下载win–v2.25.1 :
初始化hexo网站
按照官网步骤来便好了。在窗口初始化hexo网站:
1 |
|
hexo主题
https://hexo.io/plugins/ 提供有丰富的主题,或者在GitHub中检索hexo theme
第一页基本是最流行的。
下面以Next主题为例
hexo插件
分别运行以下命令,安装RSS、搜索和PV功能的依赖,结果将体现在根目录下package.json
中:
1 |
|
曾经在调试时多次出现报错,都是跟主题要求的插件没有安装有关!**
如某次CSS样式文件未加载:
package-lock.json 是在
npm install
时候生成一份文件,用以记录当前状态下实际安装的各个npm package的具体来源和版本号。文件中上标号^是定义了向后(新)兼容依赖。
在本地尝试更新文件成功,恢复本地预览网站:npm install
环境依赖包升级
1 |
|
安装主题
在theme目录下创建next目录,并克隆主题:
1 |
|
注:由于大陆网速较慢,且clone 默认会下载完整的历史版本,这里设置只克隆最新版本的代码,即depth为1。实测代码体积大幅减少。(浅克隆)
安装完毕后,需要在根目录下打开_config.yml
,指定hexo网站的主题:
1 |
|
本地预览网站
1 |
|
本地预览地址 http://localhost:4000/
git常用命令
1 |
|
高级:使用本地代理以提高git clone速度
1 |
|
Next7.x主题美化
自定义CSS样式
先得在next.yml配置文件中中开启修改,去掉前面的#注释即可:
1 |
|
然后再对应目录下创建文件,并写入样式:
1 |
|
该样式参考自米米的博客,body{}部分参考自明月逐人归 两者不可兼得。
页脚附加其他
Next新版取消了页脚添加其他说明文字的功能,有时我们需要加上CDN技术支持文字或脚本,为此做出修改:
- 在Next主题文件
themes\next\layout\_partials
中的footer.swig的偏下位置添加:
1 |
|
- 主题文件的配置文件中
footer:
下添加custom_text
:
1 |
|
这样的好处是,以后有其他修改的话,只需要在主题配置文件中修改即可,我还认为此处的custom_text
可以加一些js文件的。
边框添加圆弧角
在\themes\next\source\css\_variables\Gemini.styl
修改:
1 |
|
插件:
生成短连接
npm install hexo-abbrlink --save
自动生成短链例如 abbrlink: 123
RSS订阅
npm install hexo-generator-feed --save
安装后即可,无需配置yml文件。
文章置顶
先 npm uninstall hexo-generator-index --save
再 npm install hexo-generator-index-pin-top --save
在 Front-matter
插入 top:100
,数字越大文章在首页的位置越靠前。
文章加密
npm install --save hexo-blog-encrypt
在文章信息头插入password: mikemessi abstract: 有东西被加密了, 请输入密码查看.
message: 您好, 这里需要密码.
解密后部分元素可能无法正常显示或者表现,见详细配置
文章隐藏
npm install hexo-hide-posts --save
默认 hidden: true
用于隐藏,hidden 可自定义为自己喜欢的名字。
生成feed订阅(RSS)
npm install hexo-generator-feed --save
默认只获取文章摘要或者前140个字符
站点地图 sitemap
自动生成 sitemap.xml
,可提交给搜索引擎(百度拉胯,谷歌和雅虎收录极快,Bing也还行)。搜索 site:loafing.cn
查看被收录情况。
更多插件介绍:https://loafing.cn/posts/hexo-tags.html
致谢
最后,这次记录主要为备忘,结合本人也踩过多次坑,也似乎缺点什么。希望给予读者启示。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!