webpage_quality_analyzer 1.0.2

High-performance webpage quality analyzer with 115 comprehensive metrics - Rust library with WASM, C++, and Python bindings
Documentation
//! String constants used throughout the application
//! Centralizing these avoids repeated allocations

/// Default profile name used throughout the system
pub const DEFAULT_PROFILE: &str = "content_article";

/// Profile name for unknown/fallback cases
pub const UNKNOWN_PROFILE: &str = "unknown";

/// Recommendation messages for SEO improvements
pub const RECOMMENDATION_ADD_CANONICAL: &str =
    "Add canonical URL tag to prevent duplicate content issues";
pub const RECOMMENDATION_ADD_VIEWPORT: &str = "Add viewport meta tag for mobile responsiveness";
pub const RECOMMENDATION_ADD_META_DESC: &str = "Add a meta description for better SEO";
pub const RECOMMENDATION_ADD_ALT_TEXT: &str =
    "Add descriptive alt text to all images for accessibility";
pub const RECOMMENDATION_SSL_HTTPS: &str = "Enable SSL/HTTPS for security";
pub const RECOMMENDATION_ADD_H1: &str = "Add an H1 heading to clearly define the page topic";
pub const RECOMMENDATION_HEADING_ORDER: &str =
    "Ensure heading levels follow logical order (H1 > H2 > H3...)";
pub const RECOMMENDATION_SIMPLIFY_HIERARCHY: &str = "Consider simplifying heading hierarchy";
pub const RECOMMENDATION_ADD_AUDIO: &str = "Add audio content as required by content type";
pub const RECOMMENDATION_ADD_VIDEO: &str = "Add video content as required by content type";
pub const RECOMMENDATION_VISUAL_BALANCE: &str =
    "Consider adding more visual content to balance text";
pub const RECOMMENDATION_MEDIA_SUPPORT_TEXT: &str =
    "Content is very media-heavy, ensure it supports the text";

/// Quality messages (currently unused but kept for potential future use)
pub const EXCELLENT_QUALITY_MSG: &str =
    "Excellent quality page with strong signals across all metrics.";
pub const GOOD_QUALITY_MSG: &str = "Good quality page with minor areas for improvement.";
pub const FAIR_QUALITY_MSG: &str = "Fair quality page with several opportunities for optimization.";
pub const POOR_QUALITY_MSG: &str = "Poor quality page requiring significant improvements.";

/// Error messages
pub const EMPTY_URL_ERROR: &str = "Empty URL provided";

/// Penalty types
pub const PENALTY_WORD_COUNT_DEFICIENCY: &str = "word_count_deficiency";
pub const PENALTY_MISSING_H1: &str = "missing_h1";
pub const PENALTY_INSUFFICIENT_HEADINGS: &str = "insufficient_headings";
pub const PENALTY_INSUFFICIENT_IMAGES: &str = "insufficient_images";
pub const PENALTY_POOR_ALT_TEXT: &str = "poor_alt_text_coverage";
pub const PENALTY_MISSING_META_DESC: &str = "missing_meta_description";

/// Media types
pub const MEDIA_TYPE_IMAGES: &str = "images";
pub const MEDIA_TYPE_AUDIO: &str = "audio";
pub const MEDIA_TYPE_VIDEO: &str = "video";

/// Element types
pub const ELEMENT_TITLE: &str = "title";
pub const ELEMENT_META_DESC: &str = "meta description";

/// Heading types
pub const HEADING_H1: &str = "H1";

/// Requirements
pub const REQUIREMENT_SSL_HTTPS: &str = "SSL/HTTPS";

/// Quality types
pub const QUALITY_CATEGORY_EXCELLENCE: &str = "category_excellence";

/// Reason messages
pub const REASON_MISSING_H1: &str = "Missing required H1 heading";
pub const REASON_META_DESC_REQUIRED: &str = "Meta description is required for SEO";

/// Recommendations (status messages)
pub const RECOMMENDATION_WORD_COUNT_OPTIMAL_ABOVE: &str =
    "Word count is above optimal but still useful";
pub const RECOMMENDATION_WORD_COUNT_ABOVE_RANGE: &str = "Word count is above optimal range";
pub const RECOMMENDATION_WORD_COUNT_OPTIMAL: &str = "Word count is within optimal range";

/// Issue descriptions
pub const ISSUE_HEADING_HIERARCHY_ILLOGICAL: &str =
    "Heading hierarchy is not logical (e.g., H3 before H2)";