A better Rust ATProto crate

added blacksky and catsky as embed processing domains

+8 -4
+8 -4
crates/jacquard/src/richtext.rs
··· 38 38 // Sanitization regex - removes soft hyphens, zero-width chars, normalizes newlines 39 39 // Matches one of the special chars, optionally followed by whitespace, repeated 40 40 // This ensures at least one special char is in the match (won't match pure spaces) 41 - static SANITIZE_NEWLINES_REGEX: LazyLock<Regex> = LazyLock::new(|| { 42 - Regex::new(r"([\r\n\u{00AD}\u{2060}\u{200D}\u{200C}\u{200B}]\s*)+").unwrap() 43 - }); 41 + static SANITIZE_NEWLINES_REGEX: LazyLock<Regex> = 42 + LazyLock::new(|| Regex::new(r"([\r\n\u{00AD}\u{2060}\u{200D}\u{200C}\u{200B}]\s*)+").unwrap()); 44 43 45 44 /// Default domains that support at-URI extraction from URLs 46 45 /// (bsky.app URL patterns like /profile/{actor}/post/{rkey}) 47 46 #[cfg(feature = "api_bluesky")] 48 - static DEFAULT_EMBED_DOMAINS: &[&str] = &["bsky.app", "deer.social"]; 47 + static DEFAULT_EMBED_DOMAINS: &[&str] = &[ 48 + "bsky.app", 49 + "deer.social", 50 + "blacksky.community", 51 + "catsky.social", 52 + ]; 49 53 50 54 /// Marker type indicating all facets are resolved (no handles pending DID resolution) 51 55 pub struct Resolved;