# 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
