可能参考的文章:
如何优雅的使用Github Action服务来将Hexo部署到Github Pages - Hexo
当前PC环境中有Node和Git。版本可以参考Hexo文档。
文章中出现的yourusername为Github用户名,your-repo为仓库名。
1. 初始化
新建一个项目根目录HexoNote
,并初始化hexo(主Hexo)。然后新建一个子文件夹hexoB,在里面也初始化Hexo(副Hexo),用于存放第二个hexo。副Hexo的主题是一个简单的主题,很适合作为画廊。
1 2 3 4 5 6
| 根目录 - public - hexoB - public - ... - ...
|
把项目传达github,私有仓库,名为HexoNotePrivate
。
假设存放Hexo编译后的静态文件夹的仓库名为HexoNote
,公共的public。
我们利用github action
编译HexoNotePrivate
里面的2个hexo,然后整合静态文件夹,推送到HexoNote
仓库,HexoNote
配置github pages
。
2. 安装加密
1
| npm install --save hexo-blog-encrypt
|
在主Hexo的_config.yml文件新增配置
1 2 3 4 5 6 7 8
| encrypt: abstract: 这是一篇加密文章,需要密码才能继续阅读。 message: 当前文章暂不对外可见,请输入密码后查看! tags: - {name: private, password: MKL1009} wrong_pass_message: 抱歉,您输入的密码错误,请检查后重新输入。 wrong_hash_message: 抱歉, 当前文章不能被校验, 不过您还是可以看看解密后的内容。
|
在md中的tags中新增private即可设置为加密文章。
3. 配置文件
把主Hexo的_config.yml文件修改
1 2
| url: https://yourusername.github.io/HexoNote root: /HexoNote/
|
并且在主Hexo的主题中新增菜单(导航栏)的一个元素,相对地址为/gallery
,具体按主题的文档设置
1 2 3 4 5 6 7
| navbar: menu: Home: / Archives: /archives Gallery: /gallery About: /about
|
把副Hexo的_config.yml文件修改
1 2
| url: https://yourusername.github.io/HexoNote/gallery root: /HexoNote/gallery/
|
4. 创建Token
详情看顶部的文章链接,把token放入private私有仓库。
5. 新建公开仓库
新建公开仓库HexoNote,作为github pages的代码仓库。
6. 工作流
新建文件.github\workflows\deploy.yml
node版本和推送地址要按情况修改。
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| name: Deploy Hexo to GitHub Pages
on: push: branches: - main
jobs: build: runs-on: ubuntu-latest
steps: - name: Checkout repository uses: actions/checkout@v2 with: submodules: false
- name: Setup Node.js uses: actions/setup-node@v2 with: node-version: '18'
- name: Install Dependencies run: npm install
- name: Install Hexo Git Deployer run: | npm install hexo-deployer-git --save npm install hexo-cli -g
- name: Clean and Generate Static Files for Theme A run: | hexo clean hexo generate
- name: Generate Static Files for Theme B run: | cd hexoB npm install npm install hexo-deployer-git --save npm install hexo-cli -g hexo clean hexo generate cd ..
- name: Move Theme B Output to Gallery run: | mv hexoB/public public/gallery
- name: Configure Git run: | git config --global user.name 'github-actions[bot]' git config --global user.email 'github-actions[bot]@users.noreply.github.com'
- name: Deploy to GitHub Pages env: GH_TOKEN: ${{ secrets.GH_TOKEN }} run: | cd public/ git init git add -A git commit -m "Create by workflows" git remote add origin https://${{ secrets.GH_TOKEN }}@github.com/yourusername/HexoNote.git git push origin HEAD:gh-pages -f
|
7. 实现效果
1. 加密
2. 画廊B主题