前言 {#前言}
使用 Hexo 写博客,每次写完都要生成静态文件,而且 Hexo 基于 Node.JS
,不能在手机上更新。
所以每次提交过后发现自己码错字了,或是有同学来换友链,总是要麻烦的改文件,再上传。
那么,Hexo 如何进行在线更新呢?
如果使用服务器的话,就丧失了使用 Hexo 的最大的优点------节省开支,而且还不如用 Typecho/WordPress
呢。
后来突然想到 GitHub Action
可以实现在线打包等操作,就想试试在线生成 Hexo 博客。
行动 {#行动}
获取 GitHub 令牌 {#获取-GitHub-令牌}
登录你的 GitHub 账号,点击右上角的头像,点击「Settings」进入设置。
点击菜单栏中的「Developer settings」进入开发者设置。
点击菜单栏中的「Personal access tokens」进入令牌设置。
点击「Generate new token」新建一个令牌。
勾选全部的权限,名称随意。
并点击「Generate token」完成生成。
记得保存好这个令牌,它不会再次出现。
新建仓库 {#新建仓库}
使用 GitHub 新建一个存放 Hexo 文件的仓库,要选私有仓库!
不要勾选任何的初始化仓库选项!
在 Hexo 根目录中删除 .git
文件夹(隐藏文件夹),删除主题目录下的 .git
文件夹。
然后在 Hexo 根目录下使用 cmd 或终端运行以下命令:
|-------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5
| git init # 新建 Git 仓库 git add -A # 暂存所有文件 git commit -m "Create" # 提交更新 git remote add origin https://github.com/用户名/新建的私有仓库名.git # 新增远程链接 git push -u origin master # 推送至远程仓库
|
配置 GitHub Action {#配置-GitHub-Action}
进入仓库页面,点击「Action」,点击「 set up a workflow yourself 」。
在左侧代码编辑器中将下方提供的代码粘贴进入代码框。
请仔细阅读注释,修改最后几行的提交设置。
确认无误后点击右上角的「Start Commit」。
此处注意!「公开的仓库名」是生成后文件提交的公开仓库,供「GitHub Pages」「Vercel」等服务使用!
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 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
| name: Deploy # 部署 on: # 触发条件 push: branches: - master # 推送到 master 分支 release: types: - published # 推送新版本号 workflow_dispatch: # 手动触发 jobs: build: runs-on: ubuntu-latest steps: - name: Checkout # Checkout 仓库 uses: actions/checkout@v2 with: ref: master - name: Setup Node # 安装 Node.js uses: actions/setup-node@v1 with: node-version: "12.x" - name: Install Hexo # 安装 Hexo run: | npm install hexo-cli -g - name: Cache Modules # 缓存 Node 插件 uses: actions/cache@v1 id: cache-modules with: path: node_modules key: ${{runner.OS}}-${{hashFiles('**/package-lock.json')}} - name: Install Dependencies # 如果没有缓存或 插件有更新,则安装插件 if: steps.cache-modules.outputs.cache-hit != 'true' run: | # 如果仓库里没有 package-lock.json,上传一下,npm ci 必须要有 package-lock.json npm ci - name: Generate # 生成 run: | hexo clean hexo generate - name: Deploy # 部署 run: | git config --global user.name "HiFun" git config --global user.email "omycoke@outlook.com" export TZ='Asia/Shanghai' cd public/ git init git add -A git commit -m "Create by workflows" git remote add origin [https://令牌@github.com/用户名/公开的仓库名] git push origin master -f
|
使用 {#使用}
每次更改完文件过后,在 Hexo 根目录运行以下命令:
|---------------|------------------------------------------------------------------|
| 1 2 3
| git add -A git commit -m "Update" git push origin master
|
也可直接在仓库中 改文件/写博文 效果一样,GitHub 都会为你自动生成文件。
参考链接:https://cloud.tencent.com/developer/article/2201648