PageTurner Skill / 翻书人 Skill:PDF 和长文档翻译、结构化解析与 HTML 快读版生成 Skill
SaferSkills independently audited pageturner (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
把厚重的原文「翻」成可读的网页——你的私人文档翻译+精排版专家。
PDF / 网页 → 提取全文 → 结构化解析 → 中文翻译 → Apple 极简风 HTML。
用户说「翻译这篇」「翻译这个报告/文档/PDF」「做个中文HTML版」「快速阅读版」「翻书人」等关键词时加载。
| 原文来源 | 工具 | 方法 |
|---|---|---|
| PDF 文件 | terminal: python3 -c "import pdfplumber; ..." | 用 pdfplumber 逐页 extract_text(),输出到 /tmp/<name>_text.txt |
| 网页 | browser_navigate 或 terminal: curl | 优先 curl(快),动态页面用 browser;避免搜索引擎(CAPTCHA 概率高) |
| 本地 .txt/.md | read_file | 直接读 |
PDF 提取代码模板:
import pdfplumber
with pdfplumber.open("/path/to/doc.pdf") as pdf:
all_text = []
for i, page in enumerate(pdf.pages):
text = page.extract_text()
if text:
all_text.append(f"--- PAGE {i+1} ---\n{text}")
full_text = "\n\n".join(all_text)
with open("/tmp/doc_text.txt", "w") as f:
f.write(full_text)搜索引擎 CAPTCHA 经验:
/publication/<slug>/)读取全文后,识别文档骨架:
| 需要识别 | 正则/方法 | HTML 对应 |
|---|---|---|
| 封面信息 | 前几页的标题行 + 作者行 | .cover 区域 |
| 章节 | Chapter \d+ / 第.*章 / 数字编号 | .chapter-num + .chapter-title |
| 子标题 | 全大写行 / Finding \d+ / ### | h3 |
| 案例研究 | CASE STUDY / 案例 | .case-study 框 |
| 引用 | "..." 后跟 — Name | blockquote |
| 表格 | 连续的行含 \t 或对齐空格 | <table> |
| 数据亮点 | XX% N→M $XM | .stat-bar 或 <table> |
| 尾注/参考文献 | [1] [2] 或 Endnotes | 小字号列表 |
关键:解析时标注每段的「语义角色」(finding / quote / case / stat / body),翻译时保持角色不变。
在翻译前,扫描全文提取「关键数字」,用于生成封面后的数据速览看板:
提取规则:
| 数据类型 | 正则 | 看板展示 |
|---|---|---|
| 百分比对比 | (\d+)% 前后有 vs from to → | 大号数字 + 变化箭头 |
| 核心统计 | 样本量、覆盖范围(如 51 cases 41 organizations) | 4-6 列 stat-bar |
| N→M 变化 | (\d+)\s*→\s*(\d+) | 前后对比条 |
| 金额 | \$\d+[MBK] | 高亮金额 |
| 排名/位置 | top \d+ #\d+ | 标签徽章 |
提取后生成 .stats-dashboard 区块,放在封面后、前言前。
目标语言:默认中文(zh-CN),用户可指定其他语言。
翻译原则:
术语对照表(企业 AI 领域常用):
| 英文 | 中文 |
|---|---|
| deployment | 部署 / 落地 |
| implementation | 实施 |
| executive sponsor | 高管赞助者 / 支持者 |
| change management | 变革管理 |
| headcount reduction | 人力缩减 / 减员 |
| escalation model | 上报模式 |
| agentic AI | Agentic AI / 自治 AI |
| shadow AI | Shadow AI / 影子 AI |
| proof of concept | 概念验证 |
| ROI | ROI / 投资回报率 |
| OKR | OKR / 目标与关键结果 |
| SME (subject matter expert) | 主题专家 |
规模控制:
设计系统:Apple WWDC 极简文档风格。完整 HTML/CSS/JS 骨架见 templates/fastread.html。
模板读取协议:
templates/fastread.html,并以它作为 HTML/CSS/JS 骨架。skill_view(name="pageturner", file_path="templates/fastread.html") 或等价的 Skill 资源读取能力加载模板;如果有文件系统访问权,再读取 <skill_dir>/templates/fastread.html。templates/fastread.html 就判定模板不可用;相对路径必须以 Skill 根目录为基准。SKILL.md URL 安装、或运行环境没有同步/挂载 templates/ 目录时,才允许说模板文件不可用;此时按下方设计规范重建同等结构,并在最终说明中提示需要用完整仓库安装 Skill。四类核心输出能力:
#### 4a. 数据速览看板
封面后自动插入 .stats-dashboard,从步骤 2.5 提取的数据生成 4-6 列大号数字瓷砖(.stat-bar 样式)、含 N→M 变化的对比条、关键百分比高亮。
#### 4b. 键盘翻页导航(v2 新增)
每个 <section> 作为一页,支持:← → 键翻页、顶部 2px 进度条、右下角页码(如 3 / 22)、URL hash 同步(#s3)、Home/End 跳首末页。移动端额外支持左右滑动手势。详细 JS 见模板文件。
#### 4c. 原文链接(v2 新增)
封面区底部或页脚添加原文本地文件链接(file:// 绝对路径)+ 官网 URL(如有)。样式:小字号 muted,底部边框分隔。
#### 4d. 图解与数据可视化(v2.1)
不要只输出摘要文字。只要原文含有架构、流程、分类、实验数据、治理框架或概念关系,必须提取成可视化模块。优先使用自包含 HTML/CSS 图表;如原文有真实图片且授权允许,可引用或嵌入真实图片。不要用 emoji、ASCII 画图或装饰性占位图。
最低要求:
.stats-dashboard 外,至少 2 个 .figure-panel / 图解模块。推荐图解类型:
| 文档类型 | 图解模块 | 适合内容 |
|---|---|---|
| AI / LLM 论文 | architecture map / heatmap / complexity bars / training table | 模型结构、Q/K/V、实验指标、训练配方 |
| 本体论 / 知识图谱论文 | workflow / concept map / CQ list / risk matrix | 用例、能力问题、类关系、模式复用 |
| 企业报告 / 白皮书 | dashboard / case matrix / adoption funnel / roadmap | 关键数字、组织变化、案例分组、落地路径 |
| 方法论文 | process map / decision matrix / checklist | 步骤、判断条件、失败模式 |
CSS 变量规范:
:root {
--ink: #1d1d1f; /* 正文 */
--ink-muted: #6e6e73; /* 次要文字 */
--bg: #ffffff; /* 主背景 */
--bg-alt: #f5f5f7; /* 交替背景 */
--accent: #7b61ff; /* 强调色(仅用于标签/分割线/左侧条) */
--divider: rgba(0,0,0,0.08);
--quote-bg: #fafafa;
--case-bg: #f8f7ff; /* 案例研究淡紫背景 */
--case-border: rgba(123,97,255,0.2);
}布局节奏:
封面(100vh,渐变背景,顶部 4px 彩色细线)
├── eyebrow 标签(13px,大写,紫色)
├── h1 主标题(42-80px,letter-spacing: 0)
├── subtitle 副标题(18-26px,muted)
└── meta 作者/机构
章节区(section,800px 最大宽度居中,padding 80px)
├── 白底 / 浅灰底交替(section.alt)
├── chapter-num(13px 紫色小型大写)
├── chapter-title(32px 粗体)
├── chapter-sub(18px muted)
├── finding 块(finding-label + h3 + p)
├── blockquote(左侧 3px 紫条 + 浅灰背景 + 斜体)
├── case-study 框(淡紫背景 + 圆角 12px + 紫边框)
│ ├── case-label(11px 紫色小型大写)
│ ├── h4 案例标题
│ └── case-meta(13px muted)
├── table(无竖线,斑马纹,tabular-nums)
├── stat-bar(flex 数字瓷砖)
└── figure-panel(结构图 / 图表 / 矩阵)
附录区
├── KPI 对照表
├── 失败模式表
└── 尾注(小字号)
页脚(居中,分割线,muted 文字)排版关键参数:
font-size: 18px 基础字号line-height: 1.7-1.75 正文行高h2: 36px / h3: 24px / h4: 18pxletter-spacing: 0letter-spacing: 0.06em ~ 0.14emfont-size: 12px, letter-spacing: 0.06em硬规则:
border+radius+shadow+padding 四件套)font-variant-numeric: tabular-nums)输出路径:/Users/<user>/Desktop/<Document-Name>-zh.html
验证清单:
document.body.innerText.length > 原文 40%+(翻译充分)对于 50+ 页文档,不要一次性在 response 中生成全部 HTML:
write_file)</body>\n</html>)# patch 追加模式
patch(
path="output.html",
old_string="</body>\n</html>",
new_string="<!-- 新内容 -->\n</body>\n</html>"
)| 坑 | 症状 | 解法 |
|---|---|---|
| 搜索引擎 CAPTCHA | curl/browser 返回验证页面 | 直接访问机构网站,用站内搜索,或猜 URL |
| PDF 太大一次性写不下 | write_file 内容过长 | 分 2-3 次 patch 追加 |
| vision API 不可用 | 无法截图验证 | 用 browser_console 执行 JS 统计数据 |
| macOS grep 无 -P | grep 正则报错 | 用 Python re.findall 代替 |
| pdfplumber 在 sandbox 不可用 | execute_code 报 ModuleNotFoundError | 用 terminal 直接跑 python3 |
| 属性 | 值 |
|---|---|
| 输出格式 | 自包含单文件 HTML(CSS 内联) |
| 文件大小 | 通常 50-150KB(100+ 页原文) |
| 语言 | 中文(可配置) |
| 设计风格 | Apple WWDC 极简文档风 |
| 字体 | PingFang SC / Noto Sans SC / SF Pro Display |
| 响应式 | 是(768px 断点) |
| 依赖 | 零外部依赖(纯 HTML+CSS) |
| 可打印 | 是(@media print 可加) |
/Users/macbook/Desktop/Enterprise-AI-Playbook-zh.html — 斯坦福《企业 AI 实战手册》完整中文翻译版(116 页原文 → 70KB HTML,11 章 + 11 案例 + 附录)。
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.