Hexo Blog

本文最后更新于:2020年5月5日 下午

官方文档

本博客就是使用 Hexo 生成的,但是我平常使用的都是 Windows 系统,使用 Hexo 需要安装不少软件。
而我又不想安装很多软件,所以研究着怎么用虚拟机和 Windows 配合使用 Hexo。
下面就是具体的方法。

Hexo 安装

Node.js

官方下载相应版本的 Node.js 安装包,
我使用 CentOS,下载了 Linux Binaries x64,是已经编译好的二进制文件,配置一下环境变量即可。

tar -xvJf node-v6.3.1-linux-x64.tar.xz
mv node-v6.3.1-linux-x64 /usr/local/soft
vi ~/.bash_profile

添加 PATH 路径

export NODEJS_HOME=/usr/local/soft/node-v6.3.1-linux-x64
export PATH=$PATH:$NODEJS_HOME/bin

保存退出

source ~/.bash_profile
node -v

Git

可直接使用 yum 安装

yum install git

Hexo

npm install -g hexo-cli

等待几秒钟,安装完成后可发现在 NODEJS_HOME/bin 路径中增加了 hexo 的二进制文件。

Linux 虚拟机设置共享文件夹

参考

安装 samba

yum install samba samba-winbind​

配置 samba

mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
vi /etc/samba/smb.conf

写入文件

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = centos
interfaces = eth0       # 监听网卡
security = user
passdb backend = tdbsam
guest account = nobody
[share]
public = no
path = /home/user/share
browsable =yes
writable = yes

配置防火墙

CentOS 7 使用的是 firewall 防火墙,我首先把网络设置到 home 类型,然后添加了 samba 服务。

firewall-cmd --zone=home --add-service=samba
firewall-cmd --permanent --zone=home --add-service=samba

开启 samba

systemctl enable smb.service
systemctl restart smb.service

设置密码,使用 root,方便更改文件

smbpasswd -a root

可使用以下命令查看是否成功设置

smbpasswd -e

配置共享文件夹

mkdir -p /home/user/share
cd /home/user
chmod 755 share/
chcon -t samba_share_t share/

在 Windows 资源管理器中输入虚拟机地址 \\192.168.61.128,可看到共享的文件夹 share

新建 Hexo

hexo init <folder>
cd <folder>
npm install

恢复 Hexo

只要保存 package.json 文件,在文件夹内执行以下命令即可恢复。

npm install

主题配置

如果安装了其他主题,请主动安装恢复,否则调试会出现错误(WARN No layout: index.html)。

Blog 调试部署

参考

调试

本地查看

hexo server	                       // 默认 localhost:4000
hexo server -i 192.168.1.2 -p 5000 // 修改 IP 及 Port

部署

安装:hexo-deployer-git

npm install hexo-deployer-git --save

配置:_config.yml

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type: git
  repo: git@xxx.git
  branch: xxx

Git 设置:用户名邮箱以及 ssh key 相应配置

发布:hexo generate --deploy

CICD

github 自从被微软收购了,真是不差钱,有了 Actions 直接线上编辑文章自动部署,本地也不需要搭什么环境了。^-^

leancloud.memo

站点中使用 leancloud 中统计,但是免费版 api 调用有限制,经常会出现 429 错误。
那么就需要保存更新 memo 本地数据库文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
prepare:
name: Prepare
runs-on: ubuntu-18.04

steps:
- name: Checkout
uses: actions/checkout@v2
with:
repository: {repository} # 站点文件位置
- name: Setup Node
uses: actions/setup-node@v1
with:
node-version: '12.x'
- name: Upload artifact
uses: actions/upload-artifact@v2
with:
name: leancloud
path: leancloud.memo # 保存上次文章路径本地数据库
deploy:
name: Deploy
needs: prepare
runs-on: ubuntu-18.04

steps:
- name: Checkout
uses: actions/checkout@v1
with:
submodules: true
- name: Download artifact
uses: actions/download-artifact@v2
with:
name: leancloud
path: source # 保存本地

这里遇到一个问题,deploy 时插件更新 memo 文件在拷贝 public 文件夹之后,所以导致新的 memo 文件不能传到站点上,目前简单的解决办法就是部署两次。


Hexo Blog
https://wishlily.github.io/article/tools/2016/07/28/undefined/
作者
Wishlily
发布于
2016年7月28日
许可协议