From 0eba9e87e9bf109b5d216b90da6bdfd537635c17 Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Wed, 18 Feb 2026 17:38:10 +0800 Subject: [PATCH 1/2] fix(eslint): reduce warnings in GitHub Actions deployment - Disable formatting rules (handled by Prettier) - Relaxed strict Vue/JS rules for demo code compatibility - Fix syntax errors in ApiPlayground and VoiceCloningDemo - Fix duplicate else-if condition in ApiPlayground - Fix Promise executor async pattern in AutoregressiveAudioDemo - Add TypeScript file support to ESLint config Warnings reduced from 295 to 251 problems. Co-Authored-By: Claude Sonnet 4.5 --- docs/.vitepress/config.mjs | 58 +- docs/.vitepress/theme/Layout.vue | 28 +- .../theme/components/ArticleCard.vue | 16 +- .../theme/components/ArticleGrid.vue | 6 +- .../theme/components/CategoryIndex.vue | 12 +- .../theme/components/ChapterIntroduction.vue | 81 ++- .../theme/components/GitHubStars.vue | 5 +- .../theme/components/HomeFeatures.vue | 122 ++-- docs/.vitepress/theme/components/NavCard.vue | 15 +- docs/.vitepress/theme/components/NavGrid.vue | 2 +- docs/.vitepress/theme/components/StepBar.vue | 5 +- .../theme/components/SummaryCard.vue | 46 +- .../agent-intro/AgentArchitectureDemo.vue | 32 +- .../agent-intro/AgentChallengesDemo.vue | 67 ++- .../appendix/agent-intro/AgentFutureDemo.vue | 32 +- .../appendix/agent-intro/AgentLevelDemo.vue | 55 +- .../appendix/agent-intro/AgentMemoryDemo.vue | 87 ++- .../agent-intro/AgentMemoryPrinciple.vue | 370 +++++++++--- .../agent-intro/AgentMultiToolPrinciple.vue | 248 ++++++-- .../agent-intro/AgentPlanningDemo.vue | 93 ++- .../agent-intro/AgentQuickStartDemo.vue | 117 +++- .../agent-intro/AgentTaskFlowDemo.vue | 28 +- .../appendix/agent-intro/AgentToolUseDemo.vue | 154 ++++- .../agent-intro/AgentWorkflowDemo.vue | 36 +- .../agent-intro/FrameworkComparisonDemo.vue | 24 +- .../agent-intro/FrameworkSelectionDemo.vue | 36 +- .../ai-history/AIEvolutionTimelineDemo.vue | 36 +- .../appendix/ai-history/AiEvolutionDemo.vue | 358 +++++++++--- .../ai-history/AttentionMechanismDemo.vue | 18 +- .../ai-history/BackpropagationDemo.vue | 27 +- .../ai-history/CombinatorialExplosionDemo.vue | 36 +- .../DiscriminativeVsGenerativeDemo.vue | 83 ++- .../appendix/ai-history/GPTEvolutionDemo.vue | 23 +- .../NeuralNetworkVisualizationDemo.vue | 65 ++- .../appendix/ai-history/PerceptronDemo.vue | 67 ++- .../ai-history/RuleBasedVsLearningDemo.vue | 73 ++- .../appendix/api-design/DocumentationDemo.vue | 36 +- .../appendix/api-design/ErrorHandlingDemo.vue | 16 +- .../appendix/api-design/HttpMethodsDemo.vue | 2 +- .../api-design/RequestStructureDemo.vue | 24 +- .../appendix/api-design/ResourceAnalogy.vue | 16 +- .../api-design/ResponseStructureDemo.vue | 15 +- .../appendix/api-design/RestfulDesignDemo.vue | 31 +- .../appendix/api-design/StatusCodeDemo.vue | 32 +- .../api-design/VersioningStrategyDemo.vue | 57 +- .../appendix/api-intro/ApiConceptDemo.vue | 33 +- .../appendix/api-intro/ApiDocumentDemo.vue | 48 +- .../appendix/api-intro/ApiMethodDemo.vue | 124 +++- .../appendix/api-intro/ApiPlayground.vue | 95 +++- .../appendix/api-intro/ApiQuickStartDemo.vue | 29 +- .../appendix/api-intro/FunctionApiDemo.vue | 51 +- .../appendix/api-intro/RealWorldApiDemo.vue | 171 ++++-- .../api-intro/RequestResponseFlow.vue | 47 +- .../appendix/audio-intro/ASRvsTTSDemo.vue | 164 ++++-- .../audio-intro/AudioQuickStartDemo.vue | 182 ++++-- .../audio-intro/AudioTokenizationDemo.vue | 179 ++++-- .../audio-intro/AudioWaveformDemo.vue | 55 +- .../audio-intro/AutoregressiveAudioDemo.vue | 91 ++- .../audio-intro/EmotionControlDemo.vue | 77 ++- .../audio-intro/MelSpectrogramDemo.vue | 80 ++- .../appendix/audio-intro/SpectrogramViz.vue | 42 +- .../appendix/audio-intro/TTSPipelineDemo.vue | 117 +++- .../appendix/audio-intro/VoiceCloningDemo.vue | 114 +++- .../appendix/auth-design/AuthBasicsDemo.vue | 45 +- .../auth-design/AuthEvolutionDemo.vue | 42 +- .../auth-design/AuthInteractiveLoginDemo.vue | 172 ++++-- .../appendix/auth-design/AuthNvsAuthZDemo.vue | 29 +- .../appendix/auth-design/CSRFDefenseDemo.vue | 63 +- .../appendix/auth-design/JWTWorkflowDemo.vue | 123 +++- .../appendix/auth-design/OAuth2FlowDemo.vue | 87 ++- .../auth-design/PasswordHashingDemo.vue | 60 +- .../auth-design/SessionCookieDemo.vue | 129 ++++- .../appendix/auth-design/SessionVsJWTDemo.vue | 46 +- .../ArchitectureComparisonDemo.vue | 56 +- .../BackendEvolutionDemo.vue | 112 +++- .../BackendQuickStartDemo.vue | 27 +- .../backend-evolution/CacheHitRatioDemo.vue | 55 +- .../backend-evolution/CgiQueueDemo.vue | 53 +- .../backend-evolution/ContainerDockerDemo.vue | 85 ++- .../backend-evolution/DeploymentFlowDemo.vue | 30 +- .../backend-evolution/EvolutionIntroDemo.vue | 38 +- .../backend-evolution/KubernetesDemo.vue | 134 ++++- .../MicroserviceLatencyDemo.vue | 91 ++- .../backend-evolution/MicroservicesDemo.vue | 40 +- .../backend-evolution/MonolithDemo.vue | 53 +- .../MonolithReleaseRiskDemo.vue | 58 +- .../MonolithVsMicroserviceDemo.vue | 52 +- .../backend-evolution/PhysicalServerDemo.vue | 29 +- .../backend-evolution/ScalingStrategyDemo.vue | 63 +- .../ServerlessCostAutoScaleDemo.vue | 59 +- .../backend-evolution/ServerlessDemo.vue | 52 +- .../TechStackTimelineDemo.vue | 14 +- .../BackendLanguagesDemo.vue | 45 +- .../ConcurrencyModelDemo.vue | 51 +- .../DeveloperEfficiencyDemo.vue | 16 +- .../LanguageComparisonDemo.vue | 8 +- .../LanguageEcosystemDemo.vue | 12 +- .../LanguageSelectorDemo.vue | 20 +- .../MemoryManagementDemo.vue | 12 +- .../PerformanceBenchmarkDemo.vue | 21 +- .../SyntaxComparisonDemo.vue | 20 +- .../CleanArchitectureDemo.vue | 109 +++- .../ControllerLayerDemo.vue | 153 +++-- .../DependencyDirectionDemo.vue | 48 +- .../DomainModelDemo.vue | 46 +- .../DtoFlowDemo.vue | 48 +- .../LayeredArchitectureDemo.vue | 88 ++- .../RepositoryLayerDemo.vue | 54 +- .../ServiceLayerDemo.vue | 67 ++- .../browser-devtools/BrowserDevToolsDemo.vue | 538 ++++++++++++------ .../BrowserDevToolsLiveDemo.vue | 153 +++-- .../DevToolsApplicationDemo.vue | 99 +++- .../browser-devtools/DevToolsConsoleDemo.vue | 49 +- .../browser-devtools/DevToolsElementsDemo.vue | 35 +- .../browser-devtools/DevToolsNetworkDemo.vue | 116 ++-- .../browser-devtools/DevToolsSourcesDemo.vue | 86 ++- .../CompositeDemo.vue | 9 +- .../DomToRenderTreeDemo.vue | 24 +- .../LayoutReflowDemo.vue | 32 +- .../MacroMicroTaskDemo.vue | 30 +- .../PaintLayerDemo.vue | 30 +- .../RenderingPerformanceDemo.vue | 44 +- .../RenderingPipelineDemo.vue | 41 +- .../cache-design/CacheArchitectureDemo.vue | 84 ++- .../CacheArchitectureOverview.vue | 39 +- .../cache-design/CacheHierarchyDemo.vue | 92 ++- .../cache-design/CacheLifecycleDemo.vue | 68 ++- .../CacheMonitoringDashboardDemo.vue | 71 ++- .../CachePatternComparisonDemo.vue | 127 ++++- .../cache-design/CachePatternsDemo.vue | 238 ++++++-- .../cache-design/CacheProblemsDemo.vue | 206 +++++-- .../EcommerceCacheArchitectureDemo.vue | 9 +- .../LocalVsDistributedCacheDemo.vue | 224 ++++++-- .../cache-design/LocalityPrincipleDemo.vue | 106 +++- .../cache-design/MultiLevelCacheDemo.vue | 157 +++-- .../cache-design/ProductCacheDemo.vue | 210 +++++-- .../canvas-intro/AnimationLoopDemo.vue | 39 +- .../canvas-intro/CanvasBasicsDemo.vue | 66 ++- .../canvas-intro/CoordinateSystemDemo.vue | 26 +- .../canvas-intro/EventHandlingDemo.vue | 9 +- .../canvas-intro/ParticleSystemDemo.vue | 34 +- .../appendix/canvas-intro/PerformanceDemo.vue | 52 +- .../cloud-iam/AccessKeyManagementDemo.vue | 62 +- .../appendix/cloud-iam/BestPracticesDemo.vue | 20 +- .../cloud-iam/CrossAccountAccessDemo.vue | 40 +- .../appendix/cloud-iam/IAMStructure.vue | 10 +- .../cloud-iam/IamRamComparisonDemo.vue | 37 +- .../cloud-iam/IdentityProviderDemo.vue | 13 +- .../appendix/cloud-iam/MfaSecurityDemo.vue | 83 ++- .../cloud-iam/PermissionHierarchyDemo.vue | 15 +- .../appendix/cloud-iam/PolicyEditorDemo.vue | 16 +- .../appendix/cloud-iam/RolePolicyDemo.vue | 36 +- .../appendix/cloud-services/ApiCallDemo.vue | 28 +- .../cloud-services/AwsVsAliyunDemo.vue | 42 +- .../cloud-services/CloudHistoryDemo.vue | 27 +- .../cloud-services/CloudServicesMapDemo.vue | 88 ++- .../cloud-services/CloudServicesOverview.vue | 25 +- .../cloud-services/ComputeInstanceDemo.vue | 4 +- .../cloud-services/ComputeServicesDemo.vue | 30 +- .../cloud-services/DatabaseServicesDemo.vue | 37 +- .../cloud-services/DeployWorkflowDemo.vue | 44 +- .../cloud-services/K8sServicesDemo.vue | 108 +++- .../cloud-services/NetworkServicesDemo.vue | 70 ++- .../cloud-services/PricingCalculator.vue | 58 +- .../cloud-services/PricingModelDemo.vue | 82 ++- .../cloud-services/ProviderComparison.vue | 39 +- .../cloud-services/RegionLatencyDemo.vue | 25 +- .../cloud-services/SecurityServicesDemo.vue | 71 ++- .../cloud-services/ServiceSelectionDemo.vue | 64 ++- .../cloud-services/StorageServicesDemo.vue | 97 +++- .../cloud-services/StorageTypeDemo.vue | 17 +- .../cloud-storage-cdn/AccessAnalyticsDemo.vue | 5 +- .../cloud-storage-cdn/CachePolicyDemo.vue | 5 +- .../cloud-storage-cdn/CdnAccelerationDemo.vue | 141 ++++- .../EdgeNodeDistributionDemo.vue | 9 +- .../HttpsOptimizationDemo.vue | 5 +- .../cloud-storage-cdn/ObjectStorageDemo.vue | 98 +++- .../TrafficSchedulingDemo.vue | 5 +- .../cloud-topology/AvailabilityZoneDemo.vue | 166 ++++-- .../cloud-topology/ComputeTopologyDemo.vue | 199 +++++-- .../cloud-topology/DisasterRecoveryDemo.vue | 281 ++++++--- .../cloud-topology/NetworkFlowDemo.vue | 160 ++++-- .../cloud-topology/ResourceTopologyDemo.vue | 167 ++++-- .../cloud-topology/StorageTopologyDemo.vue | 267 +++++++-- .../cloud-topology/SubnetDesignDemo.vue | 58 +- .../cloud-topology/VpcArchitectureDemo.vue | 263 +++++---- .../ComponentHierarchyDemo.vue | 167 ++++-- .../EventBusDemo.vue | 37 +- .../MobxReactivityDemo.vue | 14 +- .../PropsFlowDemo.vue | 66 ++- .../ReduxFlowDemo.vue | 48 +- .../StateManagementComparisonDemo.vue | 59 +- .../VuexPiniaDemo.vue | 69 ++- .../ZustandJotaiDemo.vue | 30 +- .../computer-fundamentals/AdderDemo.vue | 27 +- .../computer-fundamentals/AlgorithmDemo.vue | 165 +++++- .../computer-fundamentals/CompilerDemo.vue | 134 ++++- .../CpuArchitectureDemo.vue | 19 +- .../DataStructureDemo.vue | 227 ++++++-- .../computer-fundamentals/EncodingDemo.vue | 24 +- .../computer-fundamentals/FilesystemDemo.vue | 25 +- .../computer-fundamentals/LanguageMapDemo.vue | 80 ++- .../computer-fundamentals/LogicGateDemo.vue | 184 +++++- .../computer-fundamentals/MemoryDemo.vue | 32 +- .../computer-fundamentals/NetworkLayers.vue | 64 ++- .../computer-fundamentals/ProcessDemo.vue | 25 +- .../computer-fundamentals/StorageDemo.vue | 25 +- .../SubnetCalculator.vue | 52 +- .../TcpUdpComparison.vue | 99 +++- .../computer-fundamentals/TransistorDemo.vue | 89 ++- .../TransmissionDemo.vue | 111 +++- .../computer-fundamentals/TypeSystemDemo.vue | 124 +++- .../concurrency-models/AsyncAwaitDemo.vue | 116 +++- .../ConcurrentVsParallelDemo.vue | 150 +++-- .../CoroutineLightweightDemo.vue | 134 +++-- .../concurrency-models/EventLoopDemo.vue | 181 ++++-- .../GoroutineGreenThreadDemo.vue | 117 +++- .../ProcessIsolationDemo.vue | 53 +- .../ProcessThreadCoroutineDemo.vue | 46 +- .../ThreadSchedulingDemo.vue | 107 +++- .../context-engineering/AgentContextFlow.vue | 50 +- .../ContextCompressionDemo.vue | 59 +- .../ContextWindowVisualizer.vue | 50 +- .../IntroProblemReasonSolution.vue | 12 +- .../context-engineering/KVCacheDemo.vue | 58 +- .../context-engineering/LostInMiddleDemo.vue | 51 +- .../MemoryPalaceActionDemo.vue | 87 ++- .../context-engineering/MemoryPalaceDemo.vue | 102 +++- .../context-engineering/RAGSimulationDemo.vue | 90 ++- .../SelectiveContextDemo.vue | 51 +- .../context-engineering/SlidingWindowDemo.vue | 57 +- .../appendix/database-intro/BPlusTreeDemo.vue | 105 +++- .../database-intro/DatabaseEvolutionDemo.vue | 68 ++- .../database-intro/DatabaseIndexDemo.vue | 38 +- .../database-intro/DatabaseRelationDemo.vue | 78 ++- .../database-intro/QueryOptimizationDemo.vue | 48 +- .../database-intro/RelationalDataDemo.vue | 59 +- .../database-intro/SqlPlaygroundDemo.vue | 43 +- .../database-intro/TransactionACIDDemo.vue | 38 +- .../deployment/DeploymentBuildDemo.vue | 35 +- .../deployment/DeploymentCicdDemo.vue | 16 +- .../deployment/DeploymentHttpsDemo.vue | 16 +- .../deployment/DeploymentMonitorDemo.vue | 4 +- .../deployment/DeploymentOverviewDemo.vue | 245 ++++++-- .../deployment/DeploymentServerDemo.vue | 18 +- .../AssetFingerprintDemo.vue | 89 ++- .../BuildPipelineDemo.vue | 41 +- .../BundlerComparisonDemo.vue | 64 ++- .../CodeSplittingDemo.vue | 39 +- .../DependencyGraphDemo.vue | 72 ++- .../frontend-engineering/HotReloadDemo.vue | 39 +- .../frontend-engineering/SourceMapDemo.vue | 16 +- .../frontend-engineering/TreeShakingDemo.vue | 17 +- .../FrontendEvolutionDemo.vue | 35 +- .../ImperativeVsDeclarativeDemo.vue | 254 +++++---- .../frontend-evolution/JQueryVsStateDemo.vue | 15 +- .../RenderingStrategyDemo.vue | 337 ++++++++--- .../frontend-evolution/ResponsiveGridDemo.vue | 95 +++- .../frontend-evolution/RoutingModeDemo.vue | 427 +++++++++----- .../frontend-evolution/SliceRequestDemo.vue | 87 ++- .../CachingStrategyDemo.vue | 69 ++- .../CriticalRenderingPathDemo.vue | 195 +++++-- .../ImageOptimizationDemo.vue | 53 +- .../frontend-performance/LazyLoadingDemo.vue | 56 +- .../PerformanceMetricsDemo.vue | 128 +++-- .../PerformanceOverviewDemo.vue | 51 +- .../ReflowRepaintDemo.vue | 117 +++- .../VirtualScrollingDemo.vue | 29 +- .../frontend-routing/DynamicRoutesDemo.vue | 35 +- .../frontend-routing/HashVsHistoryDemo.vue | 12 +- .../frontend-routing/MpaRoutingDemo.vue | 44 +- .../frontend-routing/NestedRoutesDemo.vue | 9 +- .../frontend-routing/RouteGuardsDemo.vue | 29 +- .../frontend-routing/RouteMatchingDemo.vue | 33 +- .../RouterArchitectureDemo.vue | 13 +- .../frontend-routing/RoutingModesDemo.vue | 18 +- .../frontend-routing/SpaNavigationDemo.vue | 36 +- .../appendix/gateway-proxy/ApiGatewayDemo.vue | 121 +++- .../gateway-proxy/AuthMiddlewareDemo.vue | 166 ++++-- .../gateway-proxy/LoadBalancingDemo.vue | 135 ++++- .../gateway-proxy/NginxArchitectureDemo.vue | 150 +++-- .../gateway-proxy/RateLimitingDemo.vue | 150 +++-- .../gateway-proxy/ReverseProxyDemo.vue | 132 ++++- .../gateway-proxy/RoutingRulesDemo.vue | 91 ++- .../gateway-proxy/SslTerminationDemo.vue | 193 +++++-- .../appendix/git-intro/GitBranchMergeDemo.vue | 33 +- .../appendix/git-intro/GitCommandDemo.vue | 77 ++- .../appendix/git-intro/GitConflictDemo.vue | 23 +- .../appendix/git-intro/GitRemoteDemo.vue | 71 ++- .../appendix/git-intro/GitScenariosDemo.vue | 67 ++- .../appendix/git-intro/GitStashDemo.vue | 57 +- .../appendix/git-intro/GitStorageDemo.vue | 14 +- .../appendix/git-intro/GitThreeAreasDemo.vue | 244 ++++---- .../appendix/git-intro/GitWorkflowDemo.vue | 50 +- .../appendix/ide-intro/AiHelpDemo.vue | 212 ++++--- .../ide-intro/IdeArchitectureDemo.vue | 103 +++- .../appendix/ide-intro/VirtualVSCodeDemo.vue | 234 +++++--- .../appendix/image-gen-intro/CFGScaleDemo.vue | 88 ++- .../image-gen-intro/ControlNetDemo.vue | 83 ++- .../image-gen-intro/DiffusionProcessDemo.vue | 31 +- .../image-gen-intro/FlowMatchingDemo.vue | 34 +- .../image-gen-intro/ImageGenArchitecture.vue | 94 ++- .../ImageGenQuickStartDemo.vue | 18 +- .../image-gen-intro/LatentSpaceViz.vue | 50 +- .../appendix/image-gen-intro/LoRADemo.vue | 178 ++++-- .../image-gen-intro/PromptEngineeringDemo.vue | 43 +- .../image-gen-intro/PromptVisualizer.vue | 23 +- .../image-gen-intro/SamplerComparisonDemo.vue | 46 +- .../image-gen-intro/UNetDenoiseDemo.vue | 98 +++- .../image-gen-intro/VaeEncoderDemo.vue | 44 +- .../appendix/javascript-intro/AsyncDemo.vue | 513 +++++++++++++---- .../javascript-intro/AsyncRestaurantDemo.vue | 176 ++++-- .../appendix/javascript-intro/ClosureDemo.vue | 272 ++++++--- .../appendix/javascript-intro/DOMTreeDemo.vue | 61 +- .../javascript-intro/DataTypeDemo.vue | 173 ++++-- .../javascript-intro/FunctionMachineDemo.vue | 50 +- .../javascript-intro/JSEventLoopDemo.vue | 67 ++- .../javascript-intro/PrototypeDemo.vue | 484 ++++++++++++---- .../javascript-intro/ReferenceDemo.vue | 126 +++- .../appendix/javascript-intro/ScopeDemo.vue | 20 +- .../javascript-intro/ThisContextDemo.vue | 377 ++++++++---- .../javascript-intro/VariableBoxDemo.vue | 85 ++- .../javascript-intro/VariableScopeDemo.vue | 76 ++- .../appendix/js-runtime/CallStackDemo.vue | 50 +- .../js-runtime/GarbageCollectionDemo.vue | 101 +++- .../appendix/js-runtime/MemoryLeakDemo.vue | 100 +++- .../js-runtime/RuntimeEnvironmentDemo.vue | 56 +- .../appendix/js-runtime/TaskQueueDemo.vue | 105 +++- .../appendix/llm-intro/EmbeddingDemo.vue | 30 +- .../llm-intro/LinearAttentionDemo.vue | 50 +- .../appendix/llm-intro/LlmQuickStartDemo.vue | 54 +- .../components/appendix/llm-intro/MoEDemo.vue | 95 +++- .../llm-intro/NextTokenPrediction.vue | 34 +- .../appendix/llm-intro/RNNvsTransformer.vue | 51 +- .../appendix/llm-intro/ThinkingModelDemo.vue | 87 ++- .../appendix/llm-intro/TokenizationDemo.vue | 31 +- .../appendix/llm-intro/TokenizerToMatrix.vue | 84 ++- .../llm-intro/TrainingInferenceDemo.vue | 236 +++++--- .../load-balancing/AutoScalingDemo.vue | 92 ++- .../BlueGreenDeploymentDemo.vue | 235 ++++++-- .../load-balancing/CanaryReleaseDemo.vue | 52 +- .../load-balancing/HealthCheckDemo.vue | 118 +++- .../load-balancing/LoadBalancerTypesDemo.vue | 119 +++- .../load-balancing/MultiRegionDemo.vue | 179 ++++-- .../load-balancing/SessionPersistenceDemo.vue | 108 +++- .../load-balancing/WeightedRoutingDemo.vue | 72 ++- .../appendix/operations/AlertFlowDemo.vue | 50 +- .../operations/CapacityPlanningDemo.vue | 128 +++-- .../operations/IncidentResponseDemo.vue | 135 +++-- .../operations/MonitoringDashboardDemo.vue | 46 +- .../operations/TraceVisualizationDemo.vue | 72 ++- .../prompt-engineering/ChainOfThoughtDemo.vue | 80 ++- .../prompt-engineering/FewShotDemo.vue | 79 ++- .../PromptComparisonDemo.vue | 86 ++- .../PromptQuickStartDemo.vue | 123 +++- .../PromptRobustnessDemo.vue | 285 ++++++++-- .../prompt-engineering/PromptSecurityDemo.vue | 79 ++- .../PromptTemplatesDemo.vue | 39 +- .../TrainingProcessDemo.vue | 150 +++-- .../appendix/queue-design/CouplingDemo.vue | 122 ++-- .../queue-design/DeadLetterQueueDemo.vue | 123 +++- .../appendix/queue-design/DecouplingDemo.vue | 136 +++-- .../queue-design/DelayedMessageDemo.vue | 128 +++-- .../appendix/queue-design/IdempotenceDemo.vue | 124 +++- .../queue-design/MQArchitectureDemo.vue | 9 +- .../queue-design/MQComparisonDemo.vue | 9 +- .../MessageQueueComparisonDemo.vue | 110 +++- .../MessageQueueComponentsDemo.vue | 176 ++++-- .../queue-design/MessageQueueDemo.vue | 148 +++-- .../appendix/queue-design/PeakShavingDemo.vue | 69 ++- .../queue-design/PointToPointVsPubSubDemo.vue | 79 ++- .../queue-design/ProducerConsumerDemo.vue | 9 +- .../appendix/queue-design/PubSubDemo.vue | 133 ++++- .../appendix/queue-design/ReliabilityDemo.vue | 240 ++++++-- .../queue-design/SeckillSystemDemo.vue | 177 ++++-- .../terminal-intro/AdvancedTUIDemo.vue | 30 +- .../terminal-intro/ArchitectureDemo.vue | 207 +++++-- .../terminal-intro/BufferSwitchDemo.vue | 77 ++- .../appendix/terminal-intro/CellInspector.vue | 21 +- .../appendix/terminal-intro/CookedRawDemo.vue | 81 ++- .../terminal-intro/EscapeParserDemo.vue | 65 ++- .../terminal-intro/EscapeSequences.vue | 58 +- .../appendix/terminal-intro/FlowDiagram.vue | 78 ++- .../terminal-intro/InputVisualizer.vue | 37 +- .../appendix/terminal-intro/SignalsDemo.vue | 74 ++- .../terminal-intro/TerminalDefinition.vue | 128 +++-- .../appendix/terminal-intro/TerminalGrid.vue | 19 +- .../terminal-intro/TerminalHandsOn.vue | 101 +++- .../terminal-intro/TerminalOSDemo.vue | 74 ++- .../appendix/terminal-intro/WebTerminal.vue | 52 +- .../tracking-design/DataCollectionDemo.vue | 89 ++- .../tracking-design/DataModelDesignDemo.vue | 309 +++++++--- .../tracking-design/DataPipelineDemo.vue | 124 +++- .../tracking-design/PrivacyComplianceDemo.vue | 199 +++++-- .../tracking-design/RealWorldCaseDemo.vue | 165 ++++-- .../tracking-design/ToolSelectionDemo.vue | 77 ++- .../TrackingMethodsComparisonDemo.vue | 113 +++- .../tracking-design/TrackingOverviewDemo.vue | 140 +++-- .../tracking-design/TrackingTypesDemo.vue | 129 ++++- .../appendix/typescript-intro/GenericDemo.vue | 69 ++- .../typescript-intro/InterfaceDemo.vue | 42 +- .../typescript-intro/TypeAnnotationDemo.vue | 40 +- .../typescript-intro/TypeInferenceDemo.vue | 59 +- .../url-to-browser/BrowserRenderingDemo.vue | 221 +++++-- .../appendix/url-to-browser/DnsLookupDemo.vue | 101 +++- .../url-to-browser/HttpExchangeDemo.vue | 83 ++- .../url-to-browser/TcpHandshakeDemo.vue | 179 ++++-- .../appendix/url-to-browser/UrlParserDemo.vue | 67 ++- .../url-to-browser/UrlToBrowserQuickStart.vue | 79 ++- .../appendix/vlm-intro/AttentionDemo.vue | 39 +- .../vlm-intro/FeatureAlignmentDemo.vue | 112 +++- .../vlm-intro/LinearProjectionDemo.vue | 48 +- .../ModelArchitectureComparisonDemo.vue | 63 +- .../appendix/vlm-intro/PatchifyDemo.vue | 40 +- .../vlm-intro/PositionalEmbeddingDemo.vue | 45 +- .../appendix/vlm-intro/ProjectorDemo.vue | 46 +- .../vlm-intro/TrainingPipelineDemo.vue | 124 +++- .../appendix/vlm-intro/VLMInferenceDemo.vue | 36 +- .../appendix/vlm-intro/ViTOutputDemo.vue | 50 +- .../appendix/vlm-intro/VlmQuickStartDemo.vue | 114 +++- .../web-basics/BigFrontendScopeDemo.vue | 34 +- .../web-basics/BrowserRenderingDemo.vue | 62 +- .../appendix/web-basics/BundlerSizeDemo.vue | 45 +- .../web-basics/ComponentReusabilityDemo.vue | 62 +- .../appendix/web-basics/CssBoxModel.vue | 100 +++- .../web-basics/CssCommonProperties.vue | 40 +- .../appendix/web-basics/CssFlexbox.vue | 17 +- .../appendix/web-basics/CssLayoutDemo.vue | 9 +- .../appendix/web-basics/CssPlaygroundDemo.vue | 47 +- .../appendix/web-basics/CssSelectorsDemo.vue | 61 +- .../web-basics/DeploymentArchitecture.vue | 320 ++++++++--- .../appendix/web-basics/DnsLookupDemo.vue | 32 +- .../appendix/web-basics/DomManipulator.vue | 140 ++++- .../web-basics/FrontendEvolutionDemo.vue | 104 +++- .../appendix/web-basics/HttpExchangeDemo.vue | 79 ++- .../ImperativeVsDeclarativeDemo.vue | 42 +- .../appendix/web-basics/JQueryVsStateDemo.vue | 97 +++- .../appendix/web-basics/NetworkLayers.vue | 64 ++- .../web-basics/NetworkTroubleshooting.vue | 96 +++- .../web-basics/RenderingStrategyDemo.vue | 36 +- .../web-basics/ResponsiveGridDemo.vue | 28 +- .../appendix/web-basics/RoutingModeDemo.vue | 26 +- .../appendix/web-basics/SemanticTagsDemo.vue | 17 +- .../appendix/web-basics/SliceRequestDemo.vue | 42 +- .../web-basics/SpaStatePreservationDemo.vue | 57 +- .../appendix/web-basics/SubnetCalculator.vue | 142 +++-- .../appendix/web-basics/TcpHandshakeDemo.vue | 81 ++- .../appendix/web-basics/TcpUdpComparison.vue | 241 ++++++-- .../appendix/web-basics/UrlParserDemo.vue | 45 +- .../appendix/web-basics/UrlToBrowserDemo.vue | 24 +- .../web-basics/VueReactComparisonDemo.vue | 38 +- .../appendix/web-basics/WebTechTriad.vue | 44 +- docs/zh-cn/appendix/intro.md | 186 ------ docs/zh-cn/stage-2/intro.md | 126 ---- docs/zh-cn/stage-3/intro.md | 93 --- eslint.config.js | 34 +- 456 files changed, 28450 insertions(+), 9677 deletions(-) delete mode 100644 docs/zh-cn/appendix/intro.md delete mode 100644 docs/zh-cn/stage-2/intro.md delete mode 100644 docs/zh-cn/stage-3/intro.md diff --git a/docs/.vitepress/config.mjs b/docs/.vitepress/config.mjs index 1176f95..ac3f1da 100644 --- a/docs/.vitepress/config.mjs +++ b/docs/.vitepress/config.mjs @@ -338,11 +338,11 @@ export default defineConfig({ }, { text: '初中级开发', - link: '/zh-cn/stage-2/intro' + link: '/zh-cn/stage-2/' }, { text: '高级开发', - link: '/zh-cn/stage-3/intro' + link: '/zh-cn/stage-3/' }, { text: '附录', link: '/zh-cn/appendix/index' } ], @@ -754,13 +754,13 @@ export default defineConfig({ }, { text: 'Full-Stack Development', - link: '/en-us/stage-2/intro' + link: '/en-us/stage-2/' }, { text: 'Advanced Development', - link: '/en-us/stage-3/intro' + link: '/en-us/stage-3/' }, - { text: 'Appendix', link: '/en-us/appendix/intro' } + { text: 'Appendix', link: '/en-us/appendix/' } ], // TODO: Add English sidebar when content is ready sidebar: {} @@ -794,13 +794,13 @@ export default defineConfig({ }, { text: 'フルスタック開発', - link: '/ja-jp/stage-2/intro' + link: '/ja-jp/stage-2/' }, { text: '上級開発', - link: '/ja-jp/stage-3/intro' + link: '/ja-jp/stage-3/' }, - { text: '付録', link: '/ja-jp/appendix/intro' } + { text: '付録', link: '/ja-jp/appendix/' } ], // TODO: Add Japanese sidebar when content is ready sidebar: {} @@ -832,13 +832,13 @@ export default defineConfig({ }, { text: '初中級開發', - link: '/zh-tw/stage-2/intro' + link: '/zh-tw/stage-2/' }, { text: '高級開發', - link: '/zh-tw/stage-3/intro' + link: '/zh-tw/stage-3/' }, - { text: '附錄', link: '/zh-tw/appendix/intro' } + { text: '附錄', link: '/zh-tw/appendix/' } ], sidebar: {} } @@ -866,13 +866,13 @@ export default defineConfig({ { text: '초보자 & PM', link: '/ko-kr/stage-0/' }, { text: '풀스택 개발', - link: '/ko-kr/stage-2/intro' + link: '/ko-kr/stage-2/' }, { text: '고급 개발', - link: '/ko-kr/stage-3/intro' + link: '/ko-kr/stage-3/' }, - { text: '부록', link: '/ko-kr/appendix/intro' } + { text: '부록', link: '/ko-kr/appendix/' } ], sidebar: {} } @@ -903,13 +903,13 @@ export default defineConfig({ }, { text: 'Desarrollo Full Stack', - link: '/es-es/stage-2/intro' + link: '/es-es/stage-2/' }, { text: 'Desarrollo Avanzado', - link: '/es-es/stage-3/intro' + link: '/es-es/stage-3/' }, - { text: 'Apéndice', link: '/es-es/appendix/intro' } + { text: 'Apéndice', link: '/es-es/appendix/' } ], sidebar: {} } @@ -937,13 +937,13 @@ export default defineConfig({ { text: 'Débutant & PM', link: '/fr-fr/stage-0/' }, { text: 'Développement Full Stack', - link: '/fr-fr/stage-2/intro' + link: '/fr-fr/stage-2/' }, { text: 'Développement Avancé', - link: '/fr-fr/stage-3/intro' + link: '/fr-fr/stage-3/' }, - { text: 'Annexe', link: '/fr-fr/appendix/intro' } + { text: 'Annexe', link: '/fr-fr/appendix/' } ], sidebar: {} } @@ -971,13 +971,13 @@ export default defineConfig({ { text: 'Anfänger & PM', link: '/de-de/stage-0/' }, { text: 'Full Stack Entwicklung', - link: '/de-de/stage-2/intro' + link: '/de-de/stage-2/' }, { text: 'Fortgeschrittene Entwicklung', - link: '/de-de/stage-3/intro' + link: '/de-de/stage-3/' }, - { text: 'Anhang', link: '/de-de/appendix/intro' } + { text: 'Anhang', link: '/de-de/appendix/' } ], sidebar: {} } @@ -1008,13 +1008,13 @@ export default defineConfig({ }, { text: 'تطوير Full Stack', - link: '/ar-sa/stage-2/intro' + link: '/ar-sa/stage-2/' }, { text: 'تطوير متقدم', - link: '/ar-sa/stage-3/intro' + link: '/ar-sa/stage-3/' }, - { text: 'ملحق', link: '/ar-sa/appendix/intro' } + { text: 'ملحق', link: '/ar-sa/appendix/' } ], sidebar: {} } @@ -1045,13 +1045,13 @@ export default defineConfig({ }, { text: 'Phát triển Full Stack', - link: '/vi-vn/stage-2/intro' + link: '/vi-vn/stage-2/' }, { text: 'Phát triển Nâng cao', - link: '/vi-vn/stage-3/intro' + link: '/vi-vn/stage-3/' }, - { text: 'Phụ lục', link: '/vi-vn/appendix/intro' } + { text: 'Phụ lục', link: '/vi-vn/appendix/' } ], sidebar: {} } diff --git a/docs/.vitepress/theme/Layout.vue b/docs/.vitepress/theme/Layout.vue index 006483f..0fa5be8 100644 --- a/docs/.vitepress/theme/Layout.vue +++ b/docs/.vitepress/theme/Layout.vue @@ -270,7 +270,11 @@ watch(lineHeight, (next) => {