使用Hexo搭建个人博客简记
写在前面
如果本地(-s)正常,deploy上去挂掉了:建议等待一会并清除浏览器缓存后刷新,一般是缓存问题。
如果出现了莫名其妙的显示异常:先尝试hexo clean!
Hexo博客基本部分搭建
获取域名
由于对域名(仅用于个人网站)和服务器暂时没有什么较大的需求,直接使用Github Pages作为个人博客运作。
登录到Github后直接创建新仓库New Repository,仓库名为*github_username*.github.io [1]
安装Git并配置SSH Key
使用Git作为个人博客的版本控制系统。从Git - Downloading Package (git-scm.com)下载并安装。全程按照默认配置安装即可。完成后打开GitBash做如下设置:
1 |
|
随后生成SSH Key:
1 |
|
随后三个询问直接回车。
随后找到SSH Key的公钥文件(通常在C:\*windows_username*\.ssh_rsa.pub)用记事本打开并全文复制。在SSH and GPG keys (github.com)选择New SSH Key,title随意,Key填入复制的Key即可。
在GitBash中检测设置是否成功,输入ssh [email protected],第一次设定时会提示 The authenticity of host ‘…’ can’t be enstablished.是正常情况。在接下来的询问中输入yes即可完成配置。
安装Node.js
Download | Node.js (nodejs.org)下载Node.js并安装(包含环境变量和npm的安装)
通过在命令行中输入:
1 |
|
来检查npm和node.js是否安装成功
安装Hexo
打开命令行,cd /d 至想要存放博客文件的文件夹。
安装hexo并初始化:
1 |
|
检测是否成功建立网站:
1 |
|
(分别对应创建一篇新文章,生成整个博客,启动本地预览)
然后浏览器打开localhost:4000即可看到博客的本地预览。
网站推送
本地预览需要推送到GitHub Pages才能正常访问。
打开blog根目录下的站点配置文件(区别于主题的配置文件)_config.yml,翻到最后将deploy一段(若没有则添加)修改为
1 |
|
注意:两格缩进和冒号后的空格都不能略去,属于强制格式要求。
保存后在命令行中安装部署插件:
1 |
|
随后生成并部署网站:
1 |
|
博客自此上线运行。
发布文章
如下操作
1 |
|
随后在blog\_posts中打开对应md编写文章(Markdown好文明!)
完成写作/编辑之后:
1 |
|
即可推送博客更新。
主题安装:以Next为例
关于站点和主题设置文件
站点设置文件:博客的根目录下_config.yml(Hexo相关的基本设定)
主题设置文件:根目录/themes/*主题名*/_config.yml(主题相关的设定)
常见的一种便于处理的方法是把主题设置文件拷贝到博客根目录下,更名为_config.*主题名*.yml
站点信息的简单个性化设置
打开博客根目录下的_config.yml,site栏目下(其实就是第一个)可做博客信息的修改
1 |
|
下方的URL栏目中的url更改为你的博客地址(加project似乎会导致推过去的网页链接到错误的子页面,尚且不明白其中原因):
1 |
|
主题安装与设定
正题来了。
直接选用了主题Next,界面美观且可玩性较强。
安装直接通过git clone操作进行(默认cd到博客根目录下执行)
1 |
|
安装完成后修改站点配置文件_config.yml,找到并修改:
1 |
|
即可启用Next主题。
在_config.next.yml中可以修改Next自带的几种样式(默认是Muse):
1 |
|
数学公式支持和部分Markdown语法适配(转义相关)
在文章中添加注释
我用过的Markdown编辑器(Typora,Marktext)都支持注释功能,但是这似乎并不是Markdown的原生功能(?),导致使用Marktext写了注释之后放上来会被直接吃掉显示成一个超链接……
为了解决这个问题,我们需要安装一个拓展插件:hexo-reference(博客根目录下执行)
1 |
|
然后就按照通常操作即可
给文章添加标签分类
在文章的front-matter中添加即可,示例如下:
1 |
|
添加数学公式支持(hexo-renderer-pandoc+Mathjax)
作为理科院系学生,发博文自然是离不开数学公式的。
然而同样的,$ L^AT_EX$ 数学公式支持同样也不是Markdown的原生内容,不受Hexo内置的Markdown渲染引擎支持。
解决这个问题需要我们更换渲染引擎(从默认的hexo-renderer-marked切换到hexo-renderer-pandoc):
1 |
|
同时安装Pandoc (装好以后重启一下电脑)
依照主题不同,可能还需要:
修改主题配置,开启数学公式渲染器(Fluid参照配置指南 | Hexo Fluid 用户手册 (fluid-dev.com),Next自行百度 总之就是改主题配置文件)
在文章的front-matter里加入
1
2mathjax: true
(or math: true)
主题的美化(转Fluid了 搁置)
(以下内容写于2022/5/4)
Next实在太平淡了于是就换了Fluid,Next主题设置懒得写了,Fluid的自定义部分基本全在配置指南 | Hexo Fluid 用户手册 里了,所以没什么好写的。
等我想起来有什么值得引入的第三方功能/效果再加进来吧。
以及一些补充:
关于某些公式显示奇妙换行BUG
mathjax的默认加载格式是cHTML(commonHTML),在Fluid下似乎存在莫名其妙给公式换行的问题。修正方法:\node_modules\hexo-renderer-mathjax\mathjax.html中修改渲染使用的预制配置文件,改为TeX-AMS-MML_HTMLorMML(最底下看着像这个的那段改掉),之后默认使用的就是HTML-CSS方式处理,问题解决。
关于引入外部字体
暂且选择使用思源宋体,直接引用一下别人的
代码:
1 |
|
来源:Hexo 美化指北 - 哔哩哔哩 (bilibili.com)
如果主题是直接npm install的考虑更改node_modules下的hexo-theme-xx文件夹内的文件(不推荐)
应该有更好的办法,但我多次尝试使用@font_face在自定义css中引入本地字体都未能成功,故选择修改内部文件来像使用正常字体族那样使用外部字体。
附:常用的Hexo命令及其简写
npm install hexo -g #安装Hexo
npm update hexo -g #升级
hexo init #初始化博客
命令简写
hexo n “我的博客” == hexo new “我的博客” #新建文章
hexo g == hexo generate #生成
hexo s == hexo server #启动服务预览
hexo d == hexo deploy #部署
hexo server #Hexo会监视文件变动并自动更新,无须重启服务器
hexo server -s #静态模式
hexo server -p 5000 #更改端口
hexo server -i 192.168.1.1 #自定义 IP
hexo clean #清除缓存,若是网页正常情况下可以忽略这条命令- 全文所有的github_username之类的写法均直接替换成相应内容,不带’*’。 ↩︎