Linggan talking cards
Skill yihui-dev/linggan-talking-cards/skills/linggan-talking-cards
将中文或英文口播文案与可选截图拆成 3–10 张 PPT 式演示卡片,输出文字准确的 PNG 卡片、结构化 manifest 和带逐卡口播台词的响应式 HTML 预览页。支持 3:4、16:9、9:16、4:3 四种比例,以及苹果白色毛玻璃、糖果、Obsidian、新丑风等 10 种视觉系统;适用于“口播文案拆解PPT生多图”“把逐字稿做成卡片”“给口播配 slides”“截图放进讲解卡片”“生成多图和预览页”“换一种 PPT 风格”以及修改指定卡片的请求。From its SKILL.md
npx -y skills add yihui-dev/linggan-talking-cards --skill linggan-talking-cardsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 15 days oldThe repository was created 15 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
10.4 KB, ~3.7k tokens by cl100k_base, as published. Nobody here has run it
口播文案拆解 PPT 生多图
把口播稿拆成一组手机端两秒内能读懂的演示卡片。直接完成策划、PNG 渲染和 HTML 预览;用户只要求方案时才停在文字方案。
硬性规则
- 接收口播正文作为唯一必需输入;主题清楚时直接执行,不因缺少张数、比例、配色或图片而追问。
- 输出 3–10 张卡片。默认比例为
3:4;只支持3:4、16:9、9:16、4:3,同一套保持同一比例。 - 所有比例都使用“双锚点 + 弹性内容带”纵向结构:一级标题区稳定落在卡片偏上位置,条目与细节从中偏上开始,以舒展的行距向中下部展开。整体视觉重心保持偏上,但最后一条或高亮应自然使用中下部,不能让下方像整块空着。只有 2 条内容时,两条都应停在中偏上至中段,高亮再承担向中下部延展的作用,禁止把两条机械拉到内容带两端。右下角是人物头像的优先避让区,不是牺牲整体排版的硬空洞;不得为了头像缩成小字或把内容重新挤成顶部一团。
- 一份口播只使用一种顶层
style和一套顶层theme。封面、信息页、图片页和收尾页必须共享同一视觉系统、主色、背景与强调色,不得逐页换风格或轮换色系;只有用户明确要求另做一套方案时,才建立新的完整输出集。 - 每张卡片只讲一个重点,尽量包含短标题和具体内容。
- 没有配图的卡片放 1–4 条编号要点;有配图的卡片优先展示截图,可补 0–2 条短要点。
- 用户截图属于固定内容物料:保留可见 UI、文字、颜色与比例,只允许等比缩放、裁切、留白、圆角和轻阴影,不得重画或伪造截图内容。
- 卡片文字可以压缩和重组,但不得改写关键事实、数字、价格、产品名或结论。不要把用户观点包装成已核实事实。
- 卡片下方的
transcript必须覆盖全部口播内容,顺序不变、无遗漏、无重复。只删除 Markdown 符号等非口播标记;不得润色成另一篇稿子。 - 使用脚本生成文字卡片,不用图片生成模型绘制带正文的整页卡片。只有用户明确需要独立插画物料时,才另行生成物料并作为输入图片嵌入。
- 每次都交付 PNG、
cards-manifest.json和index.html;不能只给文字方案或散落图片。
工作流
1. 解析输入
- 提取主张、转折、例子、比较、方法和收束句。
- 识别用户指定的比例、页数、风格、配色和图片用途;缺省时使用
3:4、apple-flat和该风格的默认主题。确定后,将同一style、tone和theme用于全部卡片。 - 将图片标记为固定截图、内容照片、人物/物件参考或仅风格参考。只把固定截图和明确相关的内容图片放进成品。
- 按内容密度选页数:短稿 3–4 页;普通稿 5–7 页;包含多个步骤、案例或对比的长稿 8–10 页。
用户没有指定风格时,根据内容语气与使用场景选择;没有明显线索时保持默认 apple-flat。只从 styles.md 中的 10 个稳定 ID 选择,不临时发明近义 ID。用户要求比较多个风格时,每个风格分别生成一整套卡片,而不是让不同页面混搭。
2. 规划逐卡内容
按完整语义而不是平均字数拆分口播。使用以下叙事顺序中的必要部分:
- 封面或核心判断。
- 问题、变化或背景。
- 关键要点、步骤、对比或案例。
- 原因、机制或反直觉解释。
- 结论、行动或记忆点。
为每张卡片写入:
eyebrow:2–12 个字的栏目词,可省略。title:一个可独立理解的短标题,优先 4–18 个汉字。summary:一条补充说明,可省略。points:无图时 1–4 条;每条尽量不超过 24 个汉字。highlight:一个数字、短句或结论,可省略。transcript:本卡对应的原始口播片段。image:只在该卡确实需要用户图片时填写本地路径。
同时把用户的完整原稿逐字保存到顶层 source_text。构建脚本会忽略 Markdown 粗体与项目符号后,对比 source_text 和全部 transcript,发现遗漏、重复或改写时直接停止。
长解释留在预览页中卡片图片下方的台词区域;不要把整段逐字稿塞进图片。规划卡面时,先把一级标题锚定在上部,再让条目与细节从中偏上位置开始;用条目间距和高亮结论把内容带自然延展到中下部,而不是把条目挤紧或把下方完全留空。优先让右下人物区保持低干扰;如果内容密度确实较高,先保证标题层级、正文可读性和整体节奏,再接受少量次要内容进入人物区外围。
3. 建立 manifest
读取 manifest-schema.md,在最终输出目录外或其中建立工作 manifest。推荐输出目录:
<cwd>/outputs/linggan-talking-cards/<YYYY-MM-DD>-<主题缩写>/
相对图片路径以 manifest 所在目录为基准。没有图片的卡片必须写 points;不要用无语义装饰图标替代信息。
4. 渲染 PNG 与 HTML
运行:
python3 <skill-dir>/scripts/render_cards.py build \
--manifest <manifest.json> \
--output-dir <output-directory>
脚本会:
- 校验比例、页数、文字长度、台词和图片路径。
- 用隔离的 Playwright/Chromium 将每张卡片渲染为准确比例的 PNG,不影响用户正在使用的浏览器。
- 生成
cards-manifest.json。 - 生成响应式
index.html,以平铺方式展示图片,并在每张卡片下方展示对应口播台词和 PNG 下载入口。
不要把预览页改成依赖本地服务或运行时 fetch 的页面;用户应能直接双击打开。
需要用同一份内容比较全部 10 种风格时,运行:
python3 <skill-dir>/scripts/render_cards.py build-style-gallery \
--manifest <manifest.json> \
--output-dir <gallery-output-directory>
画廊构建会为每个稳定 style 生成独立完整套装,并在根目录生成汇总预览。每个套装内部仍必须保持同一个风格与同一套主题色。
5. 验收
运行:
python3 <skill-dir>/scripts/render_cards.py validate \
--manifest <output-directory>/cards-manifest.json \
--output-dir <output-directory>
同时逐张目视检查:
- PNG 数量是否等于卡片数量,像素比例是否准确。
- 标题、编号、金额、专有名词和顺序是否正确。
- 是否每页只有一个重点,最小文字在手机端仍清楚。
- 一级标题是否稳定处于偏上区域,而不是与正文一起完全居中或挤在最顶端。
- 条目、细节与内容图片是否从中偏上位置开始,并以松弛但连贯的节奏延展到中下部。
- 最后一条或高亮是否合理使用中下部,没有把全部正文挤在上方,也没有留下整块空荡的下半区。
- 右下角是否优先保持低干扰的人物空间;若内容密度较高,是否仍以整体排版与可读性优先,没有强行挖出大块空洞。
- 四种比例是否沿用同一“双锚点 + 右下优先避让”逻辑,没有误留整条底部空白。
- 图片是否相关且没有被重画、拉伸或遮住关键信息。
- 风格标志是否清楚,并且整套没有跨页换风格或换主题色。
- 台词是否自然分段,并完整覆盖原稿。
- HTML 是否响应式平铺、无页面级横向溢出,且每张图下方都有对应台词。
修改脚本或 Skill 后,再运行:
python3 <skill-dir>/scripts/render_cards.py self-test
python3 <skill-creator-dir>/scripts/quick_validate.py <skill-dir>
6. 修改指定卡片
用户要求修改第 N 张时,只更新该卡在 manifest 中的字段并重新构建;保持其他卡片的文字、顺序、图片、比例和整体风格不变。修改台词拆分时,复查相邻两张,确保原稿仍无遗漏或重复。
视觉系统
- 支持且只支持 10 种稳定风格:
apple-flat、candy、obsidian、neo-brutalism、swiss、blueprint、bento、notebook、bauhaus、zen-ink。完整选择建议和版式特征见 styles.md。 - 风格不只是换色。每个系统应通过字体气质、边框、圆角、阴影、网格、装饰语言和信息容器共同形成辨识度,同时保持标题、要点、图片与逐卡台词的结构一致。
- 每套只选择一种风格与一组主题色;同套所有页面复用同一主色、背景和强调色。页面之间通过版式、内容密度和留白形成节奏,不通过换风格或换主题色制造差异。
- 保持明确层级与手机端可读性;最多三种字号、两种字重。用编号、关键词色块、短分隔线或一个高亮结论组织信息,避免默认三等分图标网格。
3:4:一级标题落在上部,正文从中偏上开始并舒展到中下部;16:9:标题偏上,正文较早进入中段左侧并利用有限高度;9:16:标题上置,条目从中偏上开始并用纵向间距消化高画布;4:3:保持紧凑的上部标题,同时让正文覆盖中部到中下部。四种比例都优先避让右下人物区,但不得为了绝对清空它而破坏整体节奏,也不得形成整条底部空带。- 封面可使用更大的主张和 1–2 个编号切入点;信息页使用所选风格的内容容器;收尾页用一句结论和行动点收束。
- 禁止社交平台外壳、关注点赞栏、轮播页码、水印、品牌冒充、密集小字和与内容无关的装饰。阴影、饱和度和锐利边框应服从所选风格,而不是叠加无关效果。
交付
报告卡片数量、比例、风格、输出目录、index.html、PNG 目录、验证结果和使用了哪些用户图片。优先给出可点击的 HTML 预览路径,再给出卡片目录。批量比较时,先给汇总画廊,再列各风格独立预览。
What ships with it: 6 files
99.8 KB alongside SKILL.md, 2 of them executable
agents/
- openai.yaml345 B
references/
- manifest-schema.md4.3 KB
- styles.md6.1 KB
scripts/
- render_cards.pyruns77.9 KB
- render_page.jsruns10.7 KB
- package.json472 B