# Content Management Feature Configuration # Settings for the database-backed content management system [features] content_db = true # Content Management Configuration [content] enabled = true content_dir = "content" cache_enabled = true cache_ttl = 3600 # seconds max_file_size = 5242880 # 5MB auto_save_interval = 30 # seconds enable_versioning = true max_versions = 10 # Content Types [content.types] # Supported content types and their configurations [content.types.article] enabled = true template = "article.hbs" slug_prefix = "articles" allow_comments = true enable_seo = true max_length = 50000 [content.types.page] enabled = true template = "page.hbs" slug_prefix = "pages" allow_comments = false enable_seo = true max_length = 100000 [content.types.blog_post] enabled = true template = "blog_post.hbs" slug_prefix = "blog" allow_comments = true enable_seo = true max_length = 30000 enable_series = true # Markdown Configuration [content.markdown] enable_syntax_highlighting = true theme = "github" enable_tables = true enable_strikethrough = true enable_autolinks = true enable_task_lists = true enable_footnotes = true enable_math = false heading_anchors = true code_block_line_numbers = true # SEO Configuration [content.seo] auto_generate_meta = true default_meta_description_length = 160 auto_generate_og_tags = true enable_json_ld = true sitemap_enabled = true sitemap_path = "/sitemap.xml" robots_txt_enabled = true # Content Publishing [content.publishing] auto_publish = false require_review = true enable_drafts = true enable_scheduling = true default_status = "draft" # "draft", "published", "scheduled", "archived" # Content Categories and Tags [content.taxonomy] enable_categories = true max_categories_per_content = 5 enable_tags = true max_tags_per_content = 20 enable_hierarchical_categories = true # Media Management [content.media] enabled = true upload_dir = "uploads/content" allowed_extensions = ["jpg", "jpeg", "png", "gif", "webp", "svg", "pdf", "doc", "docx"] max_file_size = 10485760 # 10MB enable_image_optimization = true generate_thumbnails = true thumbnail_sizes = [150, 300, 600, 1200] # Image Processing [content.media.images] auto_optimize = true quality = 85 progressive_jpeg = true strip_metadata = true enable_webp_conversion = true enable_lazy_loading = true # Content Search [content.search] enabled = true search_engine = "database" # "database", "elasticsearch", "algolia" index_content = true index_metadata = true search_fields = ["title", "content", "excerpt", "tags", "categories"] min_search_length = 3 max_results = 50 # Full-text Search Configuration [content.search.fulltext] enable_stemming = true enable_fuzzy_search = true fuzzy_distance = 2 boost_title = 2.0 boost_tags = 1.5 boost_categories = 1.3 # Content Cache [content.cache] enable_redis = false redis_url = "redis://localhost:6379" redis_prefix = "content:" cache_rendered_content = true cache_search_results = true search_cache_ttl = 300 # 5 minutes # Content API [content.api] enabled = true enable_public_api = true enable_admin_api = true api_prefix = "/api/content" rate_limit_per_minute = 100 require_auth_for_write = true enable_bulk_operations = true # Content Backup [content.backup] enabled = true backup_interval = 86400 # 24 hours backup_retention_days = 30 backup_dir = "backups/content" include_media = true compress_backups = true # Content Workflows [content.workflows] enabled = false require_approval = false approval_roles = ["editor", "admin"] notification_on_submission = true notification_on_approval = true auto_notify_authors = true # Content Comments [content.comments] enabled = true require_approval = false enable_replies = true max_nesting_level = 3 enable_voting = true enable_email_notifications = true anti_spam_enabled = true # Content Analytics [content.analytics] track_views = true track_reading_time = true track_popular_content = true analytics_retention_days = 90 enable_heatmaps = false # RSS/Atom Feeds [content.feeds] enabled = true rss_enabled = true atom_enabled = true feed_title = "Rustelo Content Feed" feed_description = "Latest content from Rustelo" max_items = 20 include_full_content = false # Content Import/Export [content.import_export] enabled = true supported_formats = ["markdown", "html", "json", "xml"] enable_bulk_import = true enable_export = true export_formats = ["markdown", "json", "pdf"] # Content Security [content.security] enable_content_sanitization = true allowed_html_tags = ["p", "br", "strong", "em", "ul", "ol", "li", "h1", "h2", "h3", "h4", "h5", "h6", "blockquote", "code", "pre"] enable_xss_protection = true enable_csrf_protection = true max_content_length = 1000000 # 1MB # Content Localization [content.i18n] enabled = false default_language = "en" supported_languages = ["en", "es", "fr", "de"] fallback_to_default = true auto_detect_language = false # Performance Optimization [content.performance] enable_lazy_loading = true enable_pagination = true default_page_size = 20 max_page_size = 100 enable_content_compression = true minify_html = false