v2.0.0 发布 —— 内容经营操作系统:PR 门控内容管道(关键词清单 → 八道门禁 → 草稿 PR)、anvilwiki-ops 1.0(多站管理 + AI 引用追踪)、pnpm gen-covers 封面自动生成、Affiliate 建议位。fork 零迁移成本。
AnvilWiki
EN
第 5章 更新于 2026年8月17日

开发 5 · CI 门禁与安全底线

三条自动流水线分别替你把什么关(八道门禁的 CI、每周保鲜提醒、初始化清理),以及模板内置的安全底线——结构化数据转义、赞助链接标记、同意前不追踪、零 JS 框架。

你现在在哪,这章解决什么

仓库的 Actions 页有几条自动流水线,红红绿绿的——这章讲清它们各自在守护什么,以及模板已经内置、你定制时不该破坏的安全底线。查询手册,按需翻。

三条自动流水线(.github/workflows/)

流水线什么时候跑替你把什么关
CI每次 push / PR八道门禁:lint → typecheck → test → check-config → build → check-content → check-links → check-i18n,红一条都不许合
Content freshness audit每周一(定时)跑保鲜审计,过期页面自动开 issue 提醒。默认只在 AnvilWiki 官方仓库生效(fork 不装条件开关,免得给你开一堆提醒);想在自己的站开启:让 AI 删掉文件里 if: github.repository == 那行。它只提醒、绝不改内容——自动化碰内容的风险不可控
Initialize AnvilWiki手动点fork 后的收尾清理:重置 wrangler.toml 变量、删项目页、可选清演示内容。不换游戏名/主题色/语言——那些只能本地跑 pnpm apply-template

安全底线(已内置,定制时别拆)

  • 结构化数据转义:页面里给 Google 看的数据卡片统一做了字符转义,文章里就算被人塞了恶意代码也逃不出去。你新增数据组件时必须沿用现成的 JsonLd.astro,别自己手拼。
  • 赞助链接:联盟推广链接组件自动带 sponsored nofollow 标记(向 Google 声明这是付费链接);外链统一 noopener
  • 同意前不追踪:用户没点 cookie 同意之前,GA 和 AdSense 根本不加载——是真的不加载,不是摆个横幅。
  • 密钥不进库:一切敏感值走变量;.env 已在忽略清单里。

性能底线(动代码层时守住)

  • 零 JS 框架:不引入 React/Vue 之类的运行时;交互用浏览器原生能力(可折叠块、弹窗)+ 极少量原生脚本。
  • 图片走模板的图片管线(自动压缩成 WebP、自动适配手机)。
  • 改完想验跑分:pnpm build && npx wrangler pages dev dist,再用浏览器 Lighthouse 面板打分。

卡住了怎么办

  • 「CI 红了」:点进红色那条看日志最后一行,八道门禁哪道挂了日志开头会写;本地跑同一条命令复现。

✅ 验收(全部成立才算完成)

  • ☐ 自己 fork 的 Actions 页 CI 是绿的
  • ☐ 知道保鲜提醒为什么默认收不到、怎么开
  • ☐ 新增组件时记得沿用 JsonLd.astro,不自己手拼数据

下一步

模板作者会持续发新版——开发 6 · 同步与回流:怎么安全地合并上游更新,以及怎么把你的好改进贡献回官方。