first commit
This commit is contained in:
115
build-docs.ps1
Normal file
115
build-docs.ps1
Normal file
@@ -0,0 +1,115 @@
|
||||
# OneApp Documentation Build Script
|
||||
param(
|
||||
[switch]$KeepDocs = $false,
|
||||
[switch]$Help = $false
|
||||
)
|
||||
|
||||
if ($Help) {
|
||||
Write-Host "OneApp Documentation Build Script" -ForegroundColor Green
|
||||
Write-Host ""
|
||||
Write-Host "Usage:"
|
||||
Write-Host " .\build-docs.ps1 # Build docs and cleanup"
|
||||
Write-Host " .\build-docs.ps1 -KeepDocs # Build but keep docs"
|
||||
Write-Host " .\build-docs.ps1 -Help # Show help"
|
||||
exit 0
|
||||
}
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
||||
$RootDir = $ScriptDir
|
||||
$DocsDir = Join-Path $RootDir "docs"
|
||||
$SiteDir = Join-Path $RootDir "site"
|
||||
|
||||
Write-Host "=== OneApp Documentation Build Start ===" -ForegroundColor Green
|
||||
Write-Host "Root: $RootDir"
|
||||
Write-Host "Docs: $DocsDir"
|
||||
Write-Host "Site: $SiteDir"
|
||||
Write-Host ""
|
||||
|
||||
try {
|
||||
Write-Host "Step 1/4: Preparing docs directory..." -ForegroundColor Yellow
|
||||
|
||||
if (Test-Path $DocsDir) {
|
||||
Remove-Item $DocsDir -Recurse -Force
|
||||
}
|
||||
|
||||
New-Item -Path $DocsDir -ItemType Directory -Force | Out-Null
|
||||
Write-Host "docs directory created" -ForegroundColor Green
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "Step 2/4: Copying source files..." -ForegroundColor Yellow
|
||||
|
||||
# Copy markdown files
|
||||
Get-ChildItem -Path $RootDir -Filter "*.md" | ForEach-Object {
|
||||
Copy-Item $_.FullName -Destination (Join-Path $DocsDir $_.Name) -Force
|
||||
Write-Host "Copied: $($_.Name)" -ForegroundColor Gray
|
||||
}
|
||||
|
||||
# Copy directories
|
||||
$Folders = @("account", "after_sales", "app_car", "basic_uis", "basic_utils",
|
||||
"car_sales", "community", "membership", "service_component",
|
||||
"setting", "touch_point", "images", "assets")
|
||||
|
||||
foreach ($Folder in $Folders) {
|
||||
$SourcePath = Join-Path $RootDir $Folder
|
||||
if (Test-Path $SourcePath) {
|
||||
Copy-Item $SourcePath -Destination (Join-Path $DocsDir $Folder) -Recurse -Force
|
||||
Write-Host "Copied folder: $Folder" -ForegroundColor Gray
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host "File copy completed" -ForegroundColor Green
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "Step 3/4: Building MkDocs..." -ForegroundColor Yellow
|
||||
|
||||
try {
|
||||
$null = Get-Command "python" -ErrorAction Stop
|
||||
Write-Host "Python found"
|
||||
} catch {
|
||||
throw "Python not found. Please install Python first."
|
||||
}
|
||||
|
||||
Write-Host "Running: python -m mkdocs build --clean"
|
||||
& python -m mkdocs build --clean
|
||||
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
Write-Host "Build successful!" -ForegroundColor Green
|
||||
|
||||
if (Test-Path $SiteDir) {
|
||||
$Files = Get-ChildItem $SiteDir -Recurse -File
|
||||
$Size = [math]::Round(($Files | Measure-Object Length -Sum).Sum / 1MB, 2)
|
||||
Write-Host "Files: $($Files.Count), Size: $Size MB"
|
||||
}
|
||||
} else {
|
||||
throw "Build failed with exit code: $LASTEXITCODE"
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "Step 4/4: Cleanup..." -ForegroundColor Yellow
|
||||
|
||||
if ($KeepDocs) {
|
||||
Write-Host "Keeping docs directory" -ForegroundColor Cyan
|
||||
} else {
|
||||
if (Test-Path $DocsDir) {
|
||||
Remove-Item $DocsDir -Recurse -Force
|
||||
Write-Host "docs directory cleaned" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "=== Build Completed ===" -ForegroundColor Green
|
||||
Write-Host "Site: $SiteDir" -ForegroundColor Green
|
||||
Write-Host "Open: site/index.html" -ForegroundColor Cyan
|
||||
|
||||
} catch {
|
||||
Write-Host ""
|
||||
Write-Host "=== Build Failed ===" -ForegroundColor Red
|
||||
Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red
|
||||
|
||||
if ((Test-Path $DocsDir) -and (-not $KeepDocs)) {
|
||||
Remove-Item $DocsDir -Recurse -Force -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
exit 1
|
||||
}
|
||||
Reference in New Issue
Block a user