Hexo配置
Hexo 安装配置
Node.Js 安装设置
安装完成后,要查看我们是否安装成功,可以打开命令提示符(Win + R
),输入 cmd
打开控制台,输入如下命令,如果出现对应版本号,说明安装成功了;
1 | node -v |
Hexo 安装
在你的硬盘上找个地儿,用来存放你的博客文件,比如我的就在 D:personalFiles/github/blog
,这个文件夹你可以根据自己的喜好来设置。然后从命令台进入当前文件夹,接下来就是安装过程了;
首先安装 Hexo
1 | npm i hexo-cli -g |
新建一个文件夹用于存放你的博客,比如我的是 blog
,然后进入该文件夹,并用如下命令进行初始化并安装必备组件;
1 | hexo init . |
然后输入如下命令,然后在浏览器中打开 http://localhost:4000
;
1 | 新建博客 |
博客部署
基于Hexo的matery主题搭建博客增强部署篇4 | 夜法之书 (17lai.site)
部署 Hexo 到 GitHub Pages
GitHub 主页右上角加号 -> New repository:
- Repository name 中输入
用户名.github.io
(最好均为小写字母) - 勾选 “Initialize this repository with a README”
- Description 选填
填好后点击 Create repository 创建。创建后默认自动启用 HTTPS,博客地址为:https://用户名.github.io
本地博客测试成功后,就是上传到 GitHub 进行部署,使其能够在网络上访问。首先安装 hexo-deployer-git:
1 | npm install hexo-deployer-git --save |
然后修改 _config.yml
文件末尾的 Deployment 部分,修改成如下:
1 | deploy: |
完成后运行 hexo d
将网站上传部署到 GitHub Pages。
完成!这时访问我们的 GitHub 域名 https://用户名.github.io
就可以看到 Hexo 网站了。
其他方式
- Vercel部署个人博客_愧怍12的博客-CSDN博客
- Vercel部署高级用法教程 - 掘金 (juejin.cn)
- 但 vercel 似乎无法正确解析带有 + 的 url, 且 Vercel 的 CNAME 值有 CAA 记录,这个 CAA 记录限制了证书颁发机构
- 手把手教你使用Netlify部署博客及部署自动化 - 知乎 (zhihu.com)
然后在域名提供商那里添加 CNAME 记录如下
可用该网站来检测速度 阿里云网站运维检测平台 (aliyun.com)
如果该域名本身没有 SSL 证书,但是你将其 CNAME 记录跳转到另一个有 SSL 证书且已经部署的域名,是可以实现 HTTPS 访问的。
Hexo+Obsidian 内部链接跳转
- Obsidian 选择基于当前笔记的相对路径,关闭 WIKi 链接
- Hexo 需要修改永久链接模式 永久链接(Permalinks)| Hexo,修改
_config.yml
中的
1 | permalink: posts/:category/:post_title.html |
- 不同级目录下的跳转
1 | [深度学习-图像视频文本标注工具](../../工具使用/深度学习-图像视频文本标注工具) |
需要去掉. md 后缀,采用以下 python 脚本自动全部去除, 脚本放在根目录
1 | import os |
借鉴 Hexo插件 中的钩子函数实现提交时自动更新
1 |
|
hexo 插件
Hexo -auto-category 自动生成 Categories
最常用的文件管理策略,就是利用文件系统目录结构 (树形结构 directory-tree)。
同样,为了便于管理大量的日志文件,采用目录结构是一种简便可行的方案。hexo-auto-category
根据日志文件 (Markdown) 所在文件目录自动分类,即自动生成 markdown
的 front-matter 中的 categories
变量。
示例
对于博客 source/_post/web/framework/hexo.md
,该插件会自动生成以下 categories
1 | categories: |
安装
1 | npm install hexo-auto-category --save |
配置
在站点根目录下的 _config.yml
添加:
1 | auto_category: |
编译 & 部署
1 | hexo clean && hexo g && hexo d |
高级配置
如果只想生成第一级目录分类,可以设置 depth
属性,比如:
1 | auto_category: |
利用 Git 钩子函数触发更新
这个插件只有执行 hexo generate
时才会去读取文件夹并更新所有文章的 Front-matter 分类信息,所以我们可以利用 Git的钩子函数,在 commit (提交) 的时候先执行下 hexo generate
,这样就能实现自动更新了。
在 .git/hooks
目录下新建一个 pre-commit
文件
可以先在该文件中写入 echo hello world!
,然后在 git 终端下执行 sh pre-commit
或者 ./pre-commit
测试钩子能不能正常执行,没问题后,将如下命令写到文件里:
1 |
|
之所以后面追加 git add .
,是因为 generate (生成) 后,所有文章的 Front-matter 信息会更新,所以要将所有修改重新添加进来
Hexo-neat 插件优化提升访问效率
Hexo-neat插件优化提升访问效率-腾讯云开发者社区-腾讯云 (tencent.com)
1、安装 Hexo-neat
在站点根目录下
1 | npm install hexo-neat --save |
2、添加相关配置
在站点配置文件 _config.yml
添加相关配置,直接添加到站点配置文件 _config.yml
的末尾就可以。可以安装自己的需求去自定义配置,不过有些注意事项
1 | # hexo-neat |
3、hexo-neat 插件注意事项
在使用 hexo-neat 插件时,可以在命令窗口中看到各个文件的压缩率,于是可以通过跳过一些文件让效率更高。
1. 跳过压缩文件的正确配置方式
如果按照官方插件的文档说明来配置 exclude,会发现完全不起作用。这是因为配置的文件路径不对,压缩时找不到你配置的文件,自然也就无法跳过了。于是需要给这些文件指定正确的路径,万能的配置方式如下:
1 | neat_css: |
- 已经压缩过的 css 和 js 不用压缩:剔除 exclude(
*.min.css
和* .min.js
) - 特殊名字 xx. xx. min. js 的需要单独列出来(这里引用了 fancybox 图片弹窗效果,从压缩名单里单独剔除)
- 深目录的,需要单独列出来:(这里我引用了 live 2 d 看板娘的动画) 单用
_*/_.min.js
深目录跳过已压缩文件不行,这部分只好全部跳过压缩了
2. 压缩 html 时不要跳过 .md
文件和 .swig
文件.md
文件就是 markdown 文件,如果跳过压缩 .md
文件,而又刚好在文章中使用到了 tab 标签,那么当 hexo 在生成静态页面时就会发生解析错误。这会导致使用到了 tab 标签的页面生成失败而无法访问。
.swig
文件是模板引擎文件,也就是 hexo 可以通过这些文件来生成对应的页面。如果跳过这些文件,所有页面完全没有起到压缩的效果,页面源代码里依然存在着一大堆空白。
3. 注意 md 中不要带特殊标签<>的颜表情<( ̄ˇ ̄)/、<(ˉ^ˉ)>等,因为压缩转换为 html 后会变成
< ( ̄ˇ ̄)/,转义失败!!!