该实践其实是一个目录操作规范,以易于使用为最终目的,将需要个性化和经常会变动的目录或文件独立出来,借助简单的 Shell 脚本进行 Hexo 的初始化及 NexT 主题的升级。
说明:来源于个人使用过程中的总结,可能并不适合所有人,仅供参考。
1. 最终目录结构
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 34
| . ├── config_hexo.yml ├── config_next.yml ├── core │ ├── _config.yml -> ../config_hexo.yml │ ├── _config.yml.bak │ ├── db.json │ ├── node_modules │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── scaffolds │ ├── source -> ../source_hexo │ ├── source_bak │ └── themes │ ├── landscape │ └── next │ ├── LICENSE.md │ ├── README.md │ ├── _config.yml -> ../../../config_next.yml │ ├── _config.yml.bak │ ├── crowdin.yml │ ├── docs │ ├── gulpfile.js │ ├── languages │ ├── layout │ ├── package.json │ ├── scripts │ └── source ├── deploy.sh ├── init.sh ├── source_hexo ├── source_next └── update_next.sh
|
1.1. 在 Github 上我们需要建立两个仓库
username/username.github.io
对应 Hexo 部署的目标目录,在 Hexo 根目录下的配置文件中进行设置。
username/blog.xxx.com
名字随意,对应上面的目录。其中 core
目录需要添加到 .gitignore
文件。
1.2. 如何使用
⚠️ 说明:每次写文章只需要步骤 3 ~ 5,只有当切换到一个新的工作环境时,才需要执行完整的步骤 1 ~ 5。
从 Github 拉下来环境仓库
1
| ➜ git clone https://github.com/username/blog.xxx.com.git
|
初始化 Hexo 环境
1 2 3 4
|
➜ chmod u+x init.sh ➜ ./init.sh
|
进入 Hexo 根目录
1 2 3 4 5
| ➜ cd core
➜ hexo new post "一篇新文章"
|
Hexo 发布部署
1
| ➜ hexo clean && hexo g -d
|
将本次修改推送到仓库
1 2 3 4
| ➜ git add . ➜ git commit -m "新增文章" ➜ git push
|
2. 脚本文件
init.sh
当切换到一个新的工作环境时,使用该脚本初始化 Hexo 及基于原数据的工作环境,之后便可以继续写文章、发布了。
示例文件内容如下:
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
|
hexo init core
cd core npm install npm install hexo-deployer-git --save npm install hexo-generator-searchdb --save npm install hexo-abbrlink --save npm install hexo-generator-sitemap --save npm install hexo-generator-baidu-sitemap --save npm install hexo-filter-nofollow --save mv _config.yml _config.yml.bak ln -s ../config_hexo.yml _config.yml mv source source_bak ln -s ../source_hexo source
git clone https://github.com/theme-next/hexo-theme-next themes/next cd themes/next mv _config.yml _config.yml.bak ln -s ../../../config_next.yml _config.yml \cp -rp ../../../source_next/* source
|
update_next.sh
当需要升级 NexT 主题时使用,示例文件内容如下:
1 2 3 4 5 6 7 8 9 10 11
| cd core/themes/next git checkout . && git clean -xdf
git pull
mv _config.yml _config.yml.bak ln -s ../../../config_next.yml _config.yml \cp -rp ../../../source_next/* source
|
deploy.sh
该脚本非必须,只有需要将最终部署好的文件分发到不同服务器时才用得到。
同步方式推荐使用 rsync
命令,这里不再具体举例。关于该工具到使用,可以参阅:rsync 的基本使用入门