# UI Management - Pages and Components # Rustelo UI management commands for pages, components, and routes # ============================================================================= # HELP # ============================================================================= # Show all UI management options h: @echo "🎨 UI Management - Pages & Components" @echo "" @echo "📄 PAGE MANAGEMENT:" @echo " just ui pages-list # List all generated page components" @echo " just ui pages-info # Detailed page component information" @echo " just ui pages-rebuild # Force rebuild all page components" @echo " just ui pages-cache # Show page cache status" @echo "" @echo "🧩 COMPONENT MANAGEMENT:" @echo " just ui components-list # List available components" @echo " just ui components-foundation # List foundation components" @echo " just ui components-local # List local components" @echo "" @echo "🛣️ ROUTES MANAGEMENT:" @echo " just ui routes-list # List all configured routes" @echo " just ui routes-by-lang # Show routes by language" @echo " just ui routes-enabled # Show only enabled routes" @echo " just ui routes-info # Detailed info for specific route" @echo " just ui routes-validate # Validate all route configurations" @echo "" @echo "🔧 DEVELOPMENT TOOLS:" @echo " just ui check-generated # Check all generated code" @echo " just ui debug-level <0-2> # Set debug level (0=off, 1=basic, 2=verbose)" @echo " just ui foundation-discover # Discover available foundation components" @echo " just ui build-with-debug # Build with debug output" @echo "" @echo "Example usage:" @echo " just ui h # Show this help" @echo " just ui routes-list # List all routes" @echo " just ui debug-level 2 # Enable verbose debug output" # ============================================================================= # PAGE MANAGEMENT # ============================================================================= # List all generated page components pages-list: @echo "📄 Generated Page Components:" @echo "" @if [ -d "target/rustelo-cache/pages" ]; then \ ls -la target/rustelo-cache/pages/page_*.rs 2>/dev/null | \ awk '{printf " %-25s %s %s %s\n", $9, $6, $7, $8}' | \ sed 's|target/rustelo-cache/pages/page_||g' | \ sed 's|\.rs||g' || echo " No generated pages found"; \ else \ echo " ❌ Cache directory not found. Run 'just build' first."; \ fi @echo "" @echo "📊 Summary:" @find target/rustelo-cache/pages -name "page_*.rs" 2>/dev/null | wc -l | xargs printf " Total generated pages: %d\n" # Show detailed page component information pages-info: @echo "📄 Detailed Page Component Information:" @echo "" @bash scripts/dev/check-generated.sh # Force rebuild all page components pages-rebuild: @echo "🔄 Rebuilding all page components..." @cargo clean -p website-pages @cargo build --package website-pages @echo "✅ Page components rebuilt successfully" # Show page cache status pages-cache: @echo "💾 Page Cache Status:" @echo "" @echo "📂 Cache locations:" @echo " - Generated components: target/rustelo-cache/pages/" @echo " - Build output: target/debug/build/website-pages-*/out/" @echo "" @if [ -d "target/rustelo-cache/pages" ]; then \ echo "📊 Cache contents:"; \ find target/rustelo-cache/pages -name "*.rs" -printf " - %f (%TY-%Tm-%Td %TH:%TM)\n" 2>/dev/null | sort; \ else \ echo "❌ No cache found. Run 'just build' first."; \ fi # ============================================================================= # COMPONENT MANAGEMENT # ============================================================================= # List available components components-list: @echo "🧩 Available Components:" @echo "" @echo "🏗️ Foundation Components:" @cargo rustelo fn list -f component 2>/dev/null | head -20 || echo " Run 'cargo build' first to see components" @echo "" @echo "📁 Local Components:" @find crates/components/src -name "*.rs" -not -name "mod.rs" -not -name "lib.rs" 2>/dev/null | \ sed 's|.*/||g' | sed 's|\.rs||g' | sort | sed 's/^/ - /' || echo " No local components found" # List foundation components components-foundation: @echo "🏗️ Foundation Components Discovery:" @echo "" @cargo rustelo fn list -f component --format table 2>/dev/null || echo "❌ Foundation discovery failed. Check rustelo CLI setup." # List local components components-local: @echo "📁 Local Components:" @echo "" @find crates -name "*.rs" -path "*/components/*" -not -name "mod.rs" -not -name "lib.rs" | \ while read file; do \ component=$(basename "$file" .rs); \ echo " - $component ($(dirname "$file"))"; \ done # ============================================================================= # ROUTES MANAGEMENT (with nushell commands) # ============================================================================= # List all configured routes [no-cd] routes-list: #!/usr/bin/env bash echo "🛣️ All Configured Routes:" echo "" for file in site/config/routes/*.toml; do if [ -f "$file" ]; then lang=$(basename "$file" .toml) echo "📁 $lang.toml routes" echo " Use 'just ui routes-enabled' for detailed view" echo "" fi done # Show routes by language routes-by-lang: #!/usr/bin/env nu echo "🌐 Routes by Language:" echo "" let route_files = (ls site/config/routes/*.toml) for file in $route_files { let lang = ($file.name | path basename | str replace ".toml" "") let routes = (open $file.name | get routes? | default []) let enabled_count = ($routes | where enabled | length) let total_count = ($routes | length) echo $"🗣️ ($lang | str upcase) Language: ($enabled_count)/($total_count) enabled" let enabled_routes = ($routes | where enabled) for route in $enabled_routes { let component = ($route.component? | default "Unknown") let path_info = ($route.path? | default "/") echo $" - ($component) -> ($path_info)" } echo "" } # Show only enabled routes routes-enabled: #!/usr/bin/env nu echo "✅ Enabled Routes Only:" echo "" let route_files = (ls site/config/routes/*.toml) for file in $route_files { let lang = ($file.name | path basename | str replace ".toml" "") let routes = (open $file.name | get routes? | default []) let enabled_routes = ($routes | where enabled) if ($enabled_routes | length) > 0 { echo $"📁 ($lang):" for route in $enabled_routes { let component = ($route.component? | default "Unknown") let path_info = ($route.path? | default "/") let unified = ($route.unified_component? | default $"Unified($component)Page") echo $" 🎯 ($component) -> ($path_info) (unified: ($unified))" } echo "" } } # Get detailed info for specific route routes-info route: #!/usr/bin/env nu let search_route = "{{route}}" echo $"🔍 Route Information for: ($search_route)" echo "" let route_files = (ls site/config/routes/*.toml) mut found = false for file in $route_files { let lang = ($file.name | path basename | str replace ".toml" "") let routes = (open $file.name | get routes? | default []) for route in $routes { let component = ($route.component? | default "") if ($component | str contains $search_route) { $found = true echo $"📍 Found in ($lang).toml:" echo $" Component: ($route.component? | default 'Unknown')" echo $" Path: ($route.path? | default '/')" echo $" Enabled: ($route.enabled)" echo $" Unified: ($route.unified_component? | default 'Auto-generated')" echo $" Language: ($route.language? | default $lang)" let description = ($route.description? | default "") if $description != "" { echo $" Description: ($description)" } echo "" } } } if not $found { echo $"❌ Route '($search_route)' not found in any configuration file" } # Validate all route configurations routes-validate: #!/usr/bin/env nu echo "🔧 Validating Route Configurations:" echo "" let route_files = (ls site/config/routes/*.toml) mut errors = 0 for file in $route_files { let lang = ($file.name | path basename | str replace ".toml" "") echo $"📄 Validating ($lang).toml..." try { let routes = (open $file.name | get routes? | default []) let enabled_routes = ($routes | where enabled) echo $" ✅ Parsed successfully: ($routes | length) total, ($enabled_routes | length) enabled" # Check for required fields for route in $enabled_routes { let component = ($route.component? | default "") if $component == "" { echo $" ⚠️ Route missing component field" $errors = ($errors + 1) } } } catch { |err| echo $" ❌ Parse error: ($err.msg)" $errors = ($errors + 1) } } echo "" if $errors == 0 { echo "🎉 All route configurations are valid!" } else { echo $"❌ Found ($errors) configuration errors" } # ============================================================================= # DEVELOPMENT TOOLS # ============================================================================= # Check all generated code check-generated: @echo "🔍 Checking All Generated Code:" @echo "" @bash scripts/dev/check-generated.sh # Set debug level (0=off, 1=basic, 2=verbose) debug-level level: #!/usr/bin/env nu let new_level = {{level}} # Validate level if $new_level not-in [0, 1, 2] { echo "❌ Invalid debug level. Use 0 (off), 1 (basic), or 2 (verbose)" exit 1 } echo $"🔧 Setting debug level to ($new_level)..." # Update manifest file let manifest_content = (open rustelo.manifest.toml) let updated_manifest = ($manifest_content | upsert build.debug $new_level) $updated_manifest | to toml | save rustelo.manifest.toml let level_desc = match $new_level { 0 => "off - minimal output" 1 => "basic - essential info only" 2 => "verbose - full debug information" } echo $"✅ Debug level set to ($new_level) (($level_desc))" echo "" echo "🔄 Rebuild to see changes:" echo " cargo clean -p website-pages && cargo build" # Discover available foundation components foundation-discover: @echo "🏗️ Foundation Component Discovery:" @echo "" @cargo rustelo fn list --format table 2>/dev/null || echo "❌ Foundation discovery unavailable. Check rustelo CLI setup." # Build with debug output build-with-debug: @echo "🔨 Building with Debug Output:" @echo "" @cargo build --package website-pages @echo "" @echo "📊 Generated components available in target/rustelo-cache/pages/"