Featured image of post hugo博客写作流程(二) —— 改

hugo博客写作流程(二) —— 改

   
文章摘要
摘要小助理今天溜号啦……😜

写作工具

推荐两款软件,本人都使用过: typora 和 obsidian

typora 破解版:

https://github.com/woniu336/typora-007

新建文章

在博客目录找到shell/quickstart.sh双击打开即可

先设置全局代理端口,再验证 ssh

发布到 Github

前提:

  1. 魔法上网
  2. 在 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 仓库,前面是用户名,后面是仓库名

你需要做两件事:

  1. 打开https://github.com/settings/tokens/new 新建令牌(repo 和 workflow 权限)

  2. 发布项目到 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: 新建的令牌

  1. 然后你就可以使用工具箱脚本中的菜单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 就行

CC BY-NC-SA 4.0 创意的非商业派对入场券
最后更新于 2024-12-23 10:06
晚来天欲雪,能饮一杯无