Releases: PNGTRID/AnvilWiki
Release list
v1.8.1 — Inline Video Placement, Layout & i18n Fixes
AnvilWiki v1.8.1 — 内联视频自由定位(来自首个真实项目 dogfooding 反馈)。
Fixed / Added
<Video>MDX component: render a YouTube player wherever the author places it in the body. Frontmattervideosbecomes the structured-data registry (VideoObject JSON-LD) + bottom fallback; inline IDs auto-dedupe from the fallback. 100% backward compatible.- Shared
LazyYouTubeplayer: event-delegation singleton script (no per-instance duplication), keyboard accessible, broken-thumbnail fallback to a text link (ytimg-unreachable regions). - Article layout: bottom videos moved up after the body; Comments moved to the very end.
- i18n: "On this page" / "Quick Answer" now from locale JSON.
Full Changelog: v1.8.0...v1.8.1
v1.8.0 — AI-Native Content Skills, Structured Codes & Freshness Pipeline
AnvilWiki v1.8 — AI 原生内容生产 + 新鲜度管道:第一性原理路线落地。
Added
.agent/skills/ships with the template (Agent Skills open standard):anvil-new-article/anvil-update-codes/anvil-refresh— fork users generate build-passing pages by just talking to their AI tool (ZCode / Claude Code / Codex / Cursor); scripts become the verification backend. AGENTS.md gains a "Conversational Content Authoring" section as the zero-install fallback.- Structured
codesfrontmatter (code/reward/status/expiryDate/source): auto-rendered CodesTable — Active section (one-click-copy blocks with freshness labels) + Expired table (long-tail "is X still working" SEO) + localized FAQPage JSON-LD. Demo codes articles migrated. pnpm refresh-audit+ weeklycontent-pipeline.yml: deterministic freshness audit (codes unverified >7d = P0, stale categories >90d = P1) files a tracking issue every Monday. Never mutates content — fixing stays human/AI-gated.docs/game-selection.md: the missing first step — 4-layer game-selection funnel (Trends demand validation + SERP gap check + two-source rule) and a "first-day 10 pages" plan to compress the 2-8 week golden window.
Full Changelog: v1.7.0...v1.8.0
v1.7.0 — Image Gallery & Lightbox, Author System, Affiliate CTA & Content Lint
AnvilWiki v1.7 — 内容表达力二期 + E-E-A-T:画廊、作者体系、联盟链接与内容 lint。
Added
- Image gallery + lightbox:
galleryfrontmatter (image/caption/alt) renders a thumbnail grid below the article body with a native<dialog>lightbox (prev/next/ESC/backdrop close). Each image emits ImageObject JSON-LD for Google Images. Thumbnails via Astro Image (auto WebP/srcset). - Author system:
src/config/authors.tsregistry — registered authors link out from the byline and upgrade Article JSON-LD author from Organization to Person (withsameAs). Bareauthor:names keep working. <AffiliateLink>MDX component: affiliate/outbound CTA card withrel="sponsored nofollow noopener"baked in — an SEO-compliant second monetization channel. Zero JS.pnpm check-content: content lint — no H1 in body, heading level skips, missing image alt text, trailing-slash internal links.
Changed
- Demo content: Stormcaller carries a gallery + named author; beginner guide shows
<AffiliateLink>.
Full Changelog: v1.6.0...v1.7.0
v1.6.0 — Translation & Link Audits, One-Click Fork Setup, CF Analytics
AnvilWiki v1.6 — 创作者维护工具 + 部署自动化:翻译覆盖率、内链审计、一键初始化 workflow。
Added
pnpm check-i18n: translation coverage report — missing articles & UI keys per locale vs English (--strictto gate CI).pnpm check-links: internal-link audit over the builtdist/— catches renamed-slug body links, homepage JSON links to unwritten articles, and locale links to non-existent pages. Wired into CI.- "Initialize AnvilWiki" workflow: fork → Actions → run once with your domain — resets
wrangler.toml [vars], removes the project landing page, opens a review PR. - Cloudflare Web Analytics (
PUBLIC_CF_BEACON_TOKEN): cookieless beacon, no consent gate needed, empty = zero JS. docs/staying-up-to-date.md: merging upstream after forking + SemVer compatibility promises.- apply-template content scaffolding: one schema-valid starter article per category after clearing demo content.
- README growth pack: AnvilWiki vs Fandom vs DIY comparison table, suggested repo topics, Showcase PR invitation.
Fixed
- Article tag links on English-fallback pages now point at the served locale's tag pages (was 404).
- Tag pages: hreflang alternates and language switcher only offer locales where the tag exists.
- Demo content dead links (
/guides/fastest-leveling,/updates,/guides/video-walkthroughs) — caught by check-links on its first run.
Full Changelog: v1.5.0...v1.6.0
v1.5.0 — Tag Pages, Game Versions, Recent Updates & MDX Components
AnvilWiki v1.5 — 内链 + 时效性 + 表达力:标签系统、版本号、最近更新页、MDX 组件与草稿流。
Added
- Tag landing pages:
/tagscloud +/tags/<tag>aggregation pages per locale (no English fallback — list accuracy rule). Article tags are now clickable; tag pages carry ItemList + Breadcrumb JSON-LD and land in the sitemap with hreflang. gameVersionfrontmatter: "applies to v2.5" badge on the article header — freshness / E-E-A-T signal for fast-patching games./recentpage (all locales): full recently-updated listing for "patch notes"-style queries.<Callout>MDX component: info/tip/warn/danger boxes, zero JS — the most-used display element on game wikis.<Accordion>MDX component: native<details>collapsible panels for multi-phase strategies / spoilers, zero JS.- Draft workflow:
draft: trueis visible inpnpm devand fully excluded from production build (pages, lists, recent, related, hreflang, sitemap).pnpm new-postasks. - VideoObject JSON-LD: one per embedded YouTube video — Google Video search eligibility.
- 404 recovery page: Pagefind search trigger + category entry points.
- Sponsor card (env-gated):
PUBLIC_SPONSOR_URL— empty = renders nothing (same contract as AdSense/Giscus). Plus.github/FUNDING.yml. - README fork warning: wrangler.toml sole-source-of-truth warning next to the deploy button.
Full Changelog: v1.4.0...v1.5.0
v1.4.0 — Chinese Landing, WeChat Group & Cross Links
AnvilWiki v1.4 — 官网国际化版:中文官网 + 微信交流群 + demo 双向入口。
Added
- Chinese landing page (
/zh/landing): full bilingual landing with EN ↔ 中文 toggle and hreflang alternates. Independent of the demo game's en/ja content locales — the landing speaks for the project itself. - Locale auto-detection: Chinese browser language visiting
/landingauto-redirects to the Chinese page (client-side, pre-render). Manual choices are remembered and always win. - WeChat community group: QR-code card on both landing pages and the README — scan to add the maintainer and join the discussion.
- Demo → landing entry: hammer icon in the demo header + mobile-menu link, auto-removed by
apply-templatetogether with the landing pages. - Maintainer attribution: 由 PNG 部落团队主理人 袁锐钦 开源 / open-sourced by Yuan Ruiqin (PNGTRIBE).
Changed
- Landing announcement bar driven by a
PROJECT_VERSIONconstant — no more stale version strings.
Full Changelog: v1.3.0...v1.4.0
v1.3.0 — Audit Backlog Cleared: Codes Paradigm, Reading UX & Fork Tooling
AnvilWiki v1.3 — 审计清零版:未完成清单全部落地(codes 范式 + 阅读体验全家桶 + fork 工具链)。
The final batch of the 2026-08 expert-audit backlog.
Added
- Codes content paradigm:
CodeBlockone-tap copy component + full demo codes article (en/ja) — the highest-traffic wiki entry now has a reference implementation. - Stale-content notice: boss/tier-list articles older than 90 days show a "possibly outdated" banner automatically.
- Reading-experience suite: prev/next navigation, reading time (CJK-adapted), progress bar, Quick Answer copy, "was this helpful?" feedback, lazy related videos (
videosfrontmatter), print stylesheet,StatBardrop-rate visualization. - AMOLED black theme: light → dark → pure-black cycle, persisted, no-FOUC.
pnpm new-locale: scaffolds a new language across all 4 sync points.- Homepage presets in
apply-template(codes / guides / keep) — no more hand-editing a 270-line demo JSON. docs/home.schema.json: JSON Schema for the home namespace, wired into locale JSONs for VS Code validation.- Landing page: real demo screenshots replace placeholders; announcement bar; Deploy-to-Cloudflare button in README.
- Mobile search entry in the menu; i18n smoke tests (6 cases) guarding the hardcoded-locale bug class.
Changed
- README repositioned: "100% ad revenue yours" leads everywhere.
apply-template: line-based theme rewrite (tolerates user-edited globals.css) + resetswrangler.toml [vars]for forks.new-postscaffold teaches AI-Overview-friendly writing (question H2s, direct answers).organizationJsonLdemits configurablesameAs; docs gained an "AI search era" chapter.
Full Changelog: v1.2.0...v1.3.0
v1.2.0 — Landing Page, Reading UX & AI Search
AnvilWiki v1.2 — 专家团审计落地版:项目官网 + 阅读体验 + AI 搜索卡位 + 隐私合规。
This release lands the findings of a 4-expert audit (SEO/growth · developer experience · reader UX · competitive analysis).
Added
- Project landing page (
/landing): 7-section marketing page for the template itself — Hero with the "100% ad revenue" positioning, Lighthouse proof bar, feature grid, comparison table (vs Fandom / Starlight / Next.js DIY), showcase, docs entry, final CTA. Theapply-templateCLI removes it automatically for fork users (--keep-landingto keep). - RSS feed (
/rss.xml): default-locale articles, newest first, excludesnoindex. - llms.txt (
/llms.txt): Markdown site index for AI crawlers, generated from the content collection. - TOC scrollspy — the in-view section is highlighted while scrolling.
- Share button on articles (native share sheet + clipboard fallback, en/ja).
- Back-to-top button on article pages.
- Boss stat card: optional structured
bossfrontmatter (hp / weakness / resistant / location / level) rendered as a uniform, mobile-friendly data card. pnpm check-config: validates nav-key / locale / displayType consistency that the build doesn't enforce.- Cookie consent that actually gates tracking: GA / AdSense load only after the visitor accepts; declining means they never load. No tracking env vars → zero JS, Lighthouse 4×100 unchanged.
Changed
- Ads system rebuilt as Google AdSense-only (3 positions, env-gated, empty = not rendered).
- Sticky banner is desktop-only by default (mobile first screen reclaimed).
- sitemap
<lastmod>injected from frontmatter. /_astro/*servedimmutable(1-year browser cache).- Mobile menu includes the language switcher.
Fixed
- Third-locale forks fully 404 — five
getStaticPathshardcoded['ja']; now derived fromrouting.tslocales. - SearchAction pointed at a nonexistent
/search— removed. noindexfrontmatter now actually emits<meta robots>.- Cover-image docs unified to Astro Image relative paths.
- Node version docs 20 → 22 (pnpm 11 needs ≥22.13).
- RSS trailing-slash 404s (absolute URLs now).
- GFM tables overflowed on mobile — prose tables scroll horizontally.
Full Changelog: v1.1.0...v1.2.0
v1.1.0 — SEO & E-E-A-T Enhancement
AnvilWiki v1.1 — SEO & E-E-A-T 增强版。
This release adds AI-Overview-oriented SEO features (TOC, Quick Answer, author byline, VideoGame JSON-LD) and broadens ad support (Google AdSense alongside the iframe ad isolation). Includes a round of naming normalization to keep config/locales schema generic (no demo-game-specific terms).
Added
- Article TOC: Auto-generated table of contents from H2/H3 headings. Sticky on desktop, collapsible
<details>on mobile (TableOfContents.astro). - Quick Answer summary block: Optional
summaryfrontmatter field rendered as a callout above the article body — optimized for AI Overviews and featured snippets. - Article author byline: Optional
authorfrontmatter field (falls back tosite.defaultAuthor). E-E-A-T signal. - VideoGame JSON-LD: Injected on the homepage for game entity recognition (
videoGameJsonLd()inseo.ts). - Contact page: New legal page at
/contactwith community links. E-E-A-T trust signal. - Google AdSense support:
AdSenseSlot.astrocomponent +PUBLIC_ADSENSE_CLIENTenv var. Coexists with the iframe ad isolation setup.
Changed
- Homepage
displayTypeenum renamed to generic names (code-cards→badge-list, etc.). - CSS theme variable renamed:
--nav-theme→--brand. - Homepage JSON field names renamed (
eyebrow→badge,primaryCta→ctaPrimary, etc.). - Demo boss renamed:
gelum→emberfang,pyra→stormcaller. skinning.md→apply-template.md(restructured as file-organized config reference).- Ad HTML templates: ad network domain changed to placeholder.
- SEO docs: all knowledge claims cite public authoritative sources.
Full Changelog: v1.0.0...v1.1.0
AnvilWiki v1.0.0 — 正式发布 / First stable release
AnvilWiki v1.0.0 — 正式发布 / First stable release
🎯 AnvilWiki v1.0 正式发布 —— 从「能用」到「生产就绪」。
AnvilWiki v1.0 — from "works" to "production-ready".
本次发布涵盖自 v0.2.0 以来的全部改动:PRD 路线图(v1.1–v2.0)全部 ✅ 完成,demo 站 anvilwiki.pages.dev Lighthouse 4×100,所有可选功能(搜索、广告、评论、图片优化、换皮 CLI)均已生产就绪。
This release covers everything since v0.2.0: the full PRD roadmap (v1.1–v2.0) is now ✅, the demo site ships Lighthouse 4×100, and all optional features (search, ads, comments, image optimization, skinning CLI) are production-ready.
在线 demo / Live demo: https://anvilwiki.pages.dev
✨ 核心功能 / Key features
💬 评论系统(v1.4)/ Comments (v1.4)
- 基于 Giscus,评论存 GitHub Discussions,零服务器零数据库
- 默认关闭(env 空值 = 零 JS,保 Lighthouse 4×100);填好 5 个 env 变量即启用
- 官方
<script async data-loading="lazy">+ 双 MutationObserver 暗色同步 - 多语言:不同 locale 自动形成独立评论区;界面语言跟随页面 locale
- 文档:
docs/comments.md
🔍 Pagefind 离线搜索(v1.2)/ Offline search (v1.2)
- 构建时索引,零运行时 JS(直到打开搜索框)
<dialog>模态,Ctrl/Cmd+K 唤起,精确索引文章正文
🖼️ Astro Image 图片优化(v1.5)/ Image optimization (v1.5)
- 自动 WebP/srcset,封面图
image()loader + 响应式尺寸防 CLS
🎨 JSON 驱动首页模块(v1.3)/ JSON-driven homepage modules (v1.3)
- 6 种 displayType:code-cards / step-by-step / tier-grid / card-list / timeline / video-grid
- 换游戏只改 JSON,不改组件
🔧 换皮 CLI(v2.0)/ Skinning CLI (v2.0)
pnpm skin <game-name>引导式换皮:hex→HSL 主题色、site/navigation/routing/ui/locales/manifest 自动重写--dry-run/--no-clear-contentflag
💰 广告就绪 / Ads ready
- 内置 Adsterra iframe 隔离方案(6 种广告位),填 key 即生效
🌍 多语言 / Full i18n
- 英文无前缀(SEO 最优),其他语言带前缀,缺失内容自动 fallback 英文
🔧 seoscout 格式转换(v1.1)/ seoscout converter (v1.1)
pnpm convert-seoscout自动转换 MDX 格式
🐛 重要修复 / Notable fixes
Cloudflare Pages env 注入(wrangler.toml 接管)/ Cloudflare Pages env injection
症状 / Symptom: 在 Cloudflare dashboard 配了 env 变量,但构建时 process.env 一个都读不到,评论组件静默不渲染。
根因 / Root cause: 当项目根目录有 wrangler.toml 时,它成为 Pages 项目 env 的唯一真相源,dashboard 的 Environment variables UI 被完全忽略(Cloudflare 官方文档)。
修复 / Fix: 在 wrangler.toml 加 [vars] 段声明所有构建时 env 变量。
防御 / Prevention: wrangler.toml 顶部加醒目 fork 警告;docs/deployment.md + AGENTS.md Hard Rule 12 详细说明。
SITE_URL 协议要求 / SITE_URL protocol requirement
症状 / Symptom: SITE_URL 配成裸域名(如 anvilwiki.pages.dev)会让 Astro build 报 Invalid url。
修复 / Fix: 强制要求 SITE_URL 含 https:// 协议。.env.example / wrangler.toml / docs/deployment.md / AGENTS.md Hard Rule 9 全部同步更新。
📊 项目状态 / Project status
| 维度 / Dimension | 状态 / Status |
|---|---|
| PRD 路线图(v1.1–v2.0) | ✅ 全部完成 / All complete |
| Lighthouse | Performance / Accessibility / Best Practices / SEO 全 100 |
| 测试 / Tests | 18/18 passing(typecheck + vitest) |
| Sitemap | 28/28 URLs 返回 200 |
| Demo 站 / Demo site | anvilwiki.pages.dev 启用评论 + 搜索 + 广告位 |
📦 升级 / Upgrading
这是首次正式发布,无升级路径。直接 fork 即可。
This is the first stable release — fork to start.
快速开始 / Quick start: 见 README 的「5 分钟快速开始」/ See README "5-minute quickstart".
🙏 反馈 / Feedback
- 🐛 报告 Bug
- 💡 提功能建议
- 💬 Discussions
完整变更日志 / Full changangelog: CHANGELOG.md