个人作品集网站,自定义域名 halfism.com(根 CNAME 文件),托管于 GitHub Pages,由 Jekyll 3.9 在 CI(.github/workflows/pages.yml,push main 或 workflow_dispatch 触发)中构建为静态站。
重要:仓库存在两套并存体系,修改前先确认目标页面属于哪一套。
bundle exec jekyll build)data-theme + localStorage('theme'))manifest.json(start_url: /)+ sw.js(networkFirst 导航 / staleWhileRevalidate 静态 / cacheFirst 外部;缓存版本 halfism-v3)入口与渲染链:
_config.yml → _data/*.yml + _data/locales/{zh,en}.yml → _includes/sections/*.html、_includes/components/*.html → _layouts/{default,post,project}.html → assets/css/style.css + assets/js/main.js
en/index.html(/en/)、blog.html(/blog/)、gallery.html、_posts/*(6 篇 layout: post 中文技术博客 + 1 篇 layout: project)_data/locales/{zh,en}.yml,18 个命名空间(nav / hero / about / projects / skills / logs / stats / certificates / contact / blog / gallery / search / pwa / footer / post / project / offline / common),zh 与 en 必须键对键对齐_config.yml 的 site.socials(footer 遍历 site.socials;_data/socials.yml 已删除)tools/(含 gen_placeholder_assets.py 生成占位 PNG)、offline.html、search.json、sw.js、manifest.jsonindex.html(1167 行,内联 JS,无 front matter)→ Jekyll 原样输出为站点首页styles/main.css(1951 行)assets/js/main.js(交互全部内联),但已注册 sw.js 并引入 /manifest.json,PWA 可安装且离线可用#hero) / 博客(外链 https://halfism.com/lantab) / 项目 / 资源 / 日常 / 相册 / 简历 / 关于_config.yml # 站点配置(socials / seo / analytics[占位] / comments[占位] / contact[占位])
_data/ # 内容数据:projects/skills/certificates/logs + locales/{zh,en}.yml
_includes/
header.html footer.html
sections/ hero about projects skills logs github-stats certificates contact
components/ pwa search
_layouts/ default post project
assets/
css/style.css js/main.js
img/ avatar.png og-image.png icons/icon-*.png (占位资源由脚本生成)
resume.html resume_en.html (占位简历说明页)
index.html + styles/main.css # 独立静态首页
blog.html gallery.html _posts/ en/index.html
img/ # 相册图片:{nature,tech,travel}/img1-3.jpg 共 9 张
tools/ .github/workflows/ manifest.json sw.js offline.html search.json
google_analytics.tracking_id = G-XXXXXXXXXX:enabled 已置 false,避免占位 ID 产生无效请求。填入真实 GA4 ID 后需把 enabled 改回 true,并在 sw.js 的 EXTERNAL_URLS 中取消 GA 脚本注释。comments.giscus.repo_id / category_id、contact.form_id:仍为占位符,相关功能暂未接入。_config.yml 对应行上方加 TODO 注释说明。python -m http.server 5000python tools/verify_fixes.py(需 pyyaml),覆盖 YAML 合法性、资源存在性、sw.js 预缓存、locale 键、社交数据等,当前 38/38 通过C:\Users\xiejian\.workbuddy\binaries\python\versions\3.14.3\python.exe/blog/、/en/、/gallery.html 与首页均无 404 资源/...,不要写死 /img/... 这类绝对路径(子路径部署会 404)。_config.yml 的 url 必须与根 CNAME 一致(现为 https://halfism.com);index.html 的 og:url 与 JSON-LD 是硬编码的,改域名时这三处要一起改。PRECACHE_ASSETS 或缓存策略后,必须同步提升 CACHE_NAME / STATIC_CACHE / DYNAMIC_CACHE / EXTERNAL_CACHE 四个版本号(现为 v3),否则老用户缓存不会更新。_config.yml 的 site.socials,_data/socials.yml 已删除,不要再新建。git commit -m "中文" 会使提交信息乱码;改用 UTF-8 的 -F 消息文件,或先执行 chcp 65001。开始输入以搜索文章