本篇文章记录Hexo 安装,部署以及日常使用的流程,最终实现: 通过cmd输入4行命令将本地md文件更新到网络上的个人博客
文章分为4大部分,包含:
将md文件放倒 /hexo/source/_post目录 进入hexo目录打开Git Bash,输入以下命令
hexo clean # 删除public文件下静态文件
hexo g # 即hexo generate,根据source内的md文件生成静态文件
hexo s # 即hexo server,本地预览博客
hexo d # 即hexo deploy, 按照配置文件部署导远端
md文件不要使用水平分割线: 水平分割线会导致 hexo generate时报错
Error: Spawn failed
##进入站点根目录
cd /usr/local/src/hexo/hanyubolg/
##删除git提交内容文件夹
rm -rf .deploy_git/
##执行
git config --global core.autocrlf false
##最后
hexo clean && hexo g && hexo d
Hexo cdn.jsdelivr.net 接口404
系统信息: win10系统,已安装git
environment
Hexo 依赖 nodejs及其中的软件包管理器npm
Npm8.19版本存在冲突会导致执行界面报错, 实测8.5版本OK
install hexo
npm install -g hexo-cli # 安装hexo
hexo -v # 测试是否安装成功
Initialize hexo
mkdir xxx\xxx\hexo # 在安装路径上创建一个新文件夹用于放置hexo文件
hexo init
npm install # 更新nodejs的模块
hexo s
此时进入 localhost:4000 查看本地博客显示
在网络上找到需要主题的链接, hexo根目录下使用git clone
git clone https://github.com/blinkfox/hexo-theme-matery themes/matery
打开_config.yml,修改主题配置
theme: matery
更新博客,查看效果
matary主题代码块显示bug
matary代码内存在代码块UI显示错乱的bug,可以通过修改hexo _config.yml进行解决
search功能无法使用, search.xml接口无响应
原生的salary主题未附带搜索插件, 手动安装即可,参考文档: 为 hexo 博客添加本地搜索功能
npm install hexo-generator-search --save
search:
path: search.xml
field: post
Hexo博客中无法显示图片
Typora中使用相对路径显示正常的图片,Hexo编译后无法显示,安装hexo-renderer-marked插件进行解决,缺点是Typora里面会显示错误
参考博客 : hexo博客如何插入图片 - 知乎 (zhihu.com)
插件安装配置
git bush插件安装
npm install hexo-renderer-marked
config.yml修改配置
# 修改此属性
post_asset_folder: true
# 新增此属性
marked:
prependRoot: true
postAsset: true
插件使用
hexo new md文档时会另外生成一个同名文件夹 ,里面放图片, 如 script_write_flow.png
![script_write_flow](script_write_flow.png) # Typora内会无法正常显示,但是Hexo会显示正常
格式插入的图片无法使用此方式
Categories&Tags功能实现
参照主题官方文档 , 设置Categories,Tags文件夹下index.md文档信息
文档信息中填写Categories分类,及多条相关Tags标签
categories: Advancement
tags: ["Blog","Software"]
重新部署hexo时,此条检查即可
hexo matary主题支持mermaid
下载支持插件
npm install --save hexo-filter-mermaid-diagrams
修改主题 _config.yml,打开mermaid
mermaid: ## mermaid url https://github.com/knsv/mermaid
enable: true # default true
matary lib已经含有mermaid文件,如果你的主题没有,参考这个安装hexo渲染mermaid
hexo三连查看显示效果
hexo上对mermaid代码格式要求比较高,如果显示不正常在Typora打开源码模式查看修改
hexo支持访问次数计数
matery支持使用不蒜子进行访问计数,直接在配置文件打开即可
busuanziStatistics:
enable: true
totalTraffic: true # 总访问量
totalNumberOfvisitors: true # 总人次
不蒜子的底层原理是, 将页面使用的域名注册到第3方服务器,使用接口进行累计计数.所以在本地查看的时候,访问数会特别夸张,但是部署后就会正常显示.而且更换域名的时候会导致重新计数 针对更换域名的情况,目前不蒜子不支持初始化修改访问数,可以通过修改js代码修改访问次数达到效果 参照博客: JQuery实现“不蒜子”初始化首次数据 - 国际哥的独立博客 (shaoguoji.cn)
文章链接转静态短地址
Hexo 默认生成的永久链接也会有中文,这样不利于 SEO
,这里使用用hexo-abbrlink 生成静态文章链接
安装命令
npm install hexo-abbrlink --save
修改根目录config文件
permalink: :year/:month:day:abbrlink.html # 修改
abbrlink: #添加
alg: crc16 #算法选项:crc16丨crc32
rep: dec #输出进制:dec为十进制,hex为十六进制
查看主题文件夹内的README,进行修改配置;你可以像我一样,维护一个个性化文档,可用于重新部署
参照: hexo-seo优化技巧 | 岛 (gitee.io)
注意,: 添加html的方式进行验证时, 需要修改的文件是使用主题目录下的 head.ejs
三大git平台均可部署Hexo,由于gitee需要人工审核,gitlab操作较为复杂,最后选择github进行搭建
github创建仓库
值得注意的是, 使用Github的Https容易出现网络连接异常”Spawn Fail”,所有优先使用SSH链接
github获取 Access Token
Github目前连接仓库开始使用Private Access Token 作为凭证,提前创建一个全权限,永久有效的Token方便连接使用
安装git插件
npm install hexo-deployer-git --save
配置hexo
hexo目录打开_config.yml, 修改deploy的配置
deploy:
type: git
repo: ${github拿到的SSH链接}
branch: 你要推送到仓库的分支(默认为master)
远程部署