Hexo 安装记录

 Hexo 框架安装记录,2021年12月修订。

0 序

贯彻白嫖的精神,选择成熟的方案。

1 环境

需要 Node.js 和 Git

1.1 Node.js 国内加速

 
临时使用
npm --registry https://registry.npmmirror.com install express

持久使用
npm config set registry https://registry.npmmirror.com

验证是否设置成功
npm info express" or "npm config get registry

删除配置
npm config rm registry

1.2.1 连接 Github

打开 git bash 输入命令:
git config --global user.name "用户名"
git config --global user.email "邮箱"

生成密钥,连续回车跳过设置密码:
ssh-keygen -t rsa -C "邮箱"

查看公钥,粘贴内容至 Github
cat ~/.ssh/id_rsa.pub

测试连接可用性:
ssh -T git@github.com

1.2.2 Git 多用户

删除全局配置:
git config --global --unset user.name
git config --global --unset user.email

生成密钥:ssh-keygen -t 类型 -C 注释
ssh-keygen -t rsa -C "email1-work"
公私钥默认文件名分别为 id_rsa.pub、id_rsa,创建时可修改。

(Windows 中没用上)让 ssh 识别这两个秘钥需要:
ssh-agent bash
ssh-add ~/.ssh/id_rsa_github
这样你机器上的 ssh 就可以区分两个秘钥了。

配置 ssh:
除非单独设置过用户变量 HOME,
Windows 公私钥通常存在 C:\Users\用户名\.ssh
cd ~/.ssh
新建一个config文件,用于配置私钥对应的服务器,配置如下:

Host [别名]
HostName [Git 服务地址]、
User [用户名]
IdentityFile ~/.ssh/[私钥文件]

完成之后测试:ssh -T git@[别名]
使用:git@[别名]:[地址]/[项目].git

例如:
Host alias
HostName git.server.add
User [用户名]
IdentityFile ~/.ssh/[私钥文件]

配置好后 clone 的地址需要改一下:
git@git.server.add:路径/项目.git
这里需要改成:
git@alias:路径/项目.git
因为我在 config 里面已经把 git.server.add 给设置了一个别名叫 alias,此时使用对应私钥来验证。

测试:ssh -T git@[alias]

clone 之后需要进入目录设置 git 的 name 和 eamil:
cd 目录
git config user.name "用户名"
git config user.email "邮箱"

1.2.3 Git & Hexo

自用的命令:
npm install -g hexo-cli:安装(全局安装,可直接使用命令)
npm install:安装组件
hexo s:动态预览

git init
git clone -b source git@别名:用户名/blog.git:拉取 blog 远程库 source 分支
git config user.name "用户名"
git config user.email "邮箱"

git remote add 远程库别名 git@别名:用户名/blog.git
git add .
git commit -m 信息
git branch -m master source:分支从 master 重命名为 source
git push 远程库别名 source
 

2 Hexo

博客目录下右键 Git Bash Here:

npm install -g hexo-cli:安装(全局安装,可直接使用命令)
hexo v:版本
hexo init:空目录初始化(换新电脑不用)
npm install:安装组件
hexo s:动态预览
hexo g:构建
hexo clean:清理缓存
npm install hexo-server --save: 安装服务器模块以本地预览(Hexo 3.0+)
hexo server -s:只预览构建好的 public 目录

换新电脑需要拷贝:
首先排除 .gitignore 包含的:.DS_Store、Thumbs.db、db.json、*.log、node_modules/、public/、.deploy*/。
文件夹:theme/、source/、scaffolds/、其他必须文件夹;
文件:_config.yml、package.json、.gitignore、其他必须文件。

3 GitHub Pages 自动化发布

以前发布前需要在本地构建并使用 hexo-deployer-git 插件上传静态文件,现在通过 Github Actions,只需上传原始文件就能等待页面自动更新。

3.1 命令

git add .
git commit -m 信息
git push origin source

查看文档
在博客目录下建立 .github/workflows/pages.yml 并填写正确的 default、deploying branch
git 提交后即自动化发布

3.2 Git

git clone -b source git@github.com:用户名/项目.git
git init
git branch -m master newName:本地分支重命名
git push -f origin source

4 优化

4.1 加速

Github Pages 屏蔽了百度的爬虫且直接使用 CDN 不见得有助于收录,直接换个静态网站托管即可。比如 Vercel(now.sh)、Netlify、Cloudflare Pages 等,只要支持 Github 一键导入即可轻松迁(bai)移(piao)。

近期推荐 Vercel,速度快,免费额度也足够,注意导入时若不需要自动构建即上文的 Github Action 能力,在 Build & Development Settings 直接选 Other,只需要托管文件的我卡半天 404。

4.2 Disqus

下面两种方案的区别:

4.2.1 DisqusJS

仅支持评论展示。

4.2.2 Disqus Proxy

支持评论展示与匿名发表。

4.2.3 分享链接错误

若链接开头是 yoursite.com、localhost:4000 等情况
参考此文尝试下面的步骤更正 Disqus 解析地址:
  1. _config.yml 配置中填好“url: 网站域名”
  2. Disqus 后台 ▶ Moderation ▶ Migration Tool ▶ Domain Migration Tool,手工修改解析地址

此博客中的热门博文