写作工具
推荐两款软件,本人都使用过: typora 和 obsidian
typora 破解版:
https://github.com/woniu336/typora-007
新建文章
在博客目录找到shell/quickstart.sh
双击打开即可
先设置全局代理端口,再验证 ssh
发布到 Github
前提:
- 魔法上网
- 在 Github 新建一个仓库
可以取名为 username.github.io
找到shell/quickstart.sh
双击打开,选择7.SSH 管理工具
按照 1 到 4 走一遍流程,之前搞过 github 仓库可以跳过
- 科普一下: hugo 是静态博客,需要把
public
目录下的所有文件发布到 github - 你可能找不到
public
目录,工具箱选择第 3 项:生成静态文件即可 - 需要把
public
单独作为一个仓库发布到 github,选择菜单8:推送 public 到Github
- 远程仓库格式,例如:git@github.com:1143520/1143520.github.io.git(这一步可以多试几次,直到可以显示已连接的仓库名,最后都会上传)
- 上面的 1143520.github.io 是放置静态文件资源的仓库,还需要一个博客源码仓库,例如:1143520/hugo,可以是 private 仓库,保护源码,这个仓库需要 token,必须有 repo 和 workflow 权限(classic,打勾)
Github Actions 工作流
Github Actions 通俗解释: 按照剧本去执行任务,什么时候干什么事情
打开 git bash 在博客目录运行
mkdir -p .github/workflows
在 workflows 目录新建 main.yml 文件,粘贴以下内容:
name: Auto Deploy hugo
on:
push:
branches:
- main # 更新触发的分支
jobs:
build-deploy:
# runs-on: ubuntu-latest
runs-on: ubuntu-20.04
steps:
- name: Check out repository code
uses: actions/checkout@v4
with:
submodules: recursive # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
- name: Setup hugo
uses: peaceiris/actions-hugo@v3.0.0
with:
# hugo-version: "latest" # 可以修改为你使用的 Hugo 版本
hugo-version: "0.127.0"
extended: true # 设置是否需要 extended 版本
- name: Cache resources # 缓存 resource 文件加快生成速度
uses: actions/cache@v3
with:
path: resources
# 检查照片文件变化
key: ${{ runner.os }}-hugocache-${{ hashFiles('content/**/*') }}
restore-keys: ${{ runner.os }}-hugocache-
- name: Build Hugo static files # 部署静态资源
run: hugo --gc --minify
- name: Deploy to Github Pages # 部署到Github Pages页面
uses: peaceiris/actions-gh-pages@v3
with:
personal_token: ${{ secrets.PERSONAL_TOKEN }}
external_repository: 1143520/1143520.github.io
publish_dir: ./public # hugo 生成到 public 作为跟目录
publish_branch: main # Github Pages 所在分支
commit_message: ${{ github.event.head_commit.message }}
这个文件的作用是将 Hugo 生成的静态网站文件从 ./public 目录发布到 woniu336/woniu336.github.io 仓库的 main 分支,并且使用指定的个人访问令牌来进行身份验证和授权。 把 1143520/1143520.github.io 改成你自己的 public 仓库,前面是用户名,后面是仓库名
你需要做两件事:
打开https://github.com/settings/tokens/new 新建令牌(repo 和 workflow 权限)
发布项目到 github,注意:这里不是指 public 仓库,是博客根目录发布到 github,
然后在 settings/secrets/actions 添加变量(这一步自己查找 git 命令,或者使用自己的 git_uploud.bat,需要先上传仓库生成.git 文件夹,点击 5.一键推送才有用)
推送这个仓库一定要检查是否有.gitignore 文件,排除 public 文件夹,或者先剪切出去,后面再粘贴回来(前提是 public 你不想修改了),建议.gitignore
# Hugo 默认的生成目录
/public/
# 其他一些常见的 Hugo 相关忽略项
/resources/_gen/
.hugo_build.lock
# 操作系统生成的文件
.DS_Store
Thumbs.db
# IDE 相关文件
.idea/
.vscode/
name: PERSONAL_TOKEN
Value: 新建的令牌
- 然后你就可以使用工具箱脚本中的菜单
5:一键推送
了,你会看到推送了两个仓库.
发布到 vercel 绑定 github,选择或者 cloudflare 同理,绑定的是 1143520.github.io 这个公开的仓库
在 vercel 绑定 github,选择推送 public 目录的远程仓库,一键部署,cloudflare 同理, 设置 vercel 自定义的域名,先 DNS 解析默认 cname:cname.vercel-dns.com 或者优选 ip,A 记录:76.223.126.88,等待 vercel 生成证书,确认自定义域名可以“安全”访问,回到 cloudflare,把 DNS 记录改成 cname:vercel-cname.xingpingcn.top 这个是国内大佬的 CDN 优化,但是只适用于顶级域名,二级有些地方会阻断
https://github.com/xingpingcn/enhanced-FaaS-in-China
修改没有立即生效,建议 ctrl+f5 刷新浏览器
在.gitmodules 中 加载一些子模块资源貌似是从原作者仓库加载的,虽然测试过好像没啥用,以防万一,我还是转到了自己的仓库(包括所有文件),当个备份吧
https://github.com/1143520/hugo-magic
部署 twikoo 评论的时候,注意替换
类似
mongodb+srv://twikoo-dbsfbs:lidfgnjsdYG52bD5r33@cluster0.4gn5a.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0
完成之后 8、静态资源,头像等等就不要改动了,只需要 5 就行