下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-1sdzqs7z--book-to-cards.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-1sdzqs7z/book-to-cards。- 将书籍按章节拆解为知识卡片HTML。当用户说'
- 拆书'
- 、'
- 做读书卡片'
- 、'
- 把书变成卡片'
- …(完整说明见下方「阅读全文」)
阅读全文 (展开查看完整说明)
概述
将一本书 → 按章节拆解 → 生成知识卡片HTML
核心流程
1. 获取书籍内容 → 2. 选配色 → 3. 按章拆解 → 4. 生成知识卡片HTML → 5. 上传飞书第1步:获取书籍内容
按优先级尝试:
- 用户提供PDF/文件 → 用
doc_parse提取文本 - 用户提供书名 → 网络搜索该书章节目录和核心内容
- 用户提供内容摘要/笔记 → 直接使用
如果内容不够完整,告诉用户"我需要更多内容,请提供书的PDF或章节摘要"。
第2步:选配色主题
必问。
| 主题 | 适合书籍类型 | 预览色 |
|---|---|---|
| 🌊 深海蓝 | 商业/经济/管理/通用 | 深蓝渐变 |
| 🌸 樱花粉 | 文学/情感/女性/生活 | 粉红渐变 |
| 🍵 抹茶绿 | 自然/健康/读书/心理学 | 绿色渐变 |
| 🌙 暮光紫 | 科技/哲学/设计/创新 | 紫色渐变 |
| 🔥 烈焰红 | 历史/政治/军事 | 红色渐变 |
| 🍊 暖阳橙 | 美食/旅行/亲子/教育 | 橙色渐变 |
| 🖤 极简黑 | 极简/高端/商务 | 黑灰渐变 |
| 💎 薄荷青 | 学习/教育/知识/科学 | 青绿渐变 |
推荐逻辑:
- 历史类 → 🔥烈焰红
- 哲学/思想类 → 🌙暮光紫
- 科学/知识类 → 💎薄荷青
- 商业/经济类 → 🌊深海蓝
- 文学/小说类 → 🌸樱花粉
- 心理学/自我成长 → 🍵抹茶绿
- 教育/学习方法 → 🍊暖阳橙
用户说了算,推荐只是参考。
第3步:按章拆解
拆解原则:
- 每章提取所有重点,不遗漏
- 保留原文精华,不压缩成一句话
- 每章提炼🔑关键词
- 有金句时单独提取
拆解结构:
章节标题
├── 核心观点
├── 要点1(原文精华)
├── 要点2(原文精华)
├── 要点3(原文精华)
├── 🔑 关键词:xxx, xxx
└── 金句(如果有)第4步:生成知识卡片HTML
配色变量对照表:
| 主题 | –cover-from | –cover-via | –cover-to | –accent |
|---|---|---|---|---|
| 深海蓝 | #1a1a2e | #16213e | #0f3460 | #0f3460 |
| 樱花粉 | #8B2252 | #C71585 | #FF69B4 | #C71585 |
| 抹茶绿 | #1B4332 | #2D6A4F | #40916C | #2D6A4F |
| 暮光紫 | #2E1A47 | #5B2C6F | #8E44AD | #5B2C6F |
| 烈焰红 | #7B0000 | #B22222 | #DC143C | #B22222 |
| 暖阳橙 | #7C3600 | #CC5500 | #E07C24 | #CC5500 |
| 极简黑 | #0D0D0D | #1A1A1A | #2D2D2D | #1A1A1A |
| 薄荷青 | #004D40 | #00796B | #26A69A | #00796B |
卡片设计规范:
- 手机优先:max-width 420px,单列布局
- 封面卡:渐变背景 + emoji + 书名 + 作者 + 卡片数量
- 按章节/阶段分组(section-title),分组标题清晰
- 每章一张卡片:编号 + 分类标签 + 标题 + 正文
- 有🔑关键词时加 card-key 区块
- 有金句时加 card-quote 区块
- 尾页:总结
卡片数量: 有多少章就做多少张,不设上限。书很长(>30章)可分卷生成。
HTML模板(用exec+cat heredoc写入):
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>知识卡片 - {书名}</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', sans-serif; background: #f8f6f3; color: #2d2d2d; }
.page { max-width: 420px; margin: 0 auto; padding: 0; }
:root {
--cover-from: {色值}; --cover-via: {色值}; --cover-to: {色值};
--accent: {色值}; --accent-light: {色值};
--key-border: {色值}; --key-bg: {色值}; --key-label: {色值};
}
.cover { background: linear-gradient(135deg, var(--cover-from) 0%, var(--cover-via) 50%, var(--cover-to) 100%); color: white; padding: 48px 28px 36px; text-align: center; }
.cover .emoji { font-size: 48px; margin-bottom: 16px; }
.cover h1 { font-size: 20px; font-weight: 700; line-height: 1.4; margin-bottom: 6px; }
.cover .sub { font-size: 13px; opacity: 0.7; margin-bottom: 20px; }
.cover .meta { display: flex; justify-content: center; gap: 20px; font-size: 12px; opacity: 0.8; }
.section-title { margin: 24px 16px 8px; padding: 10px 16px; background: var(--accent); color: white; border-radius: 12px; font-size: 14px; font-weight: 700; }
.card { background: white; margin: 12px 16px; border-radius: 16px; overflow: hidden; box-shadow: 0 2px 12px rgba(0,0,0,0.05); }
.card-header { padding: 16px 20px 12px; display: flex; align-items: center; gap: 10px; }
.card-num { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; color: white; flex-shrink: 0; background: var(--accent); }
.card-tag { font-size: 10px; padding: 2px 8px; border-radius: 10px; font-weight: 600; background: var(--accent-light); color: var(--accent); }
.card-title { padding: 0 20px 8px; font-size: 17px; font-weight: 700; line-height: 1.5; }
.card-body { padding: 0 20px 16px; font-size: 14px; line-height: 2; color: #444; }
.card-key { margin: 0 20px 16px; padding: 12px 16px; background: var(--key-bg); border-radius: 8px; border-left: 3px solid var(--key-border); }
.card-key .label { font-size: 11px; color: var(--key-label); font-weight: 600; margin-bottom: 6px; }
.card-key .items { font-size: 13px; line-height: 1.8; color: #555; }
.card-quote { margin: 0 20px 16px; padding: 12px 16px; background: #f8f6f3; border-radius: 8px; font-size: 13px; line-height: 1.8; color: #666; font-style: italic; }
.card-footer { padding: 10px 20px; border-top: 1px solid #f0ece7; display: flex; justify-content: flex-end; align-items: center; }
.card-footer .source { font-size: 10px; color: #bbb; }
.end-card { background: white; margin: 12px 16px 32px; border-radius: 16px; padding: 32px 24px; text-align: center; box-shadow: 0 2px 12px rgba(0,0,0,0.05); }
.end-card .emoji { font-size: 36px; margin-bottom: 12px; }
.end-card p { font-size: 14px; line-height: 1.8; color: #666; }
.end-card .highlight { color: var(--accent); font-weight: 600; }
</style>
</head>
<body>
<div class="page">
<!-- 封面 -->
<div class="cover">
<div class="emoji">{emoji}</div>
<h1>{书名}</h1>
<div class="sub">{作者} · {副标题}</div>
<div class="meta"><span>📝 {N}张卡片</span><span>{章节分组信息}</span></div>
</div>
<!-- 卡片内容 -->
...
<!-- 尾页 -->
<div class="end-card">
<div class="emoji">{emoji}</div>
<p>{书名} · {作者}<br>{N}张卡片 · 全书精华<br><span class="highlight">{配色名}配色</span></p>
</div>
</div>
</body>
</html>第5步:交付
直接将HTML文件发送给用户,告知卡片数量和配色主题。
用户下载后用浏览器打开即可查看。
注意事项
- 每章一张卡片,不遗漏重点
- 保留原文精华,不压缩成一句话
- 有金句时用card-quote突出显示
- 按书的自然结构分组(部分/篇章/阶段)
- 书太长可分卷生成,每卷一个HTML文件