这个世界的起源过程…

本地搭建

安装node.js

官网下载一路next即可

安装git

添加ssh

本来这一步也没什么问题,不过遇到一个坑,而且网上很多网友也遇上了,故在此记录

  • 生成ssh:
1
ssh-keygen -t rsa -C "你的邮箱"
  • 继续:
1
ssh-agent -s
  • 继续:
1
ssh-add ~/.ssh/id_rsa

这一步有可能会提示“Could not open a connection to your authentication agent”错误,网上有的解法并不可行,这里给出官方解法(还是官方文档靠谱)

  • 输入:
1
eval $(ssh-agent -s)
  • 最后:
1
ssh-add ~/.ssh/id_rsa

安装hexo

执行如下命令安装hexo

1
npm install -g hexo

然后cd到你要初始化的地方初始化

1
hexo init

生成静态页面

1
hexo g

本地启动

1
hexo server

启动后浏览器输入http://localhost:4000 就可以看到效果了

阿里云部署

参考:https://zhuanlan.zhihu.com/p/58654392

记得阿里云服务器选ubuntu系统

apt 安装nginx和git:

1
2
3
4
5
6
7
8
apt update
apt upgrade
apt install nginx

apt install git

git config --global user.name "qwertylevel3"
git config --global user.email "qwertylevel3@126.com"

生成ssh key:

1
ssh-keygen -t rsa -C "qwertylevel3@126.com"

同步pubkey到gitee用于clone博客项目

cd到这个目录,clone本来部署在gitee上的博客项目/var/www/html

于nginx配置目录修改默认页面:

1
/etc/nginx/sites-available/default
1
2
3
4
5
6
7
8
server {
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/html/qwertylevel_3;
......
}

保存,重启下nginx服务,即可
systemctl restart nginx.service

CI/CD

创建 git 用户:

1
adduser git

在 /home/git 目录下创建裸仓 hexo.git:

1
2
cd /home/git
git init --bare hexo.git

修改 hexo.git 的所有者和组权限:

1
chown -R git:git hexo.git

获取本地机器 SSH 的公钥:

1
cat ~/.ssh/id_rsa.pub

复制公钥,将公钥写入阿里云机器的 /home/git/.ssh/authorized_keys 文件中

在 /home/git/hexo.git/hooks/post-receive 文件中写入:

1
2
#!/bin/sh
git --work-tree=/var/www/html/qwertylevel_3 --git-dir=/home/git/hexo.git checkout -f

这个脚本意思是一旦本地触发了服务器hexo.git仓库的更新,就会自动同步文件到html下的博客页面文件

本地写作hexo环境_config.yml增加配置:

1
2
3
4
5
6
7
deploy:
- type: 'git'
repo: git@gitee.com:qwertylevel_3/qwertylevel_3.git
branch: master
- type: 'git'
repo: git@XXX.XXX.XXX.XXX(ip地址):/home/git/hexo.git
branch: master

免密部署

不过此时每次hexo d的时候依然需要输入密码

如下操作免密:

1
2
3
4
su git
mkdir ~/.ssh
touch ~/.ssh/autohrized_keys
vim ~/.ssh/autohrized_keys

然后将本地的ssh pub_keys复制过去

1
2
3
cd ~
chmod 600 ~/.ssh/autohrized_keys
chmod 700 ~/.ssh

圖片

別用hexo-asset-image!!!

1
npm install hexo-asset-link --save

_config.yml中:

1
post_asset_folder: true

通過如下的相對路徑即可引用
{% asset_img "cover.jpg" "" %}

其他

关于写东西

首先:

1
hexo new 文章名

然后就可以在hexo\source_posts里看到新建的一个”文章名.md”
写完了以后:

1
2
hexo g
hexo d

关于theme

网上找一个喜欢的theme,git命令安装,然后修改_config.yml,找到

1
theme:

改为

1
theme: 主题名

即可

关于摘要

在摘要与正文之间用

<!--more-->

分割即可

tips

  • _config.yml里所有”xxxx: yyyy”这个冒号后面要接一个空格
  • 主题都在hexo/themes/下,要更改theme修改_config.yml即可
  • deploy可能会报权限问题,记得chown -R 将html下博客目录修改给git用户
  • butterfly主題文檔:https://butterfly.js.org/