# ghost-upload This tool synchronizes posts from https://projects.ansonbiggs.com to the Ghost blog at https://notes.ansonbiggs.com. ## Features - **Clean content extraction**: Uses Quarto ghost profile to generate clean HTML instead of iframes - **Duplicate prevention**: Checks Ghost Admin API to avoid creating duplicate posts - **AI summaries**: Uses Kagi Summarizer for post summaries - **Dual content rendering**: GitLab CI builds both main site and ghost-optimized versions ## How It Works 1. **Dual Build Process**: GitLab CI builds the site twice: - Main site → `public/` (normal theme with navigation) - Ghost content → `public/ghost-content/` (minimal theme for content extraction) 2. **Content Extraction**: Rust tool fetches clean HTML from the ghost-content version instead of using iframes 3. **Duplicate Detection**: Uses Ghost Admin API to check for existing posts by slug ## Environment Variables - `admin_api_key`: Ghost Admin API key (required) - `kagi_api_key`: Kagi Summarizer API key (required)