1
0
mirror of https://gitlab.com/Anson-Projects/projects.git synced 2025-09-14 09:35:04 +00:00
Files
Projects/ghost-upload
Anson ae1be54f8f fix: remove trailing slash from slugs to fix Ghost API lookup
- Strip trailing slashes from slugs in get_slug() function
- This prevents double slashes in the Ghost API URL which was causing
  get_existing_post_id() to fail and create duplicate posts
2025-08-22 11:01:38 -06:00
..

ghost-upload

This tool synchronizes posts from https://projects.ansonbiggs.com to the Ghost blog at https://notes.ansonbiggs.com.

Features

  • Automatic sync: Only uploads new posts by default
  • Content extraction: Fetches clean HTML content instead of using iframes
  • AI summaries: Uses Kagi Summarizer for post summaries
  • Force update: Manual trigger to update all existing posts

Usage

Normal Mode (Default)

cargo run

Only processes new posts that don't exist on the Ghost blog.

Force Update Mode

FORCE_UPDATE=true cargo run

Updates ALL posts, including existing ones. Useful for:

  • Updating content after changes
  • Refreshing summaries
  • Applying new styling/formatting

CI/CD Integration

The GitLab CI pipeline includes:

  • Automatic sync: Runs after each deployment
  • Manual force update: Available as a manual trigger in GitLab UI

Environment Variables

  • admin_api_key: Ghost Admin API key (required)
  • kagi_api_key: Kagi Summarizer API key (required)
  • FORCE_UPDATE: Set to "true" to update all posts (optional)