Skip to main content

study-material

从 PDF/文档/图片中提取全部内容,整理成结构化 HTML 学习资料,并录入 Study Wiki。当用户说"提取文档"、"整理资料"、"学习资料"、"提取PDF"、"帮我整理这个文档"、"extract document"、"study material",或上传 PDF/文档并要求提取内容时触发。

설치로 이동

소스 정보

저장소
yangwhale/CloseCrab
최근 소스 활동
2026년 8월 9일 13:11
감지된 SKILL.md 언어
중국어
스타
3
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
study-material
description
从 PDF/文档/图片中提取全部内容,整理成结构化 HTML 学习资料,并录入 Study Wiki。当用户说"提取文档"、"整理资料"、"学习资料"、"提取PDF"、"帮我整理这个文档"、"extract document"、"study material",或上传 PDF/文档并要求提取内容时触发。
# 学习资料提取、整理与知识录入 从 PDF、文档、图片中 **一字不漏** 提取全部内容,整理成高质量 HTML 学习文档,最后录入 Study Wiki 形成可检索的知识网络。 ## 完整工作流(三阶段) ``` PDF/文档 ──→ [阶段一] 逐页提取 + 页面截图 ──→ [阶段二] HTML 生成 ──→ [阶段三] Wiki 录入 (Read + pdftoppm) (CC Pages) (Study Wiki) ``` --- ## 阶段一:内容提取 ### 1.1 接收输入 支持的输入格式: - **PDF 文件**:用 Read 工具读取(支持指定页码范围,大 PDF 分批读取,每次最多 20 页) - **图片文件**:用 Read 工具直接读取(PNG/JPG/JPEG/WEBP),自动 OCR 识别 - **文本文档**:直接读取 Markdown/TXT 等 - **网页 URL**:用 WebFetch 或 Tavily 提取 ### 1.2 逐页提取原则 **核心原则:一字不漏,忠实原文** - 逐页/逐图读取,不跳过任何内容 - 大 PDF 分批读取:`pages: "1-20"`,`pages: "21-40"`... 直到读完 - 图片中的文字全部 OCR 提取 - 表格保持原始结构 - 数学公式、特殊符号准确还原 - 图表、示意图:原始 PDF 页面截图已嵌入,文字提取作为补充说明 - **填空题答案**:原文中手写或填写的答案要提取出来,用红色标注 `<span class="answer">答案</span>` - 提取完成后,对照原文检查是否有遗漏 ### 1.3 图片处理 — PDF 原页截图 **核心要求:每一页都要嵌入原始 PDF 页面截图,用户能直接看到教材原图。** #### 1.3.1 PDF 转图片 使用 `pdftoppm` 将 PDF 每页转为 PNG(200 DPI,清晰且文件大小合理): ```bash mkdir -p /gcs/cc-pages/assets/study-{topic} pdftoppm -png -r 200 /path/to/input.pdf /gcs/cc-pages/assets/study-{topic}/page ``` 输出文件:`page-01.png`、`page-02.png`... 自动编号。 验证图片可访问: ```bash curl -s -o /dev/null -w "%{http_code}" https://www.closecrab.com/assets/study-{topic}/page-01.png # 应返回 200 ``` #### 1.3.2 嵌入 HTML 每个 page-card 在 `<span class="page-num">` 之后、`<h3>` 之前插入图片: ```html <div class="page-card"><span class="page-num">P8</span> <img class="page-img" src="/assets/study-{topic}/page-08.png" alt="Page 8" loading="lazy"> <h3>标题</h3> <p>文字提取内容...</p> </div> ``` 合并页面(如 P12–13)插入多张图片: ```html <div class="page-card"><span class="page-num">P12–13</span> <img class="page-img" src="/assets/study-{topic}/page-12.png" alt="Page 12" loading="lazy"> <img class="page-img" src="/assets/study-{topic}/page-13.png" alt="Page 13" loading="lazy"> <h3>标题</h3> ``` CSS 样式(已含在标准模板中): ```css .page-img{width:100%;border-radius:12px;margin:10px 0 14px;border:1px solid var(--card-border);display:block} ``` #### 1.3.3 批量插入脚本 对于大文档,用 Python 脚本自动在每个 page-card 中插入对应图片,避免手动逐个编辑。脚本解析 `<span class="page-num">PX</span>` 中的页码,映射到 `page-XX.png`。 #### 1.3.4 其他 - `loading="lazy"` 必须加——62 页图片不能同时加载 - 图片模糊时标注 `[此处原文模糊,可能为:xxx]` - `<div class="image-desc">` 仅在需要**补充**描述图片细节时使用(作为图片的注释,不是替代品) --- ## 阶段二:HTML 生成 ### 2.1 输出路径与命名 ``` $CC_PAGES_WEB_ROOT/pages/study-{topic}-{YYYYMMDD-HHmmss}.html ``` 示例:`study-plant-reproduction-20260501-150000.html` ### 2.2 视觉风格 **暗色 Glassmorphism 主题**(与 page-style skill 的亮色主题不同,学习资料专用暗色) 核心 CSS 变量: ```css :root { --bg: #0f1a12; /* 深色背景(色调随学科调整) */ --card: rgba(255,255,255,0.06); /* 毛玻璃卡片 */ --card-border: rgba(255,255,255,0.12); --text: #e8f5e9; /* 主文字 */ --text2: #a5d6a7; /* 副文字 */ --accent: #4caf50; /* 主强调色(随学科调整) */ --highlight: #fff9c4; /* 高亮色 */ --formula-bg: rgba(33,150,243,0.08); /* 公式背景 */ --formula-border: #42a5f5; /* 公式左边框 */ } ``` #### 学科色板参考 | 学科 | --bg | --accent | --text/--text2 | 适用场景 | |------|------|----------|----------------|----------| | 生物/植物 | `#0f1a12` 深绿黑 | `#4caf50` 绿 | `#e8f5e9`/`#a5d6a7` | 植物、生态、细胞 | | 健康/人体 | `#14100f` 暖深棕 | `#ff8f00` 琥珀 | `#fff3e0`/`#ffcc80` | 青春期、人体系统 | | 数学 | `#0f1220` 深蓝黑 | `#42a5f5` 蓝 | `#e3f2fd`/`#90caf9` | 数学、几何 | | 语文 | `#1a1210` 暖褐 | `#d4a574` 棕 | `#efebe9`/`#bcaaa4` | 中文、英文、文学 | | 物理/化学 | `#0f1018` 深紫黑 | `#ab47bc` 紫 | `#f3e5f5`/`#ce93d8` | 物理、化学 | #### 多强调色(分类色编码) 当内容有明确的分类维度(如性别、阵营、对比组)时,增加辅助强调色: ```css /* 示例:健康教育的性别色编码 */ --accent-male: #42a5f5; /* 男性主题 — 蓝色 */ --accent-female: #f06292; /* 女性主题 — 粉色 */ .tag-male { background: rgba(66,165,245,.15); color: var(--accent-male); } .tag-female { background: rgba(240,98,146,.15); color: var(--accent-female); } .knowledge-card.male h3 { border-bottom-color: var(--accent-male); color: var(--accent-male); } .knowledge-card.female h3 { border-bottom-color: var(--accent-female); color: var(--accent-female); } ``` 适用场景:男/女生殖系统对比、植物/动物对比、正方/反方辩论等。 ### 2.3 核心 CSS 组件 | 组件 | class | 用途 | |------|-------|------| | 页面卡片 | `.page-card` | Tab 1 逐页内容,含 `.page-num` 页码标签 | | 页面图片 | `.page-img` | 原始 PDF 页面截图,`width:100%;border-radius:12px;loading:lazy` | | 知识卡片 | `.knowledge-card` | Tab 2 知识整理,每个知识点一个 card | | 练习区 | `.exercise` | Tab 3 练习题分组 | | 高亮 | `.highlight` | 重点内容黄色渐变高亮 | | 公式框 | `.formula-box` | 蓝色左边框 + 浅蓝背景,放关键公式/规则 | | 图片描述 | `.image-desc` | 虚线边框 + 斜体,描述图表内容 | | 目录 | `.toc` | 带锚点链接的目录导航 | | 答案 | `.answer` | 填空答案红色标注 | | 答案展开 | `<details>` | 练习题答案默认隐藏,点击展开 | | 词汇网格 | `.vocab-grid` | 双栏词汇表,`grid-template-columns:1fr 1fr` | | 分类标签 | `.tag-male`/`.tag-female` 等 | 分类维度的彩色标签(见多强调色) | ### 2.4 三 Tab 结构(纯 CSS 切换,无 JS) 使用 `input[type=radio]` + `:checked` 兄弟选择器实现 Tab 切换: ```html <input type="radio" name="tab" id="tab1" checked> <input type="radio" name="tab" id="tab2"> <input type="radio" name="tab" id="tab3"> <div class="tab-nav"> <label for="tab1">📖 逐页原文稿</label> <label for="tab2">🧠 知识整理</label> <label for="tab3">🗺️ 思维导图 & 练习</label> </div> <div class="tab-content"> <div class="t1">...</div> <!-- Tab 1 --> <div class="t2">...</div> <!-- Tab 2 --> <div class="t3">...</div> <!-- Tab 3 --> </div> ``` CSS 切换逻辑: ```css input[name="tab"] { display: none } .tab-content > div { display: none } #tab1:checked ~ .tab-content .t1 { display: block } #tab2:checked ~ .tab-content .t2 { display: block } #tab3:checked ~ .tab-content .t3 { display: block } ``` #### Tab 1:逐页原文稿 **目的**:让用户能逐页核对提取是否正确和完整,这是校验质量的唯一依据。 - 每一页单独一个 `.page-card`,标注页码 `P1`、`P2`... - 忠实还原原文文字 - 填空答案用红色 `<span class="answer">` 标注 - 图表/示意图:通过原始 PDF 页面截图展示,文字提取作为可搜索内容 - **关键:一字不漏,包括页码、标题、正文、题目、选项** - **相邻短页合并**:当 2-3 个连续页面内容很少(如标题页 + 正文页,或纯图片页 + 说明页),合并为一个 card,页码标为 `P12–13`。减少视觉碎片,但不遗漏内容 - 每页 card 结构(必须包含原始 PDF 页面截图): ```html <div class="page-card"> <span class="page-num">P1</span> <img class="page-img" src="/assets/study-{topic}/page-01.png" alt="Page 1" loading="lazy"> <h3>页面标题</h3> <div class="text-content"> <!-- 逐字还原的内容(文字提取,作为图片的可搜索补充) --> </div> </div> ``` #### Tab 2:知识整理 **目的**:学习复习用的精华版,按知识点重新组织。 要求: - **开头有目录** `.toc`,列出所有知识 section 的锚点链接 - 按章节分 section → 每个知识点一个 `.knowledge-card` - 合并相关页面内容(同一知识点可能分布在多页) - 添加对比表格(如风媒花 vs 蟲媒花) - 添加 `.formula-box` 放关键规则和记忆口诀 - 每个 card 末尾加 **💡 连结思考** 链接到相关 section - 包含英中词汇表,用 `.vocab-grid` 双栏网格展示(按分类分组:花的部分、种子结构等) ```html <div class="vocab-grid"> <div>Testis 睾丸</div><div>Ovary 卵巢</div> <div>Sperm 精子</div><div>Egg / Ovum 卵子</div> </div> ``` - 包含常见易错概念对比(❌ 错误认知 vs ✅ 正确认知) - **知识点数量要丰富**:一个 60+ 页 PDF 应有 15-20 个 section,30 页左右 8-12 个 #### Tab 3:思维导图 & 练习题 **目的**:帮助巩固和检测学习效果。 **思维导图**: - 用 inline SVG 绘制(不用外部库) - 中心主题 → 分支 → 子分支的树状结构 - 不同分支用不同颜色系,颜色应与学科色板和多强调色一致 - 圆角矩形节点 `rx="18"`,连接线条 - **分支超过 6 个时必须加图例**(Legend),用小色块 + 文字标注每个分支的类别 - SVG 尺寸建议:宽 1000-1200px,高度根据分支数调整(6 分支 500px,10+ 分支 700px) - 中心节点使用主强调色 `--accent`,分支按类别分色 **练习题要求**(题量要丰富,覆盖所有知识点): 大文档(50+ 页)标准题量: - 填空题 25 题(从原文提取,中英双语) - 判断题 15 题(✅/❌) - 选择题 12 题(A/B/C/D) - 配对题 3 组(左右匹配) - 排序题 3 组(按正确顺序排列) - 分类题 3 组(归类练习) - 看图标注题 2 题(用 SVG 画结构图 + 填标签) - 简答题 8 题 - **总计约 65-70 题** 中等文档(20-50 页):按比例缩减至 40-50 题 小文档(<20 页):25-35 题,可省略看图标注和排序题 - 每题答案用 `<details><summary>查看答案</summary><div class="ans">答案</div></details>` 隐藏 ### 2.5 生成策略 对于大文档(1000+ 行 HTML),采用分段生成策略: 1. 先生成 HTML head + CSS + Tab 1(逐页原文稿) 2. 保存为临时文件 3. 单独生成 Tab 2(知识整理)和 Tab 3(练习题) 4. 合并所有部分 如果需要增强某个 Tab: 1. 用 `head -N original.html` 提取要保留的部分 2. 将增强内容写入临时文件 3. 用 `cat` 合并 ### 2.6 打印适配 ```css @media print { body { background: #fff; color: #222; } .tab-nav, input[name="tab"] { display: none !important; } .tab-content > div { display: block !important; } /* 打印时显示所有 Tab */ .page-card, .knowledge-card, .exercise { break-inside: avoid; } } ``` ### 2.7 响应式设计 ```css @media (max-width: 600px) { .container { padding: 12px 8px 40px; } h1.main-title { font-size: 1.4rem; } .tab-nav label { padding: 8px 14px; font-size: 0.85rem; } } ``` ### 2.8 发布 1. 生成 HTML 到 `$CC_PAGES_WEB_ROOT/pages/` 2. 发送链接 `$CC_PAGES_URL_PREFIX/pages/study-{topic}-{timestamp}.html`(**不带引号**) 3. 汇报:提取了多少页、多少字、多少个知识点、多少道练习题 --- ## 阶段三:Wiki 录入 将 HTML 中整理好的知识录入 Study Wiki(`~/my-wiki-study/`),形成可检索、互联的知识网络。 ### 3.1 Wiki 路径 ``` WIKI_REPO=~/my-wiki-study WIKI_CONTENT=~/my-wiki-study/content
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기