230 lines
12 KiB
TOML
Raw Normal View History

2025-07-07 23:13:01 +01:00
# Content Feature Configuration - Example Environment
# Complete documentation of all content management options
[features]
content = true
[content]
enabled = true
content_dir = "content" # Directory for content storage
cache_enabled = true # Enable content caching
cache_ttl = 3600 # Cache TTL in seconds (1 hour)
max_file_size = 52428800 # Maximum file size in bytes (50MB)
max_files_per_upload = 10 # Maximum files per upload request
allowed_file_types = [ # Allowed file extensions
"md", "txt", "html", "css", "js",
"json", "toml", "yaml", "yml",
"jpg", "jpeg", "png", "gif", "webp",
"svg", "pdf", "doc", "docx"
]
blocked_file_types = [ # Blocked file extensions for security
"exe", "bat", "cmd", "com", "scr",
"pif", "vbs", "js", "jar", "sh"
]
scan_uploads = true # Scan uploaded files for malware
quarantine_suspicious = true # Quarantine suspicious files
[content.markdown]
enabled = true # Enable Markdown processing
parser = "pulldown-cmark" # Markdown parser to use
syntax_highlighting = true # Enable code syntax highlighting
highlight_theme = "github" # Syntax highlighting theme
math_support = true # Enable LaTeX math rendering
math_renderer = "katex" # Math rendering engine
table_of_contents = true # Generate table of contents
auto_links = true # Automatically link URLs
smart_punctuation = true # Enable smart punctuation
footnotes = true # Enable footnotes
strikethrough = true # Enable strikethrough text
tasklists = true # Enable task lists
tables = true # Enable tables
heading_anchors = true # Generate heading anchors
[content.media]
enabled = true # Enable media file handling
max_image_size = 10485760 # Maximum image size (10MB)
max_video_size = 104857600 # Maximum video size (100MB)
max_audio_size = 20971520 # Maximum audio size (20MB)
image_processing = true # Enable image processing
thumbnail_generation = true # Generate thumbnails
thumbnail_sizes = [150, 300, 600] # Thumbnail sizes in pixels
image_optimization = true # Optimize images on upload
video_processing = false # Enable video processing (resource intensive)
allowed_image_types = [ # Allowed image formats
"jpg", "jpeg", "png", "gif", "webp", "svg"
]
allowed_video_types = [ # Allowed video formats
"mp4", "webm", "ogg", "avi", "mov"
]
allowed_audio_types = [ # Allowed audio formats
"mp3", "ogg", "wav", "flac", "aac"
]
[content.versioning]
enabled = true # Enable content versioning
max_versions = 10 # Maximum versions to keep per content
auto_save_enabled = true # Enable auto-save functionality
auto_save_interval = 30 # Auto-save interval in seconds
version_comparison = true # Enable version comparison
restore_versions = true # Allow version restoration
version_metadata = true # Store version metadata
[content.publishing]
draft_mode = true # Enable draft mode
scheduled_publishing = true # Enable scheduled publishing
approval_workflow = true # Require approval for publishing
approval_roles = ["editor", "admin"] # Roles that can approve content
publish_notifications = true # Send notifications on publish
unpublish_capability = true # Allow unpublishing content
bulk_operations = true # Enable bulk operations
content_templates = true # Enable content templates
[content.search]
enabled = true # Enable content search
full_text_search = true # Enable full-text search
search_engine = "tantivy" # Search engine to use
index_content = true # Index content for search
index_metadata = true # Index metadata for search
search_highlights = true # Enable search result highlights
fuzzy_search = true # Enable fuzzy search
search_suggestions = true # Enable search suggestions
search_filters = true # Enable search filters
[content.categories]
enabled = true # Enable content categories
hierarchical_categories = true # Allow nested categories
max_category_depth = 5 # Maximum category nesting depth
category_slugs = true # Generate category slugs
category_descriptions = true # Allow category descriptions
category_images = true # Allow category images
auto_categorization = false # Enable auto-categorization
[content.tags]
enabled = true # Enable content tags
max_tags_per_content = 20 # Maximum tags per content item
tag_suggestions = true # Enable tag suggestions
tag_autocomplete = true # Enable tag autocomplete
tag_cloud = true # Enable tag cloud generation
tag_popularity = true # Track tag popularity
tag_synonyms = true # Enable tag synonyms
[content.comments]
enabled = true # Enable comments system
moderation_required = true # Require comment moderation
spam_filtering = true # Enable spam filtering
comment_voting = true # Enable comment voting
nested_comments = true # Allow nested comments
max_comment_depth = 3 # Maximum comment nesting depth
comment_formatting = "markdown" # Comment formatting (markdown, html, plain)
comment_notifications = true # Send comment notifications
[content.seo]
enabled = true # Enable SEO features
meta_tags = true # Generate meta tags
open_graph = true # Generate Open Graph tags
twitter_cards = true # Generate Twitter Card tags
structured_data = true # Generate structured data
sitemaps = true # Generate sitemaps
robots_txt = true # Generate robots.txt
canonical_urls = true # Generate canonical URLs
breadcrumbs = true # Generate breadcrumbs
[content.analytics]
enabled = true # Enable content analytics
page_views = true # Track page views
popular_content = true # Track popular content
user_engagement = true # Track user engagement
reading_time = true # Calculate reading time
content_performance = true # Track content performance
analytics_retention = 90 # Analytics data retention in days
[content.backup]
enabled = true # Enable content backup
backup_schedule = "0 2 * * *" # Backup schedule (daily at 2 AM)
backup_retention = 30 # Backup retention in days
backup_format = "zip" # Backup format (zip, tar, json)
backup_location = "backups/content" # Backup storage location
incremental_backup = true # Enable incremental backups
backup_verification = true # Verify backup integrity
[content.performance]
lazy_loading = true # Enable lazy loading
image_lazy_loading = true # Enable image lazy loading
content_compression = true # Enable content compression
cdn_integration = false # Enable CDN integration
cache_headers = true # Set appropriate cache headers
preload_critical = true # Preload critical resources
minify_html = true # Minify HTML output
minify_css = true # Minify CSS output
minify_js = true # Minify JavaScript output
[content.security]
content_sanitization = true # Enable content sanitization
xss_protection = true # Enable XSS protection
csrf_protection = true # Enable CSRF protection
rate_limiting = true # Enable rate limiting
upload_scanning = true # Scan uploaded files
virus_scanning = false # Enable virus scanning (requires ClamAV)
content_validation = true # Validate content structure
permission_checks = true # Enforce permission checks
[content.api]
enabled = true # Enable content API
rest_api = true # Enable REST API
graphql_api = false # Enable GraphQL API
api_authentication = true # Require API authentication
api_rate_limiting = true # Enable API rate limiting
api_versioning = true # Enable API versioning
api_documentation = true # Generate API documentation
webhook_support = true # Enable webhook support
[content.export]
enabled = true # Enable content export
export_formats = ["json", "xml", "csv"] # Supported export formats
bulk_export = true # Enable bulk export
scheduled_export = true # Enable scheduled export
export_filtering = true # Enable export filtering
export_compression = true # Compress exported files
export_encryption = false # Encrypt exported files
[content.import]
enabled = true # Enable content import
import_formats = ["json", "xml", "csv", "markdown"] # Supported import formats
bulk_import = true # Enable bulk import
import_validation = true # Validate imported content
import_preview = true # Enable import preview
import_rollback = true # Enable import rollback
duplicate_handling = "skip" # How to handle duplicates (skip, overwrite, merge)
[content.workflows]
enabled = true # Enable content workflows
custom_workflows = true # Allow custom workflows
workflow_automation = true # Enable workflow automation
workflow_notifications = true # Send workflow notifications
workflow_history = true # Track workflow history
parallel_workflows = false # Enable parallel workflows
workflow_conditions = true # Enable workflow conditions
workflow_approvals = true # Enable workflow approvals
[content.localization]
enabled = false # Enable content localization
default_language = "en" # Default language
supported_languages = ["en", "es", "fr", "de"] # Supported languages
auto_translation = false # Enable automatic translation
translation_service = "google" # Translation service to use
rtl_support = false # Enable right-to-left language support
language_detection = true # Enable language detection
fallback_language = "en" # Fallback language
[content.monitoring]
enabled = true # Enable content monitoring
error_tracking = true # Track content errors
performance_monitoring = true # Monitor content performance
uptime_monitoring = true # Monitor content availability
alert_thresholds = [ # Alert thresholds
{ name = "error_rate", value = 5.0, unit = "%" }, # Error rate threshold (%)
{ name = "response_time", value = 2000, unit = "ms" }, # Response time threshold (ms)
{ name = "disk_usage", value = 80.0, unit = "%" } # Disk usage threshold (%)
]
notification_channels = ["email", "slack"] # Notification channels