词元计数器构造简介

又咕咕了一段时间 😅 但是这段时间词元也没闲着,除了上次写的迁移,还小修小补,给博客做了不少加载速度、界面、功能上的提升。目前这个版本词元是比较满意的,因此水一则博客介绍一下。 🏗️ 分离构建 虽然 Cloudflare 静态资源托管,流量是无限的,但是每个月有 3,000 分钟的构建时长限制。虽然这也是用不完的1,但是——白嫖怪怎么能接受限制呢? 如果您按照词元的教程,搭建了含有 index.js 的动态 Workers,那么很可惜,词元已经反悔了;这样实在是太浪费 Workers 请求了,都不用 DDoS,写个小脚本请求一天就能干下线 🙃 不过 Workers 也可以纯静态,不消耗 Workers 调用次数,只要删除所有 JS 脚本,从 wrangler.toml 里删掉除了定义静态资源之外的所有配置,就可以转换为静态 Workers 了。例如: 1 2 3 4 5 6 name = "tokeniland" compatibility_date = "2025-05-05" [assets] directory = "./public" not_found_handling = "404-page" 其中 public 是我们构建生成的目录。 话说回来,GitHub Actions 为公开仓库提供了无限时长的构建,结合无限流量的静态 Workers,就能实现全程白嫖。按照 Cloudflare 给出的文档,我们写一个 .github/workflows/build.yaml: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 name: 🌥️ Deploy Tokeniland to Cloudflare Workers on: push: branches: - master workflow_dispatch: jobs: build-and-deploy: runs-on: ubuntu-latest timeout-minutes: 15 steps: - uses: actions/checkout@v4 - name: 🚧 Build the site with Barrel Build run: bash script/build.sh - name: 🚀 Deploy to Cloudflare Workers uses: cloudflare/wrangler-action@v3 with: apiToken: ${{ secrets.CLOUDFLARE_WORKERS_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} 很简单吧!先这样(用 Hugo 生成,使用的 script/build.sh 待会儿会说),再那样(用 Wrangler 上传到 Workers),就可以用了。别忘了在 GitHub 仓库里添加 API 密钥和账户 token2。 ...

May 25, 2025 · 2 min · 372 words · 词元

将 Cloudflare Pages 迁移到 Workers

最近 Cloudflare 宣布 Workers Static Assets 进入“普遍可用”阶段,并在博客里建议新应用都使用 Workers 而非传统的 Pages1。 词元的博客一直都是托管在 Pages 上的,之前就想实现 UA 分流,例如 cURL 访问就返回纯文字版本,浏览器访问就返回网页版,但是在纯静态的情况下基本不可能实现2。既然 Cloudflare 把 Workers 吹上天了,那就来试试到底有多神奇吧 🔥 🤔 等等! Pages 是静态资源托管,访问次数和流量都是无限的;Workers 则需要执行用户脚本,免费版本每天限制调用 100,000 次。虽然看着很多,实际上也用不完,但是考虑每一个请求都需要计入,是不是有点浪费? 确实 😭 词元还有很多其他的 Workers,共享十万次请求,着实有点害怕(serverless 都能被 DDoS 到下线 😅)。但是考虑到 Workers 广阔的开发空间,以及 Cloudflare 的承诺“新功能都给 Workers”,词元决定玩一下,把博客转移到 Workers。 就算哪天发现不好用或者出事儿了,迁移回来也很方便嘛 😇 ⛅ Wrangler Wrangler 是 Cloudflare 提供的 Workers 开发工具,可以快速构建项目初始设置,还能在本地模拟运行一个 Workers 实例;总之就是我们必须要用。 Wrangler 基于(万恶的)Node.js 开发,所以您得先装个 Node.js 和 npm。然后,找一个风水宝地,执行: 1 npm create cloudflare@latest -- bug-barrel 嗯,词元决定将博客的名字还是改回原来的“桶装幺蛾子”,因为谷歌上“词元计数器”就算全文匹配都搜不到自己的博客 🤣 最近又改成了词元保护区…… ...

May 1, 2025 · 3 min · 433 words · 词元