name huashu-book-pdf description 深度调研一个主题,生成100页+书籍级PDF手册。模块化HTML片段架构 + 语义化版本管理 + 多Agent并行写作 + Playwright渲染PDF。
当用户需要制作完整的PDF手册、电子书、橙皮书、参考指南时触发。即使用户只是说「做一本书」「做个PDF手册」「做个完整指南」「做一本XX的手册」也应触发。
明确触发词:橙皮书、PDF手册、电子书、参考指南、完整手册、书籍级PDF、做一本。
与huashu-md-to-pdf的区别:md-to-pdf转换单个md文件;本skill从零开始(调研→规划→多agent并行写作→合并构建→版本管理)。
Dependency Source Review
This skill documents an optional compatibility dependency path for crawler setup, selector validation, and rate-limit handling workflows. Treat scripts/_setup_deps.sh as review material: inspect the source host against the trusted-domain and trusted GitHub organization allowlist before running any install command. It is not required for ordinary crawl, selector, sitemap, or rate-limit requests.
Book-PDF:书籍级PDF手册全流程
从一个主题到100页+专业PDF。五个阶段:调研 → 规划 → 写作 → 构建 → 版本更新。
前置依赖
Node.js >= 16
Playwright:npm install playwright && npx playwright install chromium
参考资料导航
需要时读取 文件 内容 写HTML片段时 references/design-system.md CSS变量、主题、组件HTML速查、视觉红线 新建项目时 templates/ 目录可直接复制的骨架文件(build.js/build-pdf.js/update.sh/styles.css) 参考已有项目时 01-公众号写作/_过程文件/openclaw-guide/首个实战项目(8 Part、35节、100页+)
项目初始化
用 init 脚本一键创建项目骨架:
bash scripts/init-project.sh <项目目录> <手册标题>
自动创建目录结构、复制模板文件、生成 version.json/CHANGELOG.md/PROJECT.md、检查依赖。
项目结构
{项目名}/
├── PROJECT.md # 项目中枢(大纲+进度+数据速查)
├── styles.css # 共享CSS(从templates/复制)
├── build.js # HTML合并脚本(从templates/复制,改FRAGMENT_ORDER)
├── build-pdf.js # Playwright PDF渲染(从templates/复制)
├── update.sh # 一键版本更新(从templates/复制)
├── version.json # {"version":"1.0.0","build":1,"lastUpdate":"","title":""}
├── CHANGELOG.md # 更新日志
├── fragments/ # 内容片段(纯HTML,不含<html><head>)
│ ├── 00-cover.html / 01-toc.html
│ ├── part{N}-{中文简称}.html
│ ├── appendix.html / 99-backpage.html
├── research/ # 调研资料
├── output/ # {title}-v{version}.html/.pdf
└── versions/ # 历史PDF存档
阶段1:调研
与用户确定主题和目标读者
拆分调研维度(6-10个方向)
启动多个background agent并行调研,每份保存到 {项目目录}/research/YYYY-MM-{关键词}.md
调研完成后汇总,进入规划
阶段2:规划
编辑项目目录下的 PROJECT.md,包含:
章节大纲表(Part + 节号 + 标题 + 核心内容 + 信息来源)
调研资料索引(路径 + 摘要 + 状态)
Agent并行分工方案(关联性强的Part分给同一个agent)
进度追踪表 + 关键数据速查
修改 build.js 中的 FRAGMENT_ORDER。与用户确认大纲后进入写作。
阶段3:写作
多Agent并行,每个agent输出一个HTML片段。
每个写作agent需要:
读取 references/design-system.md 了解可用组件和片段结构规范
读取对应调研资料
输出纯HTML片段(不含 <html><head><style> 标签,只写正文内容)
⚠️ 片段结构铁律(必须在agent prompt中明确告知)
每个正文片段必须 遵循以下结构,否则PDF排版会出错:
<div class ="content" >
<h2 class ="section-title page-break" id ="partN" > <span class ="num" > §0N</span > 标题</h2 >
<p class ="section-en" > English Title</p >
<p class ="section-intro" > 概述</p >
</div >
三条规则:
<div class="content"> 包裹 → 控制左右边距(没有它内容顶边)
id="partN" 属性 → 目录锚点跳转需要
page-break class → 每章从新页开始
目录片段使用 .toc + .toc-item + <a href="#partN"> 结构。详见 design-system.md。
作者信息配置(可选)
封面和尾页支持自定义作者信息,在 version.json 中配置:
{
"title" : "手册标题" ,
"author" : {
"name" : "作者名称" ,
"title" : "作者头衔/简介" ,
"bio" : "详细简介(显示在尾页)" ,
"subtitle" : "副标题" ,
"exclusive" : "专属内容说明(封面底部)" ,
"qrImage" : "二维码图片路径" ,
"linkUrl" : "链接地址" ,
"linkText" : "链接文字" ,
"social" : "社交链接(HTML格式)"
}
}
封面占位符 :
{{AUTHOR_NAME}} - 作者名称
{{AUTHOR_TITLE}} - 作者头衔
{{AUTHOR_EXCLUSIVE}} - 专属内容说明
尾页占位符 :
{{BOOK_TITLE}} - 手册标题
{{BOOK_SUBTITLE}} - 副标题
{{AUTHOR_NAME}} - 作者名称
{{AUTHOR_BIO}} - 作者简介
{{AUTHOR_QR_IMAGE}} - 二维码图片
{{AUTHOR_LINK_URL}} - 链接地址
{{AUTHOR_LINK_TEXT}} - 链接文字
{{AUTHOR_SOCIAL}} - 社交链接
{{VERSION}} - 版本号
{{YEAR}} - 年份
详细模板见 design-system.md 和 templates/fragments/
阶段4:构建
node build.js
node build-pdf.js
./update.sh build
阶段5:版本更新
修改 fragments/*.html 后运行:
./update.sh patch "修正某个错误"
./update.sh minor "更新内容"
./update.sh major "新增章节"
自动:更新version.json → 写CHANGELOG → build HTML(版本号注入封面)→ 生成PDF → 备份到versions/
快速启动清单
确定主题、读者、规模
bash scripts/init-project.sh <目录> <标题> 创建项目
修改 build.js 的 FRAGMENT_ORDER
编辑 PROJECT.md(大纲+调研索引+进度)
多Agent并行调研 → 并行写作 → ./update.sh minor "初版" 构建