← ClaudeAtlas

extension-content-feedslisted

RssFeedProvider and SitemapProvider trait implementations for SEO and content syndication
systempromptio/systemprompt-template · ★ 14 · AI & Automation · score 70
Install: claude install-skill systempromptio/systemprompt-template
# Extension: Content Feeds Feed providers generate RSS feeds and XML sitemaps for search engine optimization and content syndication. All traits live in `crates/shared/provider-contracts/src/`. --- ## 1. RssFeedProvider Generates RSS 2.0 feeds from content sources. ### Trait ```rust #[async_trait] pub trait RssFeedProvider: Send + Sync { fn feed_specs(&self) -> Vec<RssFeedSpec>; async fn feed_metadata(&self, ctx: &dyn RssFeedContext) -> Result<RssFeedMetadata>; async fn fetch_items(&self, ctx: &dyn RssFeedContext, limit: usize) -> Result<Vec<RssFeedItem>>; } ``` ### Feed Spec Fields | Field | Type | Description | |-------|------|-------------| | `source` | String | Content source to query | | `path` | String | URL path for the feed (e.g., `/feed.xml`) | | `limit` | usize | Maximum items in feed | ### Registration ```rust impl Extension for MyExtension { fn rss_feed_providers(&self) -> Vec<Arc<dyn RssFeedProvider>> { vec![Arc::new(BlogRssFeedProvider)] } } ``` --- ## 2. SitemapProvider Generates XML sitemaps for search engine indexing. ### Trait ```rust #[async_trait] pub trait SitemapProvider: Send + Sync { fn source_specs(&self) -> Vec<SitemapSourceSpec>; fn static_urls(&self, base_url: &str) -> Vec<SitemapUrlEntry>; async fn resolve_placeholders( &self, ctx: &dyn SitemapContext, content: &[ContentItem], placeholders: &[String], ) -> Result<Vec<SitemapUrlEntry>>; } ``` ### Sitemap URL