- Hugo (Extended)
- LoveIt 主题(Git Submodule)
- 中英文双语支持
.
├── archetypes/ # 文章模板
├── assets/ # 自定义样式(覆盖主题)
├── content/ # 博客内容
├── static/ # 静态资源(图片、favicon 等)
├── themes/LoveIt/ # 主题(submodule)
└── hugo.toml # 站点配置
# 启动开发服务器(含草稿)
make dev
# 或直接运行
hugo server -Dmake build
# 输出目录:public/hugo new posts/my-new-post.md本站使用 Giscus(基于 GitHub Discussions)。配置在 hugo.toml 的 [params.page.comment.giscus]。
前置条件:
- 仓库为 Public,并已开启 Discussions
- 安装 giscus GitHub App,授权给
simonlee-hello/MyBlog - 评论仅在 production 构建中加载(Cloudflare 部署已设
HUGO_ENV=production)
单篇关闭评论:front matter 写 comment: false。
顶栏与首页 Profile 均有 RSS 图标(params.social.RSS = true)。
全文输出:params.page.rssFullText = true。
图片:layouts/_partials/rss/item.html 将配图/正文图改为绝对 URL(阅读器无法加载相对路径与 lazyload 占位图)。
订阅源图标:layouts/home.rss.xml 的 <image> + static/favicon*(此前 favicon 404)。
两套分工:
| 用途 | 方案 | 说明 |
|---|---|---|
| 站长后台分析 | Cloudflare Web Analytics | 按 Host 过滤 blog. 子域 |
| 前台阅读量 / 全站 PV·UV | 自托管 Worker + D1(services/web-analytics) |
文章 meta 阅读量 + 页脚全站计数 |
cd services/web-analytics
npm install
npx wrangler login
npx wrangler d1 create web_analytics # database_id 写入 wrangler.jsonc
npm run initSql
npm run deployDashboard → Workers → web-analytics → 自定义域 analytics.leeissonba.com(需与 hugo.toml 里 [params.webAnalytics].baseURL 一致)。
在
services/web-analytics下部署;npm run deploy已指定--config wrangler.jsonc,避免误用仓库根目录 Hugo 站的配置。
仅 HUGO_ENV=production 时加载脚本;本地验证:HUGO_ENV=production hugo server。
参考 Hugo 官方文档,本项目已包含:
| 文件 | 作用 |
|---|---|
wrangler.jsonc |
Cloudflare Workers 配置 |
build.sh |
云端构建脚本(Hugo Extended + 主题 submodule) |
package.json |
启用 Cloudflare 构建缓存 |
- 将仓库推送到 GitHub(需包含
themes/LoveItsubmodule) - 登录 Cloudflare Dashboard → Add → Workers
- Connect GitHub,选择本仓库
- 设置应用:
- Project name:
simons-blog(或与wrangler.jsonc中name一致) - Build command: 留空
- Deploy command:
npx wrangler deploy - Advanced → 构建环境变量(不是「变量和密钥」):
SKIP_DEPENDENCY_INSTALL=trueHUGO_BASEURL=https://blog.你的域名.com(可选,见下方说明)
- Project name:
- 点击 Deploy,完成后访问站点
注意:纯静态 Worker 不能在「Settings → Variables and Secrets(变量和密钥)」里加变量,那里是运行时用的。
HUGO_BASEURL要么在 Settings → Build → Build variables(构建变量) 里填,要么直接写进hugo.toml(推荐)。
- Cloudflare → Workers & Pages → 项目 simons-blog
- Settings → Domains & Routes → Add → Custom Domain
- 输入例如
blog.你的域名.com(域名已在 Cloudflare 时会自动配 DNS) - 把
hugo.toml里的baseURL改成同一地址:
baseURL = "https://blog.你的域名.com/"- 提交并 push,触发重新部署
HUGO_BASEURL 填什么? 填用户浏览器里访问博客的完整地址,例如:
| 访问方式 | baseURL |
|---|---|
| 自定义域名 | https://blog.example.com/ |
| 临时 Workers 域名 | https://simons-blog.xxxxx.workers.dev/ |
推荐做法:直接改 hugo.toml 的 baseURL,不依赖 Cloudflare 环境变量,最简单。
Dashboard → 项目 → Settings → Build → Build cache → Enable
- 在
hugo.toml中将baseURL改为实际域名 - 确认
static/images/avatar.png等静态资源已就位 - 运行
make build检查构建是否成功
内容版权归作者所有。