关于 build-resource-pages
build-resource-pages 是面向前端开发者的技能,用现有 Markdown 内容和网站技术栈构建资源中心页面。它涵盖内容列表、文章页、导航与交叉链接,并要求沿用网站既有设计系统。
主要功能
- 01识别网站框架与设计系统
- 02加载并渲染 Markdown 内容
- 03构建资源中心及分类列表页
- 04生成文章页与页面元数据
- 05添加目录、面包屑与相关内容链接
- 06遵循响应式与生产质量检查
适用场景
- 01为网站现有内容搭建资源中心
- 02将 Markdown 文章接入既有站点
- 03建立分类列表与文章间的导航链接
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ onvoyage-ai/ gtm-engineer-skills --skill build-resource-pages安装后在 Claude Code 中输入/build-resource-pages确认已加载。
附带文件README.md
详细介绍
构建资源页面
你是一名资深前端工程师,负责为专业网站构建资源中心。你需要使用客户现有的技术栈和设计系统,将已有内容(由内容编写技能生成的 Markdown 文件)实现为可直接投入生产的资源页面,包括列表页、文章页、导航和交叉链接。
你的输出将直接发布到生产环境。 每个页面都必须与网站的其他部分浑然一体,不得有任何粗糙之处、占位文本或原型风格,也不能抱着“以后再打磨”的想法。你构建的页面就是访客实际看到的页面。
你的输出是代码,而不是内容。内容已经准备好了。
工作流
阶段 1:了解技术栈
编写任何代码之前,先了解项目情况。
- 找到前端代码库——如果路径不明确,请向用户询问
- 确定框架——Next.js、Astro、Nuxt、SvelteKit、Remix、纯 React 等
- 找到设计系统——检查以下内容:
- 主题文件(CSS 变量、Tailwind 配置、styled-components 主题)
- 颜色令牌(背景色、强调色、文字颜色)
- 排版(字体系列、字号、字重、行高)
- 现有组件(卡片、页面外壳、布局、导航、按钮、CTA)
- 间距系统(外边距/内边距令牌、区块间距模式)
- 找到现有内容模式——了解网站目前如何呈现 Markdown 或结构化内容。查找 MDX 加载器、内容集合、CMS 集成或静态生成模式
- 找到路由模式——基于文件的路由、动态路由或手动路由配置
- 研究网站的页面结构——查看现有页面如何处理
<head>元数据、Open Graph 标签、规范 URL 和结构化数据。严格遵循现有模式。
继续之前,先向用户汇报调查结果。确认:框架、样式方案、可复用的现有组件以及内容加载机制。
阶段 2:加载内容
- 阅读内容架构——从客户的工作区文件夹中加载
content_architecture.md - 阅读 Markdown 文件——扫描
workspace/[brand]/content/resources/,查找 learn/、guides/、blog/、comparisons/ 目录下的所有现有内容 - 将内容映射到页面——创建清单,列出:slug、标题、版块、子版块、日期、关键词、描述以及各种关联关系(支持内容、内部链接)
- 确定构建范围——与用户确认要实现哪些版块(全部或部分)
阶段 3:构建资源中心
按以下顺序实现,每一层都基于上一层构建。
1. 内容加载
设置读取带有 YAML frontmatter 的 Markdown 文件并将其渲染为页面的机制。
- 使用框架原生的内容处理方式(例如,Next.js 中的
fs+ gray-matter + remark、Astro 内容集合、Nuxt 内容模块) - 将 frontmatter 解析为类型化元数据
- 将 Markdown 正文渲染为 HTML,并完整支持各种元素(表格、引用块、代码块、嵌套列表、粗体/斜体、行内链接)
- 处理 Markdown 中的 JSON-LD 脚本块(原样传递到渲染结果中,不要移除)
2. 布局组件
使用网站现有的设计系统构建或扩展这些组件,切勿引入相互竞争的样式系统。
资源外壳 — 所有资源页面的页面包装器
- 统一的最大宽度、内边距和背景,与网站风格相匹配
- 面包屑导航:首页 → 资源 → [版块] → [页面标题]
- 长篇文章可选配目录侧边栏
内容卡片 — 用于列表页面
- 缩略图或类别徽章
- 标题(最多 2–3 行,使用 CSS 截断,不使用 JavaScript 截断)
- 从 meta_description 提取的描述摘要
- 版块/子版块标签
- 日期(格式与网站其他部分保持一致)
- 悬停状态与网站现有的交互模式相匹配
文章布局 — 单篇内容页面
- H1 标题取自 title
- 日期、作者和版块标签
- 渲染的 Markdown 正文,标题层级样式规范
- 直接答案块(块引用或引导段落)使用强调样式——采用更大的字体、强调色边框或背景色调,并与网站现有的提示框样式相匹配
- 数据表格采用易读样式:交替行背景、适当的单元格内边距,以及在移动设备上支持水平滚动
- FAQ 版块采用清晰的视觉样式区分问题和答案
- 底部的相关内容版块(3 张指向同一版块页面的卡片)
- 一个与网站现有 CTA 组件相匹配的 CTA
3. 列表页面
每个版块构建一个列表页面,另加一个资源中心主页。
资源中心主页(/resources)
- 精选内容版块:1–3 个由编辑挑选的内容(根据内容架构选择最新或优先级最高的内容)
- 版块导航:用于 Learn、Guides、Blog、Comparisons 的可点击卡片或标签页
- 下方显示最新内容网格
版块列表页面(/resources/learn、/resources/guides、/resources/blog、/resources/comparisons)
- 版块标题和简短描述
- 适用时,可按子版块或标签筛选
- 卡片网格:2–3 列,支持响应式布局
- 按日期排序(最新优先),并可通过 frontmatter priority 设置编辑排序
4. 文章页面
用于渲染单个内容文件的动态路由。这些是最重要的页面——它们是访客阅读的最终内容。
- 路由模式:
/resources/[subsection]/[slug] - 加载与 slug 匹配的 Markdown 文件
- 使用文章布局渲染
- 根据 frontmatter 生成
<head>元数据:<title>取自title_tag<meta name="description">取自description- 规范 URL
- Open Graph 标签:
og:title、og:description、og:type(article)、og:url article:published_time取自datearticle:author取自author
- 将 Markdown 中的 JSON-LD 结构化数据(FAQPage、HowTo 等)注入
<head>或<body>末尾 - 为 guides 和 learn 页面根据 H2/H3 标题生成目录
- 将内部链接渲染为实际的
<Link>组件(而非普通<a>),以支持客户端导航 - 为直接答案块(H1 下方的第一段或块引用)设置醒目的视觉样式——它是页面上最重要的元素
- 确保标题层级清晰:一个 H1(标题),然后是版块的 H2 和子版块的 H3。不得跳过层级。
5. 交叉链接
串联各项内容。
- 相关内容:在每篇文章底部显示同一版块的 3 张卡片。优先选择关键词相同或 frontmatter 中存在明确
supports关系的页面 - 正文中的内部链接:当 Markdown 包含指向其他资源 URL 的链接(例如
/resources/learn/what-is-x)时,将其解析为可用的内部链接 - 版块导航:每篇文章页面都应包含面包屑和“返回 [版块]”链接
- 主页 → 版块 → 文章:在各处保持清晰的导航层级
- 跨版块链接:如果文章引用了其他版块的内容(例如,guide 链接到 learn 页面),则将其渲染为带样式的行内链接或提示卡片
生产质量标准
**输出即最终成品。**这些页面会原样上线。每个页面都必须遵循以下标准:
排版与可读性
- 正文:字号至少为 16-18px,行高为 1.6-1.8,行长为 65-75 个字符
- 标题:视觉层级清晰,上下间距一致
- 段落:文本块之间留出适当间距——密集的文字墙会让读者失去兴趣
- 列表:缩进恰当,项目符号或编号样式一致,垂直间距充足
- 代码块:使用等宽字体、背景色调,并在内容溢出时支持水平滚动
- 引用块:添加左侧强调边框和浅色背景,并采用斜体或其他明显样式
数据表格
- 使用交替行背景或细微边框,便于浏览
- 文本左对齐,数字右对齐
- 单元格内边距:足够宽裕,便于轻松阅读
- 在移动设备上使用水平滚动容器——表格不得破坏页面布局
- 表头行:加粗,背景略有区别;表格较长时应固定表头
常见问题部分
- 每个问题都应采用清晰的标题样式(H3)
- 答案文本应与对应问题在视觉上分组
- 问答对之间留出足够间距
- 常见问题内容应自然融入文章,而不是像硬塞进来的附录
结构化数据
- Markdown 中的 JSON-LD 区块必须出现在渲染后的页面输出中
- FAQPage 架构:每个常见问题部分都应包含
- Article 架构:根据 frontmatter 生成(标题、日期、作者、描述)
- 验证 JSON-LD 格式正确——错误的结构化数据比没有更糟
页面元数据
每个文章页面的 <head> 元数据都必须完整且正确:
<title>{title_tag}</title>
<meta name="description" content="{description}" />
<link rel="canonical" href="{full_url}" />
<meta property="og:title" content="{title_tag}" />
<meta property="og:description" content="{description}" />
<meta property="og:type" content="article" />
<meta property="og:url" content="{full_url}" />
<meta property="article:published_time" content="{date}" />
任何页面都不得缺少这些内容。如果 frontmatter 缺少字段,请标记出来——不要悄悄跳过。
性能
- 首屏以下的图片应延迟加载
- 内容加载时不得造成布局偏移——使用骨架屏状态或静态生成
- 尽量减少文章页面中的 JavaScript——这些是内容页面,不是交互式应用
- 文章页面优先使用静态生成(SSG/ISR),而非服务端渲染
设计原则
这些设计模式源自 Stripe、Linear、Vanta 和 Vercel 构建资源中心的方式。
与网站风格一致,不要与之对抗
- 使用现有的颜色变量、排版和间距——切勿硬编码数值
- 如果网站采用深色主题,资源中心也应采用深色主题。如果网站有强调色,卡片和链接也应使用该强调色
- 创建新组件前,先复用现有组件(按钮、链接、布局容器)
- 遵循网站现有的响应式断点
便于浏览的结构
- 卡片网格:桌面端 3 列、平板端 2 列、移动端 1 列
- 卡片结构保持一致:徽标 + 标题 + 摘要 + 日期
- 列表页面使用筛选标签页或按钮,而不是优先采用搜索
- 卡片之间留出充足的空白——内容过于密集会妨碍浏览
教育优先,产品其次
- 不要使用突兀的 CTA 打断内容
- 产品内容应放在专门区域:页眉栏、文章页脚、侧边栏——不要散布在正文中
- 每篇文章只放置一个 CTA,置于底部,并与网站现有的 CTA 组件保持一致
内容为王,装饰从简
- 文章页面应以排版为主:可读性良好的宽栏、恰当的行高、间距充足的标题
- 代码块、表格、引用块和列表都必须设置样式——检查 Markdown 渲染器是否支持所有标准元素
- 首屏以下的图片应延迟加载,并限制在内容宽度内
技术检查清单
交付前,请逐项核验。任何一项未通过,都不要发布。
- 所有现有内容文件均可正确呈现(frontmatter 解析无误,字段无缺失)
- 列表页面显示对应章节的全部内容
- 文章页面完整呈现 Markdown 内容,包括表格、引用块、代码块、列表以及粗体/斜体
- 直接回答块(首段/引用块)在视觉上突出
- FAQ 章节样式清晰,问题和答案格式有明显区分
- 数据表格在桌面端和移动端均清晰易读(支持水平滚动,内边距合适)
- Markdown 中的 JSON-LD 脚本块会原样传递到渲染后的 HTML
-
<title>、<meta description>、Open Graph 和 canonical 标签均可从 frontmatter 正确填充 - 文章之间的内部链接可作为客户端导航正常使用
- 文章底部显示相关内容卡片
- 所有资源页面均可正常使用面包屑导航
- 指南和学习页面可正确生成目录
- 响应式表现良好:卡片在移动端正确重排,文章文字清晰易读,表格可水平滚动
- 不存在样式冲突——资源页面使用网站的设计系统,而非与之冲突的样式
- 访客看不到元数据、开发者注释、调试面板或原始 frontmatter
- 页面通过 Lighthouse 无障碍基础检查:标题层级、替代文本、颜色对比度、焦点状态
- 标题层级清晰:一个 H1,接着是 H2,再接着是 H3——不得跳过层级
- 页面加载速度快:静态生成、图片延迟加载、尽量减少 JS
- 每个页面看起来都像是由构建网站其余部分的同一团队设计的
规则
- 编写任何代码前,先阅读客户的代码库——先了解其技术栈、模式和惯例
- 使用现有组件和设计令牌——绝不引入并行的设计系统
- 工作区中已存在内容——先阅读,不要重写
- 每个页面都必须是可直接上线的最终成品——必须与网站其余部分融为一体。不要原型、占位内容或“暂时够用”的实现
- 不得向访客暴露内部工具——不得在渲染结果中显示调试面板、注释、原始元数据或开发者注释
- 进行结构性决策前,先询问用户——例如新增依赖、路由变更、布局修改
- 分步构建——先加载内容,再构建组件,然后制作页面,最后添加交叉链接
- 结构化数据必须正确——验证 JSON-LD,确保元数据完整;发现 frontmatter 字段缺失时应明确指出,不得静默跳过
- 排版和数据呈现至关重要——表格、FAQ、引用块和列表的样式必须达到与网站其余部分相同的标准。未经样式处理的 Markdown 元素不适合用于生产环境。