06. 页面实现与装配子 SOP
适用步骤:
- Step 7 页面实现与装配
1. 目标
把页面内容正确落到代码里。
2. 必做动作
- 接入 metadata
- 接入 JSON-LD
- 检查并更新 sitemap
- 检查并更新
llms.txt - 接入真实示例图
- 接入 community proof
- 接入 open-source
- 接入 related models
项目内固定实现位置:
- 页面文件:
src/app/[locale]/(marketing)/(image-models)/[model-slug]/page.tsx - 页面主容器:
src/components/model-page/ModelLandingPageSection.tsx - metadata helper:
src/lib/metadata.ts - 模型页 JSON-LD:
src/lib/jsonld/model-landing-page.ts - sitemap:
src/app/sitemap.ts - llms.txt:
src/app/llms.txt/route.ts - 真实示例图公开目录:
public/images/model-pages/[model-slug]/ - 生成素材原始目录:
data/model-page-assets/[model-slug]/ - 批量生图脚本:
scripts/generate-model-materials.ts - 视频模型页面文件:
src/app/[locale]/(marketing)/(video-models)/[model-slug]/page.tsx - 视频页面主容器:
src/components/video/VideoModelLandingPageSection.tsx - 视频 prompt 示例组件:
src/components/video/VideoPromptExamplesSection.tsx - 视频素材原始目录:
data/model-page-video-assets/[model-slug]/ - 视频素材脚本:
scripts/generate-video-model-materials.ts - 页面演示视频压缩脚本:
scripts/compress-model-page-videos.ts
固定装配顺序:
- 创建 / 更新 page data
- 接 metadata
- 接 JSON-LD
- 检查并更新 sitemap
- 检查并更新
llms.txt - 接示例图
- 接 community proof
- 接 open-source
- 接 related models
- 校验本地页面输出
3. 页面数据装配清单
- 在
page.tsx中整理并导出:- page title / description / path
- header context / release info
- FAQ 数据
- prompt examples 数据
- community proof 数据
- open-source 数据
- related models 数据
- 所有文案和数据先在
page.tsx的常量层整理,再传给ModelLandingPageSection - 不要把事实、候选链接、schema 文案散落在多个无关组件里
4. 多语言消息装配动作
- 页级消息文件统一放在:
messages/[locale]/models/*Page.json - 共享模型页 UI 标签放在:
messages/[locale]/models/base.json src/i18n/messages.ts的moduleFiles必须包含新页的消息模块en先作为主文案真值源完成,zh作为第二套高质量文案- 其他 locale 通过批量翻译脚本生成后,再抽样人工检查
模型页消息批量翻译命令:
powershell
pnpm translate:model-page-messages按需翻译单文件或单语言:
powershell
pnpm tsx scripts/translate-model-page-messages.ts --files=zimagePage.json --locales=ja多语言硬规则:
- 不允许只依赖英文回退,把深度模型页长期留在未翻译状态
zh-Hant默认从zh翻译,不从en直译- 模型名、repo 名、占位符、宽高比、分辨率、路径片段必须保持不变
- 生成完后必须抽查至少 1 个页面,确认不是英文回退
5. metadata 装配动作
- 在
page.tsx中实现generateMetadata - 使用
constructMetadata(...) - 显式传入:
titledescriptioncanonicalUrlpath
- 如果模型页存在品牌歧义风险,显式传
siteName: null
6. 头部背景信息装配动作
- 优先在
src/config/image-models.ts中整理:releaseDate
ModelLandingPageSection默认从当前模型配置读取这些字段- 只有非常特殊的页面,才允许在
page.tsx里显式覆盖 - 页面默认只展示发布日期 badge,不展示额外说明块
7. JSON-LD 装配动作
- 在
page.tsx中创建:breadcrumbSchemamodelPageSchemafaqSchema(仅当页面真实有 FAQ)
- 使用
JsonLdScript注入 modelPageSchema默认通过generateModelLandingPageSchema(...)生成about中的模型实体必须使用当前模型的真实名称和别名- 默认不在模型页 JSON-LD 中补官方产品页、官方文档页、官方 announcement 页等
sameAs外链 - 如果页面包含 open-source ecosystem 模块,可以在该模块中保留与当前模型直接相关的官方仓库、官方模型卡或官方开源项目链接
- open-source 相关外链只能作为生态证据或项目入口存在,不能作为“去官方使用”的主 CTA
8. community / open-source / related models 装配动作
community proof:
- 在
page.tsx中整理:videosxPostsredditPosts
- 通过
communityProofSectionProps传入ModelLandingPageSection
open-source:
- 在
page.tsx中整理候选后的最终项目数组 - 每项必须与当前模型直接相关
- 通过
openSourceSectionProps传入ModelLandingPageSection
related models:
- 在
page.tsx中整理站内模型链接 - 只链接真实存在、路径稳定、主题相关的模型页
- 通过
relatedModelLinksSectionProps传入ModelLandingPageSection
9. 必须遵循的规则
- community proof 只作为证据层,不替代正文
- embed 必须做异步加载
- 移动端和桌面端都要检查
- metadata、JSON-LD、正文三者必须一致
- 社区嵌入不能比正文更抢主线
- 不允许把无价值社媒内容为了凑数接入页面
- 公开可索引模型页必须检查
src/app/sitemap.ts - 高意图模型页必须检查
src/app/llms.txt/route.ts
metadata 硬规则:
title必须包含模型名和主任务词description必须介绍模型定位和站内可用能力title与 H1 可以不同,但不能表达不同意图- 如果站点品牌词会引起模型歧义,模型页不输出歧义性
og:site_name
JSON-LD 硬规则:
- 模型页默认只使用:
WebPageBreadcrumbListFAQPage(仅当页面真实有 FAQ)
- 不允许虚构:
- Rating
- AggregateRating
- Review
- 价格
- 折扣
- 页面上不存在的能力
- 不要在 JSON-LD 里把用户引导到官方产品页或官方控制台去使用模型
外链与闭环硬规则:
- 模型页的主 CTA、related models、核心转化路径必须保持站内闭环
- 不要把用户从模型页引导到官方产品页、官方控制台或官方“立即使用”入口
- 如果链接的是开源生态资源,必须满足:
- 与当前模型直接相关
- 放在 open-source ecosystem 模块内
- 作用是补生态信息,而不是替代站内生成入口
图片与示例图硬规则:
- 示例图必须来自真实生成结果或明确可用的真实素材
- 所有示例图必须有描述性 alt
- 文件路径必须稳定
- 不允许用模糊占位图充当真实案例
路由索引硬规则:
sitemap使用当前 canonical 路径,不能保留旧重定向路径llms.txt使用当前真实路径,不能保留旧别名或废弃路径- 新增公开模型页时,默认加入
src/app/sitemap.ts - 新增高意图模型页时,默认加入
src/app/llms.txt/route.ts - 如果决定不加入其中任一处,必须在
route-index-check.md写明原因
10. 产出物
- 页面代码
- 页面数据
route-index-check.md
固定模板:
md
## Route index check
- Page path:
- Canonical path:
- Added to sitemap: yes / no
- Sitemap location:
- Added to llms.txt: yes / no
- llms.txt section:
- If skipped, reason:11. 本地验收动作
- 打开
http://localhost:3000/[model-slug] - 检查:
titlemeta descriptioncanonicalog:urlog:site_name(如适用)application/ld+json- 页面是否实际渲染了 FAQ / prompt examples / community proof / open-source / related models
- 确认
sitemap.ts和llms.txt中的路径与当前页面 canonical 一致
12. 进入下一步条件
- 页面在本地可访问
- 数据和组件已接通