本篇给出 1 条可直接复制使用的 AI 提示词(Prompts),目标是让 AI 一次性产出一个可运行、可构建、可部署的“EPUB/MOBI 在线预览与结构校验工具”完整项目:包含前后端源码、清晰文件树、可复现的运行命令、部署说明,以及测试用例或 QA checklist。适用于内容运营、出版编辑、电子书制作人员、开发/测试同学对电子书包体进行快速验收。
1) 上传 EPUB(.epub)或 MOBI(.mobi/.azw/.azw3)后,在线生成目录树与章节列表;2) 校验 OPF/NCX/Nav(EPUB3 nav.xhtml)结构是否完整;3) 检查资源引用(图片、字体、CSS、音频等)是否缺失、路径是否大小写不一致;4) 检测常见错误:重复 ID、无效 href、manifest/spine 不一致、章节缺失、mime 类型异常;5) 输出诊断报告(JSON + HTML)并提供下载。
完整项目代码(前端+后端)/ 文件结构树 / 本地运行与构建命令 / Docker 运行方式(可选但建议)/ 部署说明(至少含 Nginx 反代或一键部署到常见平台的示例)/ 单元测试或端到端测试(至少一个)/ QA checklist(覆盖上传、解析、报告、异常处理、性能与安全)。
角色:你是资深全栈工程师 + 测试工程师 + 文档工程师。我要你生成一个可以直接运行的在线工具项目,功能是:EPUB/MOBI 电子书结构校验与目录预览,并输出可下载的诊断报告。
硬性要求(必须逐条满足)
1) 交付物必须包含:完整源码、文件树、安装/运行/构建命令、部署说明、测试用例或 QA checklist。
2) 项目必须可在本地一条命令启动(给出 Windows/macOS/Linux 示例),并说明 Node 版本建议。
3) 解析逻辑要有清晰的错误处理与边界:损坏 zip、缺失 OPF、引用不存在资源、编码问题、超大文件、恶意路径(Zip Slip)。
4) 安全要求:上传文件大小限制;只允许白名单扩展名;服务端解压必须防 Zip Slip;对外不暴露服务器文件路径;报告中对敏感信息做脱敏;CORS 说明;必要时对并发做限制。
5) 不要生成任何“图片生成/渲染图/海报/插画”相关功能;允许对现有资源做校验与预览,但不引导生成图片。
推荐技术栈(你可以按最佳实践微调,但要解释原因)
- 前端:Vite + React + Type (或 Next.js 也可,但必须解释为何)
- 后端:Node.js + Fastify/Express(Type )
- 解析:EPUB 用 unzip + 解析 OPF/NCX/nav.xhtml;MOBI 若无法完整解析则提供“基础信息提取 + 结构扫描 + 兼容性提示”,并在报告里明确“可解析范围”。
- 报告:JSON(机器可读)+ HTML(人类可读)两份;支持下载。
功能需求(按页面与接口拆分)
A) 首页上传:拖拽上传/选择文件;展示文件名、大小;点击开始分析。
B) 分析进度:展示阶段(上传/解压/解析/校验/生成报告);失败时给出可理解的错误与修复建议。
C) 结果页:目录树(TOC)+ 章节列表 + 资源清单(images/fonts/css/audio)+ 问题列表(按严重级别:error/warn/info)+ 统计概览(缺失数、重复 ID 数、无效引用数等)。
D) 下载:下载 report.json 与 report.html;可选:下载“修复建议清单”(比如替换路径大小写、补全 manifest、移除无效 spine 项)。
校验规则(至少包含)
- OPF:manifest/spine/ data 是否存在;item 的 media-type 合法性;spine 引用是否都在 manifest;unique-identifier 是否存在且指向有效 data。
- 目录:优先 EPUB3 nav.xhtml;否则 NCX;若两者都无则生成“按 spine 顺序的临时目录”。
- 资源:逐个检查 href 是否存在;路径大小写一致;禁止引用上级路径;统计未被引用的孤儿资源。
- HTML:基本解析(不需要渲染)但要检查链接与资源引用;对外链给出提示。
输出格式(必须给出示例)
给出 report.json 的 schema/示例片段,包含:fileInfo、toc、chapters、assets、issues、stats、timing、environment。
测试要求(必须给出)
- 至少 1 个单元测试:例如 OPF 解析/Zip Slip 防护函数。
- 至少 1 个端到端或集成测试:模拟上传一个最小 EPUB(可在测试里动态生成 zip 包)。
文档要求(必须给出)
- README:项目介绍、功能、快速开始、配置项、部署、常见问题、故障排查。
- QA checklist:覆盖上传限制、兼容格式、性能(例如 50MB EPUB)、错误提示可读性、报告下载、并发、日志与隐私。
最终输出格式(必须严格按这个顺序)
1) 项目概览(3-8 行)
2) 文件树(tree 形式)
3) 关键实现说明(分模块)
4) 完整源码(按文件逐个给出,包含路径标注)
5) 运行/构建命令(含示例)
6) 部署说明(至少一种)
7) 测试说明(如何运行测试 + 测试代码)
8) QA checklist
将上面的 Prompt 直接粘贴给你常用的 AI(建议使用支持长输出的模型),让它按“最终输出格式”生成完整项目。生成后先跑测试,再用一份真实 EPUB/MOBI 样本做回归:目录是否可读、问题列表是否可信、报告下载是否正常。
1) 增加 Web Worker/队列:大文件解析异步化;2) 增加“规则开关”:允许用户关闭某些严格校验;3) 结果页支持筛选与导出 CSV;4) 支持批处理:一次上传多个 EPUB 生成批量报告(注意并发与限制)。