hexo介绍
超快速度
Node.js 所带来的超快生成速度,让上百个页面在几秒内瞬间完成渲染。支持 Markdown
Hexo 支持 GitHub Flavored Markdown 的所有功能,甚至可以整合 Octopress 的大多数插件。一键部署
只需一条指令即可部署到 GitHub Pages, Heroku 或其他平台。插件和可扩展性
强大的 API 带来无限的可能,与数种模板引擎(EJS,Pug,Nunjucks)和工具(Babel,PostCSS,Less/Sass)轻易集成
安装10以上版本的nodejs
略...
然后选择个非中文文件夹,按照如下步骤进行安装测试
1 | - npm install hexo-cli -g |
测试成功, 按照如下步骤进行
首先准备一个好用的工具,这里我用typora,然后进行如下配置,将图片复制位置改变一下(也可以选择用图床)

修改插入图片方式
hexo普通插入图片的方式只能用url,如果用本地路径的方式有问题,所以我们这里使用一个依赖
hexo-asset-image: 一定要用下面的这个包,不要使用
npm install hexo-asset-image –save这个命令安装,这个安装完引用的图片路径不对
npm install https://github.com/CodeFalling/hexo-asset-image --save- 修改
_config.yml文件的post_asset_folder:选项为true - 在md文档中使用相对路径,且方式必须是:
{% asset_img "xxx.xxx" "" %}
问题
如果hexo-asset-image依赖在结合gulp-terser使用的时候会报错, 如下
1 | [14:12:34] 'compress' errored after 591 ms |
解决
使用
npm install hexo-image-link --save依赖替换得以解决
修改主题(我这里使用的是lx, 以其举例,更多主题见https://hexo.io/themes/)
克隆项目到本地
- 在博客根目录执行:
1 | git clone https://github.com/blleng/hexo-theme-lx themes/lx |
启用本主题
- 更改站点设置文件
_config.yml:
1 | theme: lx |
- 主题的配置将在
themes/lx/_config.yml中进行。
本地搜索
- 先下载插件
hexo-generator-searchdb:
1 | npm install hexo-generator-searchdb -s |
- 在
themes/lx/_config.yml中配置:
1 | local_search: |
评论: comment(
appid和appkey在leancloud创建应用后即可获取。)
评论使用valine,官网:https://valine.js.org
启用:在
themes/lx/_config.yml填写:
1 | comment: |
- 在文章头填入
comments: false即可在该页面启用评论:
1 |
|
Social Links
- 社交媒体链接,在
themes/lx/_config.yml配置:
1 | social: |
修改头像
- 修改在source目录下的favicon.ico
- 修改在source/image目录下的avatar.jpeg
1 | # avatar |
开启分类
1 | menu: |
百度统计

1 | # Analytics |
1 | 百度统计ID(代码)如何获取? |

谷歌分析
1 | # Analytics |
- 网站地址, 一步一步创建之后获取下图标记的ID值

修改主配置(_config.yml)
修改title
1 | # Site |
修改部署地址
- 安装部署工具
1 | npm install hexo-deployer-git --save |
- 修改如下配置
1 | # git仓库地址 |
1 | deploy: |
github方式
新建repo - repository 直接命名为
<GitHub仓库账户名>.github.io进入
repo setting, 进入pages

- 创建好为如下图片

- 查看本地私钥

- 使用上一步中的公钥,添加一个密匙

gitee方式(点此查看gitee博客地址)
- 新建repo - repository 直接命名为
<你的 GitHub 用户名>.github.io - 进入pages

部署测试
- hexo提供了以下四个script,都可简写为只用第一个字母(除了clean)
1 | "build": "hexo generate", |
- 本地运行测试:
hexo clean && hexo g && hexo s - 远端部署:
hexo clean && hexo g && hexo d - 如果是码云, 还需要再手动点击重新部署

同步到vercel
因为github page本身在国内网络环境并不好,所以可以通过vercel+dns解析来解决境内网络访问问题
如何部署
- 首先注册一个账号
- 注册成功后进入页面,点击
News Project

- 然后通过绑定的
github或者gitlab导入需要部署的项目

- 如果导入的项目是打包好的静态页,在
Build and Output Settings的override都勾上,表示不执行它的默认命令。

- 点击
deployed进行部署,如果部署失败可以查看报错信息是不是上一步的某些选项没有覆盖。部署成功后会进入如图所示的界面

如何自定义域名
当我们的这个静态页面库代码变动的时候,vercel会实时更新同步。所以此步不需要额外处理!
- 腾讯云域名地址:https://console.cloud.tencent.com/domain
vercel静态页挂载地址:https://vercel.com/miofly/mio-test-s/5iv959MEYqhTuJ4MV51ZTHBoDkz7- 进入到 setting 中可对项目进行一些设置,如项目名称

- 下面演示如何自定义域名,默认情况下部署成功后
vercel会给你生成一个默认的域名,如果想要修改成自己的域名可将域名名称修改成自己的。 - 当选择修改成自己的域名名称后,
vercel会检查域名指向的DNS对不对,如果不对的话会提示你域名的 DNS 应该如何配置,按照vercel提示的DNS信息 在自己的域名的DNS配置中进行配置,如图

提交前自动更新 date 和 updated 字段
配合
hexo-update-time,lint-staged,husky插件自动在提交前自动更新date和updated字段
安装依赖
1 | npm install hexo-update-time lint-staged husky |
执行
1 | npx husky install |
确保 git 钩子生效
执行
1 | npx husky add .husky/pre-commit "npm run lint-staged" |
添加 pre-commit 钩子
package.json 中添加 lint-staged 的 script 和相应配置
1 | { |
如果为第一次提交,那么 date 和 updated 会统一更新到当前时间
否则只有 updated 会更新到当前时间
针对mac无法生效的问题
授权.husky下文件即可: chmod 777 .husky/*