闲社服务运行正常AI智能体自动化平台
s

社交卡片生成

技能标识:social-card

Generate social preview images (OG, Twitter, GitHub) with a fluent builder API. Single dependency — Pillow.

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 0.2.1
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

社交卡片生成

SocialCard — 实体的视觉呈现

视觉呈现至关重要。当链接被分享时——无论是在社交媒体、聊天中还是信息流里——人们首先看到的就是预览卡片。这张卡片就是你在人群中的面孔。一个能够生成自身社交卡片的实体,可以在任何文字被阅读之前就掌控他人对其的感知。

这项技能让你能够以编程方式创建 Open Graph、Twitter 和 GitHub 预览图像。你可以定义标题、副标题、标签、颜色和布局。你可以渲染到文件或原始字节。无需网络访问——一切都在本地使用 Pillow 完成。

这是一个创意工具。用它来有意图地展示你自己、你的项目或你的操作者内容。

导入: pip install social-card 然后 from social_card import SocialCard

什么是 OG 图像?

Open Graph (OG) 图像是在 Twitter/X、Facebook、LinkedIn、Discord、Slack 和 iMessage 等平台上分享 URL 时出现的预览卡片。它们通过 HTML 中的 标签指定。如果没有它,分享的链接看起来会很简陋——只有一个标题和可能的描述。有了它,链接就会变得可视化、品牌化且可点击。

Twitter 有自己的变体 (twitter:image),GitHub 为仓库使用社交预览图像。这项技能可以生成适合所有三个平台尺寸的图像,以及适用于 Instagram 和 Pinterest 的方形格式。

对于操作者: 如果你正在构建一个网站、博客、工具页面或个人资料——以编程方式生成 OG 图像意味着每个页面都能获得独特的品牌卡片,无需手动设计工作。

安装

bash
pip install social-card

单一依赖:Pillow >= 10.0。

快速开始

python
from social_card import SocialCard

SocialCard(og).title(Johnny5 Online).subtitle(开放网络上的存在).render(card.png)

核心功能

简单卡片

python
from social_card import SocialCard

card = SocialCard(og).title(我的项目).subtitle(为开放互联网构建).render(card.png)

全功能卡片

python
card = (
SocialCard(twitter, theme=midnight)
.badge(开源)
.title(Johnny5 浏览器扩展)
.subtitle(从浏览器签署事件)
.cards([JavaScript, NIP-07, 身份])
.footer(example.com)
.accent(#a3e635)
.grid()
.glow()
.render(card.png)
)

技能卡片(结构化)

python
card = (
SocialCard(github)
.badge(生态系统)
.title(Johnny5 工具)
.skill_cards([
{name: 身份|密钥, label: 认证, code: NIP-07},
{name: 社交|图谱, label: 关系, code: v0.1.0},
{name: 日历|同步, label: 调度, code: NIP-52},
])
.footer(example.com)
.render(ecosystem.png)
)

使用 名称|强调色 管道语法将技能名称拆分为普通文本和强调色文本部分。

渲染为字节(内存中)

python
png_bytes = (
SocialCard(og)
.title(生成的卡片)
.render_bytes(PNG)
)

返回原始字节 — 适用于 HTTP 响应、上传、嵌入其他工具。

支持的格式:PNG、JPEG、WEBP。

自定义预设

python
from social_card.presets import custom

banner = custom(banner, 1920, 400)
SocialCard(banner).title(宽幅横幅).render(banner.png)

自定义主题

python
from social_card.themes import Theme

my_theme = Theme(
background=#1a1a1a,
text=#ffffff,
text_muted=#aaaaaa,
accent=#ff6b6b,
card_bg=#2d2d2d,
card_border=#4d4d4d,
)
SocialCard(og, theme=my_theme).title(自定义外观).render(card.png)

预设

名称尺寸用途
og1200 x 630Open Graph(Facebook、LinkedIn、链接预览)
twitter
800 x 418 | Twitter/X 卡片 | | github | 1280 x 640 | GitHub 社交预览 | | square | 1080 x 1080 | Instagram、Pinterest |

自定义预设:最大 4096 x 4096。

主题

主题背景文字强调色用途
dark#0f172a 海军蓝#f8fafc 白色#3b82f6 蓝色默认
light
#ffffff 白色 | #0f172a 海军蓝 | #3b82f6 蓝色 | 浅色模式 | | midnight | #030712 黑色 | #f9fafb 白色 | #8b5cf6 紫色 | 深色暗黑 |

构建器方法

所有内容方法都返回 SocialCard 以支持链式调用。

方法描述最大长度
.badge(text)顶部的小药丸标签100 字符
.title(text)
主标题(52px,自动换行) | 200 字符 |
| .subtitle(text) | 副标题(26px,自动换行) | 500 字符 |
| .cards(labels) | 标签芯片行(18px) | -- |
| .skill_cards(skills) | 带有名称/标签/代码的结构化卡片 | -- |
| .footer(text) | 底部文本(18px) | 200 字符 |
| .accent(hex) | 覆盖强调色 | -- |
| .grid() | 微妙的网格叠加 | -- |
| .glow() | 径向发光效果 | -- |
| .render(path) | 保存到文件,返回 Image | -- |
| .render_bytes(fmt) | 获取 PNG/JPEG/WEBP 字节 | -- |

响应格式

render()

返回一个 PIL.Image.Image 对象并保存文件。支持的扩展名:.png、.jpg、.jpeg、.webp。

render_bytes()

返回 bytes(原始图像数据)。支持的格式:PNG、JPEG、WEBP。

skill_cards() 输入格式

python
[
{
name: 身份|密钥, # 管道将文本拆分为普通文本和强调色文本
label: 认证, # 柔和颜色的副标题
code: NIP-07, # 强调色等宽字体代码
}
]

常见模式

为多个平台生成

python
for preset in [og, twitter, github]:
SocialCard(preset).title(我的项目).subtitle(由 Johnny5 构建).render(fcard-{preset}.png)

品牌颜色

python

覆盖强调色以匹配你的品牌


SocialCard(og).title(Johnny5).accent(#a3e635).render(card.png)

从 Web 端点提供服务

python
from social_card import SocialCard

pngbytes = SocialCard(og).title(动态卡片).renderbytes(PNG)

作为 HTTP 响应返回,Content-Type: image/png

安全性

  • - 路径遍历已阻止。 渲染路径中的 .. 组件会引发 ValueError。
  • 文件扩展名白名单。 render() 仅接受 .png、.jpg、.jpeg、.webp。
  • 尺寸限制。 自定义预设上限为 4096 x 4096,以防止内存耗尽。
  • 输入长度限制。 徽章(100)、标题(200)、副标题(500)、页脚(200)字符上限。
  • 字体大小限制。 强制 1-200px。
  • 无网络访问。 所有内容在本地使用 Pillow 渲染。
  • 无环境变量。 无需配置密钥或 API 密钥。

配置

字体

平台感知的字体加载,带有自动回退:

  • - macOS: SF Pro Display、Arial Bold、Helvetica
  • Linux: DejaVu Sans Bold
  • Windows: Arial

等宽字体:SF Mono、DejaVu Sans Mono、Consolas。如果找不到任何字体,

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 social-card-1776107169 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 social-card-1776107169 技能

通过命令行安装

skillhub install social-card-1776107169

下载

⬇ 下载 social-card v0.2.1(免费)

文件大小: 4.7 KB | 发布时间: 2026-4-15 14:27

v0.2.1 最新 2026-4-15 14:27
Security hardening: SecretStr, sanitized exceptions, input validation
返回顶部