Hexo个人博客搭建
Hexo 是一个简单、轻量、基于Node的静态博客框架,可以方便的生成静态网页托管于GitHub和Heroku。本文以 Hexo + GitHub Pages + Typora + PicGo 为例。
环境搭建
**1、下载node并安装。**安装好node,会默认一起安装好 npm 包管理器,可通过(Ctrl+R)打开 cmd 终端,使用以下命令查看安装版本
1  | node -v  | 
**2、安装 git,配置个人信息。**官网下载,选择自己操作系统的版本,根据提示一直 next 就装好了。
1  | git config --global user.name "用户名"  | 
**生成密钥。**一般是在 ~/.ssh 路径下,其中 id_rsa 存储私钥(不要共享私钥),id_rsa.pub 存储公钥。
1  | ssh-keygen -t rsa -C "xxxxxx@qq.com"  | 
GitHub公钥配置步骤:登录 GitHub → Settings → SSH and GPG keys → New SSH key → 填写相关信息(如下) →  Add SSH key
填写信息如下:
**Title:**标识密钥用途Key;
**type:**保持默认 Authentication Key;
**Key:**公钥内容
**3、测试 SSH 连接,**出现如下则配置成功。
1  | ssh -T git@github.com  | 
配置完 SSH 后,之后使用远程仓库的方式更新为 SSH 。
1  | git remote set-url origin git@github.com:username/repo.git  | 
克隆新仓库地址也使用 SSH。
1  | # 克隆新仓库  | 
**4、安装 hexo 及相关依赖 。**在 git 终端执行安装 hexo 相关命令:
1  | npm install hexo-cli -g  | 
Hexo项目构建
**1、开始搭建Hexo项目。**自定义一个文件夹(我的路径是:E://WorkSpace/fishblog),在命令行窗口进入目录,或直接从本机进入文件夹,右键打开 Git Bash Here,执行如下命令:
1  | hexo init  | 
hexo g 是 hexo generate 的简便写法;hexo s 是 hexo server 的简便写法。hexo s启动本地服务器,在浏览器打开localhost:4000即可看到效果。关闭本地服务:Ctrl + C 。部署的命令也可以并列的写
1  | hexo clean && hexo g && hexo s -- 本地  | 
2、新建博客文件。
1  | hexo new post "article title"  | 
项目中 /source/_posts 将会看到 article title.md 文件。编辑之后运行生成、部署命令便可发布。我使用 Typora 编辑,后续会讲到 Typora 相关配置。之后也可以直接在该路径下新建md文件,上传到 GitHub,后续会讲到如何自动化部署发布。
1  | hexo g # 生成  | 
**3、个性化设置。**主题替换、卡通人物、数字统计等。渲染md文件还需执行如下命令安装依赖。
1  | npm i hexo-renderer-markdown-it --save # 需要安装这个渲染插件  | 
卡通人物。选自己喜欢的。
1  | npm install --save hexo-helper-live2d  | 
主题替换。挑一个喜欢 blog theme,此处以 butterfly 为例,点进去(多数是贡献者的博客网站)找到当前主题的 GitHub 仓库入口(通常情况在博客的正下方),进入 GitHub 克隆当前仓库,放在 Hexo 所在目录的 themes 文件夹下(原目录下有一个默认的 landscape 主题,新主题目录和它同级)。修改 Hexo 根目录下的 _config.yml 文件,找到 theme 配置项,修改为克隆的主题名称
1  | git clone https://github.com/jerryc127/hexo-theme-butterfly.git  | 
统计数字、数学公式。
1  | npm install hexo-wordcount --save # 统计数字  | 
**4、新建分类、目录、标签 。**修改对应的 md 文件便可自定义属于自己的分类、标签。
1  | hexo new page about # 根目录/source/about/index.md  | 
编辑md文件时,注意多个分类写法
1  | 分级c2是c1的子类  | 
相应的配置 _config.yml 文件设置。其他更多配置可参考文章。
1  | # 右下角的卡通人物  | 
将Hexo与GitHub Page 关联起来
此处使用私有库 fishBlog 存储 hexo 项目,也就是你自己新建的项目,公共库 username.github.io 存储编译后的静态文件以便访问。
**1、上传 hexo 项目,并完成相关配置。**上传之前,需要更新一下 .gitignore 文件。默认情况下 public/ 不会被上传(也不该被上传),确保 .gitignore 文件中包含一行 public/。
上传完成之后,将该项目设置为私有,配置 Repository secrets 。进入该项目 →  Settings → Secrets and variables → Actions → New repository secret 。新建 HEXO_DEPLOY_PRI(配置deploy.yml会用到),  GIT_PASSWORD
**2、创建一个公共库 username.github.io。**设置为 public 并初始化,用同样的方法新建 HEXO_DEPLOY_PRI。
开启 pages 功能:进入该公共库 →  Settings → 左侧Pages → Build and deployment → 选择 main 分支, /root  →  save
站点配置文件_config.yml 中配置 url 和 deploy 配置项。
1  | url: https://southernfish.github.io/  | 
**3、创建GitHub Actions工作流。**在你的私有库中,创建一个新的目录.github/workflows/,并在其中创建deploy.yml文件。该文件将包含自动部署的配置:
1  | # Action的名字  | 
4、参考链接
PicGo安装
1、下载安装。直接根据提示安装,路径可自己指定。
2、PicGo预置的有四种链接格式:Markdown、HTML、URL、UBB`,其得到的上传文件链接分别为:
1  | Makdown:   | 
3、自定义链接格式Custom:
1  | Custom: <center><img src="$url" alt="$fileName"/></center>  | 
4、PicGo设置中可以配置如日志、代理等设置,一定要注意要打开该自动复制URL的设置上传后自动复制URL:开
5、图床设置,此处使用GitHub图床。首先需要在 GitHub 中初始化一个 公共库 ImageHostServer。
1  | 设定仓库名: username/ImageHostServer  | 
Token 设置方式:Settings → Developer Settings → personal access tokens → Fine-grained → Generate new token → 设置名字为ImageHostServerToken → 找到Repository access → 选择 Only select repositories,并选择库 ImageHostServer → 找到 Repository permissions 的 contens → 点击右侧下拉按钮设置为 Read and write → Generate token → 复制Token值并保存下来,picGo配置需要
Typora 安装
1、安装可参考Typora安装及破解
2、配置。打开 Typora 的偏好设置,选择图像,把插入图片设置为上传图片;上传服务设置为 PicGo(app) ,PicGo路径设置为PicGo的安装路径(D:\HexoBlog\Typora\Typora.exe),配置完成之后,点击验证上传,提示成功上传图片并获得新的URL则说明成功了。如若不成功检测一下 PicGo设置的server设置端口是否一致,不一致的话需要改成一致。



