Skip to content

Repository files navigation

Simon's Blog

基于 HugoLoveIt 主题搭建的个人博客。

技术栈

  • Hugo (Extended)
  • LoveIt 主题(Git Submodule)
  • 中英文双语支持

项目结构

.
├── archetypes/     # 文章模板
├── assets/         # 自定义样式(覆盖主题)
├── content/        # 博客内容
├── static/         # 静态资源(图片、favicon 等)
├── themes/LoveIt/  # 主题(submodule)
└── hugo.toml       # 站点配置

本地开发

# 启动开发服务器(含草稿)
make dev

# 或直接运行
hugo server -D

访问 http://localhost:1313

构建

make build

# 输出目录:public/

新建文章

hugo new posts/my-new-post.md

评论系统(Giscus)

本站使用 Giscus(基于 GitHub Discussions)。配置在 hugo.toml[params.page.comment.giscus]

前置条件:

  1. 仓库为 Public,并已开启 Discussions
  2. 安装 giscus GitHub App,授权给 simonlee-hello/MyBlog
  3. 评论仅在 production 构建中加载(Cloudflare 部署已设 HUGO_ENV=production

单篇关闭评论:front matter 写 comment: false

RSS 订阅

顶栏与首页 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 deploy

Dashboard → 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

部署到 Cloudflare Workers

参考 Hugo 官方文档,本项目已包含:

文件 作用
wrangler.jsonc Cloudflare Workers 配置
build.sh 云端构建脚本(Hugo Extended + 主题 submodule)
package.json 启用 Cloudflare 构建缓存

首次部署步骤

  1. 将仓库推送到 GitHub(需包含 themes/LoveIt submodule)
  2. 登录 Cloudflare DashboardAddWorkers
  3. Connect GitHub,选择本仓库
  4. 设置应用:
    • Project name: simons-blog(或与 wrangler.jsoncname 一致)
    • Build command: 留空
    • Deploy command: npx wrangler deploy
    • Advanced构建环境变量(不是「变量和密钥」):
      • SKIP_DEPENDENCY_INSTALL = true
      • HUGO_BASEURL = https://blog.你的域名.com(可选,见下方说明)
  5. 点击 Deploy,完成后访问站点

注意:纯静态 Worker 不能在「Settings → Variables and Secrets(变量和密钥)」里加变量,那里是运行时用的。HUGO_BASEURL 要么在 Settings → Build → Build variables(构建变量) 里填,要么直接写进 hugo.toml(推荐)。

自定义域名

  1. Cloudflare → Workers & Pages → 项目 simons-blog
  2. Settings → Domains & RoutesAddCustom Domain
  3. 输入例如 blog.你的域名.com(域名已在 Cloudflare 时会自动配 DNS)
  4. hugo.toml 里的 baseURL 改成同一地址:
baseURL = "https://blog.你的域名.com/"
  1. 提交并 push,触发重新部署

HUGO_BASEURL 填什么? 填用户浏览器里访问博客的完整地址,例如:

访问方式 baseURL
自定义域名 https://blog.example.com/
临时 Workers 域名 https://simons-blog.xxxxx.workers.dev/

推荐做法:直接改 hugo.tomlbaseURL,不依赖 Cloudflare 环境变量,最简单。

构建缓存(可选)

Dashboard → 项目 → Settings → Build → Build cacheEnable

部署前检查

  1. hugo.toml 中将 baseURL 改为实际域名
  2. 确认 static/images/avatar.png 等静态资源已就位
  3. 运行 make build 检查构建是否成功

许可证

内容版权归作者所有。

About

Simon's Hugo blog (LoveIt theme, bilingual, Cloudflare Workers)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages