关于 og-image
帮助开发者为网站制作社交分享用 Open Graph 图片的技能。它分析现有代码库的设计系统,生成专用页面并截图,再配置相关元标签和验证步骤。
主要功能
- 01分析框架与设计系统
- 02生成专用 OG 图片页面
- 03用 Playwright 截取 PNG
- 04配置 Open Graph 元标签
- 05检查图片与元标签输出
适用场景
- 01为网站制作符合品牌风格的分享图
- 02为社交平台预览添加 OG 元标签
- 03验证图片尺寸及页面元数据
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ dirnbauer/ webconsulting-skills --skill og-image安装后在 Claude Code 中输入/og-image确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
examples/brutalist.htmlcosmic.htmleditorial.htmlethereal.htmlwebconsulting.html详细介绍
此技能可为社交媒体分享创建专业的 Open Graph 图片。它会分析现有代码库,以匹配项目的设计系统,生成专用的 OG 图片页面并截取屏幕截图,同时配置所有必需的元标签。
工作流
第 1 阶段:代码库分析
探索项目,了解以下内容:
-
框架检测
- 检查
package.json,确认项目使用 Next.js、Vite、Astro、Remix 等框架 - 确定路由模式(基于文件或基于配置)
- 找到创建
/og-image路由的位置
- 检查
-
设计系统探索
- 查找 Tailwind 配置文件(
tailwind.config.js/ts),了解配色方案 - 检查全局样式中的 CSS 变量(
:root定义) - 查找现有的颜色令牌、字体系列和间距比例
- 查找主题或设计令牌文件
- 查找 Tailwind 配置文件(
-
品牌素材
- 在
/public、/assets、/src/assets中查找徽标文件 - 检查 favicon 和应用图标
- 查找带有品牌元素的现有 Hero 区块或落地页
- 在
-
产品信息
- 从
package.json、落地页或元标签中提取产品名称 - 从现有页面查找标语或描述
- 查找现有的 OG/元标签配置,了解当前设置
- 从
-
现有组件
- 查找可复用的 UI 组件
- 检查是否有玻璃效果、渐变或鲜明的视觉风格
- 确定整体视觉风格(深色模式、浅色模式等)
第 2 阶段:创建 OG 图片页面
在 /og-image 路径(或该框架的等效路径)创建专用路由:
页面要求:
- 固定尺寸:宽 1200px × 高 630px,精确无误
- 样式自包含(不依赖可能无法渲染的外部资源)
- 使用 CSS 隐藏所有开发工具指示器:
[data-nextjs-dialog-overlay],
[data-nextjs-dialog],
nextjs-portal,
#__next-build-indicator {
display: none !important;
}
内容结构:
- 产品徽标/图标(置于醒目位置)
- 产品名称,采用独特的排版
- 标语或价值主张
- 产品的视觉呈现(模型图、插画或抽象设计)
- 底部显示 URL/域名
- 符合项目视觉风格的背景(渐变、图案等)
设计原则:
- 使用项目现有的配色方案
- 与主站的排版风格保持一致
- 添加能够体现产品特色的视觉元素
- 确保在小尺寸下也有较高对比度,便于阅读(社交媒体预览通常较小)
- 测试图片缩放到约 400px 宽时,文字是否仍清晰可读
第 3 阶段:截取屏幕截图
使用 Playwright 截取 OG 图片:
- 导航到 OG 图片页面(通常为
http://localhost:3000/og-image或类似地址) - 将视口调整为精确的 1200×630
- 等待动画完成或字体加载完毕
- 截取 PNG 格式的屏幕截图
- 将图片保存到项目的公共目录,命名为
og-image.png
Playwright 命令:
browser_navigate: http://localhost:{port}/og-image
browser_resize: width=1200, height=630
browser_take_screenshot: og-image.png (then copy to /public)
第 4 阶段:配置元标签
检查并更新项目的元标签配置。对于 Next.js App Router,更新 layout.tsx。对于其他框架,则更新相应位置。
必需的元标签:
// Open Graph
openGraph: {
title: "Product Name - Short Description",
description: "Compelling description for social sharing",
url: "https://yourdomain.com",
siteName: "Product Name",
locale: "en_US",
type: "website",
images: [{
url: "/og-image.png", // or absolute URL
width: 1200,
height: 630,
alt: "Descriptive alt text for accessibility",
type: "image/png",
}],
},
// Twitter/X
twitter: {
card: "summary_large_image",
title: "Product Name - Short Description",
description: "Compelling description for Twitter",
creator: "@handle", // if provided
images: [{
url: "/og-image.png",
width: 1200,
height: 630,
alt: "Descriptive alt text",
}],
},
// Additional
other: {
"theme-color": "#000000", // match brand color
"msapplication-TileColor": "#000000",
},
appleWebApp: {
title: "Product Name",
statusBarStyle: "black-translucent",
capable: true,
},
确保设置了 metadataBase,以便正确解析相对 URL:
metadataBase: new URL("https://yourdomain.com"),
第 5 阶段:验证并输出
-
确认图片存在于公共路径
-
检查元标签是否已正确渲染到 HTML 中
-
提供缓存刷新说明:
- Facebook/LinkedIn:https://developers.facebook.com/tools/debug/
- Twitter/X:https://cards-dev.twitter.com/validator
- LinkedIn:https://www.linkedin.com/post-inspector/
-
输出摘要:
- 生成的 OG 图片路径
- 本地预览 OG 图片页面的 URL
- 已添加/更新的元标签列表
- 社交媒体预览调试工具链接
缺少信息时的提问
只有在无法从代码库中确定以下信息时,才询问用户:
-
域名/URL - 如果现有配置中没有,询问:“你的生产环境域名是什么?(例如:https://example.com)”
-
Twitter/X 用户名 - 如果要添加 twitter:creator,询问:“用于署名的 Twitter/X 用户名是什么?(可选)”
-
标语 - 如果找不到明确的标语,询问:“用于社交媒体预览的简短标语是什么?(1 句话)”
框架特定说明
Next.js App Router:
- 创建
/app/og-image/page.tsx - 更新
/app/layout.tsx中的元数据 - 为 OG 页面使用
'use client'指令
Next.js Pages Router:
- 创建
/pages/og-image.tsx - 更新
_app.tsx,或使用next-seo
Vite/React:
- 通过路由器配置创建路由
- 更新
index.html元标签,或使用react-helmet
Astro:
- 创建
/src/pages/og-image.astro - 在布局中更新元标签
质量检查清单
完成前,请确认:
- OG 图片以 1200×630 的尺寸正确渲染
- 截图中没有可见的开发工具指示标记
- 图片已保存到 public 文件夹
- 元标签包含支持绝对 URL 的 og:image
- 元标签包含值为 summary_large_image 的 twitter:card
- 元标签包含尺寸(width/height)
- 元标签包含用于无障碍访问的替代文本
- theme-color 已设置为与品牌相匹配的颜色
- 已告知用户使用缓存失效 URL
致谢与署名
此技能基于 Stevy Smith 的出色成果。
原始仓库:https://github.com/stevysmith/og-image-skill
特别感谢 Stevy Smith 慷慨贡献开源成果,助力打造了此技能集合。 由 webconsulting.at 为此技能集合改编