正文内容
博客转 Kindle
抓取博客/散文网站内容,生成带封面的 EPUB 文件,并推送至 Kindle 设备。
快速开始
# 1. 从受支持的站点获取散文文章 uv run scripts/fetch_blog.py --site paulgraham --output ./pg-essays # 2. 生成封面(使用 Nano Banana Pro) # 封面生成请参阅 nano-banana-pro 技能说明 # 3. 使用封面编译为 EPUB uv run scripts/compile_epub.py --input ./pg-essays --cover ./cover.png --output essays.epub # 4. 发送至 Kindle uv run scripts/send_to_kindle.py --file essays.epub --kindle-email user@kindle.com
工作流(必须严格按此顺序执行)
- Fetch(抓取) —— 从博客下载全部散文/文章
- Generate Cover(生成封面) —— 通过 nano-banana-pro 技能生成封面(不可跳过)
- Compile(编译) —— 将内容与封面整合为嵌入式封面的 EPUB 文件
- Send(发送) —— 邮件发送至 Kindle 邮箱地址
⚠️ 务必在发送前完成封面生成并嵌入 EPUB。禁止无封面发送。
支持的网站
| 网站 | 标识符(Key) | URL 模式 |
|---|---|---|
| Paul Graham | paulgraham |
paulgraham.com/articles.html |
| Kevin Kelly | kevinkelly |
kk.org/thetechnium |
| Derek Sivers | sivers |
sive.rs/blog |
| Wait But Why | waitbutwhy |
waitbutwhy.com/archive |
| Astral Codex Ten | acx |
astralcodexten.com |
对于未列出的网站,请使用 --site custom --url 参数。
封面生成
使用 nano-banana-pro 技能生成封面。推荐提示词模板如下:
Book cover for '[Author Name]: [Subtitle]'. Minimalist design with elegant typography. [Brand color] accent. Clean white/cream background. Simple geometric or abstract motif related to [topic]. Professional literary feel. No photos, no faces. Portrait orientation book cover dimensions.
建议输出分辨率为 2K,兼顾画质与文件体积。
Kindle 推送
默认 Kindle 地址(Simon):simonpilkington74_8oVjpj@kindle.com
通过 AppleScript 调用 macOS Mail.app 发送邮件。请确保:
- 发件邮箱已在 Kindle 的“已批准的发件人列表”中;
- 附件大小不超过 50MB(EPUB 格式压缩效果良好)。
状态追踪
状态文件存于 ~/.clawdbot/state/blog-kindle/ 目录下:
-
{site}-last-fetch.json—— 上次抓取时间戳及文章总数 -
{site}-sent.json—— 已发送文章 ID 列表
可用于增量更新(仅抓取新增文章)。
手动工作流(不依赖脚本)
若脚本不可用,请按以下步骤操作:
-
Fetch(抓取):
curl获取归档页 → 解析文章链接 → 逐条抓取 → 转换为 Markdown -
Combine(合并):拼接所有 Markdown 文件,并添加 YAML 前置元数据(含
title、author等字段) - Cover(封面):使用 Nano Banana Pro 生成封面
-
Convert(转换):
pandoc combined.md -o output.epub --epub-cover-image=cover.png --toc - Send(发送):通过 AppleScript 调用 Mail.app 发送带附件的邮件
详细步骤请参阅 references/manual-workflow.md。