230 lines
12 KiB
TOML
230 lines
12 KiB
TOML
![]() |
# 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
|