技能详情(站内镜像,无评论)
许可证:MIT-0
MIT-0 ·免费使用、修改和重新分发。无需归因。
版本:v1.0.0
统计:⭐ 0 · 2.4k · 2 current installs · 2 all-time installs
⭐ 0
安装量(当前) 2
🛡 VirusTotal :可疑 · OpenClaw :可疑
Package:ainekomacx/blog-to-kindle
安全扫描(ClawHub)
- VirusTotal :可疑
- OpenClaw :可疑
OpenClaw 评估
The skill mostly does what its name says (fetch blogs, build EPUB, send via Mail.app) but it omits required dependencies, mixes macOS-specific steps and keychain/API hints that are not declared, and includes a hard-coded third‑party Kindle email — these inconsistencies warrant caution.
目的
The name/description (scrape blogs → EPUB → Kindle) matches the included scripts. However the skill fails to declare required runtime pieces the scripts clearly need (pandoc binary, Python packages like httpx and BeautifulSoup, and a macOS Mail/osascript environment). The use of an external 'nano-banana-pro' skill for cover generation is expected for cover creation but is not declared as a dependency.
说明范围
SKILL.md and references/manual-workflow.md instruct actions beyond simple fetching/compiling: AppleScript via Mail.app (macOS-only) to send mail, manual keychain access in the cover-generation example (security find-generic-password to fetch GEMINI_API_KEY), and an instruction to always generate a cover via another skill. Those steps access system components (keychain, Mail.app) and call other skills/tools that are not listed as required, incr…
安装机制
There is no install spec (instruction-only) which lowers risk, but the package contains runnable Python scripts. The repository does not declare or install dependencies (httpx, bs4), nor does it declare that pandoc and osascript/Mail.app are required. Lack of declared dependencies is a usability and security concern because users may run scripts in an environment that behaves differently than expected.
证书
The skill declares no environment variables or credentials, yet the manual workflow shows retrieving GEMINI_API_KEY from keychain and the SKILL.md refers to `nano-banana-pro` (which likely needs an API key). The most notable red flag is the hard-coded default Kindle email (simonpilkington74_8oVjpj@kindle.com) embedded in documentation and scripts; that could cause accidental delivery to a third party if the user doesn't replace it. No other br…
持久
The skill is not always-enabled and does not request elevated privileges. State is written only to a user-scoped path (~/.clawdbot/state/blog-kindle/), which is reasonable for tracking fetch/sent status. It does not modify other skills or system-wide configuration.
安装(复制给龙虾 AI)
将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。
请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「Blog to Kindle」。简介:Scrape blogs/essay sites and compile into Kindle-friendly EPUB with AI-generate…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/ainekomacx/blog-to-kindle/SKILL.md
(来源:yingzhi8.cn 技能库)
SKILL.md
---
name: blog-to-kindle
description: Scrape blogs/essay sites and compile into Kindle-friendly EPUB with AI-generated cover. Use for requests to download blogs for Kindle, compile essays into ebook, or send blog archives to Kindle. Supports Paul Graham, Kevin Kelly, Derek Sivers, Wait But Why, Astral Codex Ten, and custom sites.
---
# Blog to Kindle
Scrape blog/essay sites, compile into EPUB with cover art, and deliver to Kindle.
## Quick Start
```bash
# 1. Fetch essays from a supported site
uv run scripts/fetch_blog.py --site paulgraham --output ./pg-essays
# 2. Generate cover (uses Nano Banana Pro)
# See nano-banana-pro skill for cover generation
# 3. Compile to EPUB with cover
uv run scripts/compile_epub.py --input ./pg-essays --cover ./cover.png --output essays.epub
# 4. Send to Kindle
uv run scripts/send_to_kindle.py --file essays.epub --kindle-email user@kindle.com
```
## Workflow (MUST follow this order)
1. **Fetch** - Download all essays/posts from the blog
2. **Generate Cover** - Create cover art via Nano Banana Pro skill (DO NOT SKIP)
3. **Compile** - Combine into EPUB with cover embedded
4. **Send** - Email to Kindle address
⚠️ **Always generate and include cover before sending.** Never send without cover.
## Supported Sites
| Site | Key | URL Pattern |
|------|-----|-------------|
| 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 |
For unlisted sites, use `--site custom --url <archive-url>`.
## Cover Generation
Use the `nano-banana-pro` skill to generate covers. Prompt template:
```
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.
```
Generate at 2K resolution for good quality without huge file size.
## Kindle Delivery
Default Kindle address (Simon): `simonpilkington74_8oVjpj@kindle.com`
Uses Mail.app via AppleScript to send. Ensure:
- Sender email is on Kindle approved list
- File under 50MB (EPUB compresses well)
## State Tracking
State files stored in `~/.clawdbot/state/blog-kindle/`:
- `{site}-last-fetch.json` - Last fetch timestamp, article count
- `{site}-sent.json` - List of sent article IDs
Use for incremental updates (only fetch new posts).
## Manual Workflow (no scripts)
If scripts unavailable, follow this pattern:
1. **Fetch**: curl archive page → parse article links → fetch each → convert to markdown
2. **Combine**: Concatenate markdown with YAML frontmatter (title, author)
3. **Cover**: Generate via Nano Banana Pro
4. **Convert**: `pandoc combined.md -o output.epub --epub-cover-image=cover.png --toc`
5. **Send**: AppleScript Mail.app with attachment
See `references/manual-workflow.md` for detailed steps.