Hexo结合多个主题扩展为Gallery画廊并实现文章加密

可能参考的文章:

如何优雅的使用Github Action服务来将Hexo部署到Github Pages - Hexo

当前PC环境中有Node和Git。版本可以参考Hexo文档。

文章中出现的yourusername为Github用户名,your-repo为仓库名。

1. 初始化

新建一个项目根目录HexoNote,并初始化hexo(主Hexo)。然后新建一个子文件夹hexoB,在里面也初始化Hexo(副Hexo),用于存放第二个hexo。副Hexo的主题是一个简单的主题,很适合作为画廊。

根目录
    - public
    - hexoB
        - public
        - ...
    - ...

把项目传达github,私有仓库,名为HexoNotePrivate

假设存放Hexo编译后的静态文件夹的仓库名为HexoNote,公共的public。

我们利用github action编译HexoNotePrivate里面的2个hexo,然后整合静态文件夹,推送到HexoNote仓库,HexoNote配置github pages

2. 安装加密

npm install --save hexo-blog-encrypt

在主Hexo的_config.yml文件新增配置

# Security
encrypt: # hexo-blog-encrypt
  abstract: 这是一篇加密文章,需要密码才能继续阅读。
  message: 当前文章暂不对外可见,请输入密码后查看!
  tags:
  - {name: private, password: YourPassword}
  wrong_pass_message: 抱歉,您输入的密码错误,请检查后重新输入。
  wrong_hash_message: 抱歉, 当前文章不能被校验, 不过您还是可以看看解密后的内容。

在md中的tags中新增private即可设置为加密文章。

tags:
  - private

3. 配置文件

把主Hexo的_config.yml文件修改

url: https://yourusername.github.io/HexoNote
root: /HexoNote/

并且在主Hexo的主题中新增菜单(导航栏)的一个元素,相对地址为/gallery,具体按主题的文档设置

navbar:
    # Navigation menu items
    menu:
        Home: /
        Archives: /archives
        Gallery: /gallery
        About: /about

把副Hexo的_config.yml文件修改

url: https://yourusername.github.io/HexoNote/gallery
root: /HexoNote/gallery/

4. 创建Token

详情看顶部的文章链接,把token放入private私有仓库。

5. 新建公开仓库

新建公开仓库HexoNote,作为github pages的代码仓库。

6. 工作流

新建文件.github\workflows\deploy.yml

node版本和推送地址要按情况修改。

name: Deploy Hexo to GitHub Pages

on:
  push:
    branches:
      - main  # 当推送到 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主题

在这里插入图片描述

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值