AI不止语
|
cc1148887e
|
feat(site): 页脚 + README 增加扫码关注(公众号 + 抖音二维码)
- 官网页脚新增"扫码关注"区块:公众号 AI不止语 + 抖音 @AI不止语(AIBZY)
两张二维码并排展示(中英 i18n + 响应式)
- README 交流区在公众号文案处嵌入公众号二维码
- 二维码自托管于 assets/,CSP img-src 'self' 已允许,无需放行外域
资源:site/template/assets/qr-{wechat,douyin}.jpg(站点)、assets/qr-wechat.jpg
(README);build.mjs 增加拷贝逻辑 + 页脚 figure 区块 + i18n 文案;
styles.css 增加 .foot-qr/.qr-card 样式。
验证:重建 42 页;两张 QR 拷入 dist;页脚区块生成;CSP 不受影响。
|
2026-06-20 06:04:15 +08:00 |
|
AI不止语
|
6f494d818e
|
feat(site): 接入 Google Analytics (gtag.js, G-L02QK4EVDL)
在每页 <head> 加入 gtag.js(异步加载器 + 内联 config)。
同步放行严格 CSP(否则 GA 被拦):
- script-src 增加 https://www.googletagmanager.com(加载器);内联 config
块由 CSP hash 收集器自动加白名单
- connect-src 增加 google-analytics / analytics.google / googletagmanager
(上报埋点)
- img-src 增加 google-analytics / googletagmanager(beacon)
验证:重建 42 页;GA 代码在 head;CSP 含上述域名;全站 126 处内联脚本
hash 全命中 CSP(0 缺失,站点不被打断、GA 内联可执行)。
|
2026-06-20 05:56:04 +08:00 |
|
AI不止语
|
3933c22858
|
fix(site): CSS/JS 加内容 hash 版本号,根治边缘缓存导致的样式不更新
问题:styles.css/app.js 设了 max-age=86400,Cloudflare 边缘缓存旧版,
部署 CSS 改动后用户仍看到旧样式(详情页排版修复一度不可见)。
修复:HTML 引用改为 styles.css?v=<hash> / app.js?v=<hash>,hash 取文件
内容 sha256 前 10 位。内容变→URL 变→边缘按新 key 取新文件(立即生效);
内容不变→URL 不变→继续命中长缓存。HTML 本身 max-age=0 始终新鲜,
保证总是引用到最新版本号。
验证:重建 42 页,首页与详情页 CSS/JS 引用均带 ?v=hash。
|
2026-06-20 05:52:31 +08:00 |
|
AI不止语
|
ceb92f3536
|
fix(site): 详情页排版居中 + star 数更新 233k + 页脚加 X/Twitter
- styles.css: .doc 容器补 margin:0 auto + 左右 24px 内边距,修复 skill
详情页正文紧贴左边缘、右侧大片空白的排版问题
- build.mjs / README: 上游 star 数 159k+ → 233k+(实际 233,268)
- build.mjs: 页脚生态区新增 X / Twitter(https://x.com/jnMetaCode)
验证:重建 42 页;.doc 居中边距生效;无 159k 残留;X/Twitter 入页脚。
|
2026-06-20 05:47:50 +08:00 |
|
AI不止语
|
4340c987b2
|
docs(site): 去掉 fork 框定与上游链接,页脚增加生态/社区入口
按项目方要求,官网不再以"基于 obra/superpowers 的中文增强 fork"自我定位:
- 页脚版权改为 © 2026 superpowers-zh · MIT License(中英)
- 移除页脚资源区的"上游 obra/superpowers"链接(中英)
- FAQ"和上游关系"条改写为"superpowers-zh 有哪些独特价值",以独立中文
项目视角介绍,不再用 fork 框定(中英)
- 页脚新增「生态」列:aiOlaOla(从零学会 AI 编程)、公众号 AI不止语、
姐妹项目;「社区」列新增联系邮箱
验证:重建 42 页;页脚/FAQ 的 fork 字样与上游链接已清除;新链接均已注入。
|
2026-06-20 05:36:42 +08:00 |
|
AI不止语
|
0aa3344f6f
|
harden(site): 站点安全加固——严格 CSP + 安全响应头 + 链接 scheme 净化
安全审核发现两处防御纵深缺口(当前内容可信、非活跃漏洞,但公开站应补齐):
1. 部署站 _headers 此前只有 Cache-Control,缺所有安全响应头。
现新增全站 /* 头:
- Content-Security-Policy:default-src 'self';script-src 'self' + 本站
内联脚本的 SHA-256 hash(构建时从生成 HTML 实测,禁用 unsafe-inline/
unsafe-eval 又不误伤自有脚本);style-src 'self';object-src 'none';
base-uri 'self';frame-ancestors 'none';form-action 'self'
- X-Content-Type-Options: nosniff / X-Frame-Options: DENY /
Referrer-Policy: no-referrer / Cross-Origin-Opener-Policy: same-origin /
Permissions-Policy(关闭定位/麦克风/摄像头)
2. md.mjs 链接渲染未校验 scheme。现仅放行 http/https/mailto/锚点/相对
路径,阻断 javascript:/data:/vbscript: 等可执行 scheme,并转义引号防
属性逃逸。
验证:重建 42 页成功;独立核验全站 84 处内联脚本的 hash 全部命中 CSP
白名单(0 缺失 → CSP 不会打断站点);链接净化单测 5/5(正常/锚点/相对
保留,javascript:/data: 中和为 #);站点正常外链完好。外部资源仅 <a>
导航链接,不受 default-src 影响。
|
2026-06-20 04:16:40 +08:00 |
|
AI不止语
|
c8a4ebd930
|
feat(site): 新增项目官网(静态站点生成 + Cloudflare Pages 自动部署)
为 superpowers-zh 增加官方站点:用 site/build.mjs 从 skills/ 与模板生成
中英双语静态站(42 页:中/英首页 + 20 skill × 2 语言详情),部署到
Cloudflare Pages。
- site/build.mjs + site/md.mjs + site/template/:站点生成器源码
- site/README.md:站点说明
- .gitignore:忽略 site/dist/(构建产物不入库,CI 重建)
- .github/workflows/deploy-site.yml:push 到 main 且 site/ 或 skills/
变更时,构建并部署到 Cloudflare Pages 项目 superpowers-zh-site
(需仓库 Secrets:CLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID)
- package.json:加 site / site:deploy 脚本
验证:node site/build.mjs 构建成功,生成 42 页到 site/dist;
site/dist 已确认被 gitignore 排除、未入库;build.mjs 无硬编码密钥。
|
2026-06-20 04:06:02 +08:00 |
|