CodeMirror本地化下载脚本(.ps1)

# CodeMirror本地化下载脚本
$baseDir = "D:\Code\TfsCode\YseStore\YseStore\YseStore\YseStoreAdmin\wwwroot\assets\codemirror"
$version = "5.65.2"
$cdnBase = "https://cdnjs.cloudflare.com/ajax/libs/codemirror/$version"

# 确保目录存在
$dirs = @(
    "$baseDir\lib",
    "$baseDir\theme",
    "$baseDir\addon\selection",
    "$baseDir\addon\edit",
    "$baseDir\addon\fold",
    "$baseDir\addon\search",
    "$baseDir\addon\dialog",
    "$baseDir\mode\javascript",
    "$baseDir\mode\css",
    "$baseDir\mode\xml",
    "$baseDir\mode\htmlmixed",
    "$baseDir\mode\markdown"
)

foreach ($dir in $dirs) {
    if (!(Test-Path $dir)) {
        New-Item -ItemType Directory -Path $dir -Force
        Write-Host "Created directory: $dir"
    }
}

# 定义要下载的文件列表
$files = @(
    # 核心文件
    @{url="$cdnBase/codemirror.min.js"; dest="$baseDir\lib\codemirror.min.js"},
    @{url="$cdnBase/codemirror.min.css"; dest="$baseDir\lib\codemirror.min.css"},
    
    # 主题文件
    @{url="$cdnBase/theme/monokai.min.css"; dest="$baseDir\theme\monokai.min.css"},
    
    # 插件 - Selection
    @{url="$cdnBase/addon/selection/active-line.min.js"; dest="$baseDir\addon\selection\active-line.min.js"},
    
    # 插件 - Edit
    @{url="$cdnBase/addon/edit/matchbrackets.min.js"; dest="$baseDir\addon\edit\matchbrackets.min.js"},
    
    # 插件 - Fold
    @{url="$cdnBase/addon/fold/foldcode.min.js"; dest="$baseDir\addon\fold\foldcode.min.js"},
    @{url="$cdnBase/addon/fold/foldgutter.min.js"; dest="$baseDir\addon\fold\foldgutter.min.js"},
    @{url="$cdnBase/addon/fold/foldgutter.min.css"; dest="$baseDir\addon\fold\foldgutter.min.css"},
    @{url="$cdnBase/addon/fold/brace-fold.min.js"; dest="$baseDir\addon\fold\brace-fold.min.js"},
    @{url="$cdnBase/addon/fold/xml-fold.min.js"; dest="$baseDir\addon\fold\xml-fold.min.js"},
    @{url="$cdnBase/addon/fold/comment-fold.min.js"; dest="$baseDir\addon\fold\comment-fold.min.js"},
    
    # 插件 - Search
    @{url="$cdnBase/addon/search/search.min.js"; dest="$baseDir\addon\search\search.min.js"},
    @{url="$cdnBase/addon/search/searchcursor.min.js"; dest="$baseDir\addon\search\searchcursor.min.js"},
    @{url="$cdnBase/addon/search/jump-to-line.min.js"; dest="$baseDir\addon\search\jump-to-line.min.js"},
    
    # 插件 - Dialog
    @{url="$cdnBase/addon/dialog/dialog.min.js"; dest="$baseDir\addon\dialog\dialog.min.js"},
    @{url="$cdnBase/addon/dialog/dialog.min.css"; dest="$baseDir\addon\dialog\dialog.min.css"},
    
    # 语言模式
    @{url="$cdnBase/mode/javascript/javascript.min.js"; dest="$baseDir\mode\javascript\javascript.min.js"},
    @{url="$cdnBase/mode/css/css.min.js"; dest="$baseDir\mode\css\css.min.js"},
    @{url="$cdnBase/mode/xml/xml.min.js"; dest="$baseDir\mode\xml\xml.min.js"},
    @{url="$cdnBase/mode/htmlmixed/htmlmixed.min.js"; dest="$baseDir\mode\htmlmixed\htmlmixed.min.js"},
    @{url="$cdnBase/mode/markdown/markdown.min.js"; dest="$baseDir\mode\markdown\markdown.min.js"}
)

# 下载js-beautify库
$jsBeautifyFiles = @(
    @{url="https://cdnjs.cloudflare.com/ajax/libs/js-beautify/1.14.0/beautify.min.js"; dest="$baseDir\lib\beautify.min.js"},
    @{url="https://cdnjs.cloudflare.com/ajax/libs/js-beautify/1.14.0/beautify-css.min.js"; dest="$baseDir\lib\beautify-css.min.js"},
    @{url="https://cdnjs.cloudflare.com/ajax/libs/js-beautify/1.14.0/beautify-html.min.js"; dest="$baseDir\lib\beautify-html.min.js"}
)

$files += $jsBeautifyFiles

# 下载所有文件
foreach ($file in $files) {
    Write-Host "Downloading $($file.url) to $($file.dest)"
    try {
        Invoke-WebRequest -Uri $file.url -OutFile $file.dest -ErrorAction Stop
        Write-Host "  Success!" -ForegroundColor Green
    } catch {
        Write-Host "  Failed to download: $_" -ForegroundColor Red
    }
}

Write-Host "`nDownload complete! Files saved to $baseDir" -ForegroundColor Green 

你可能感兴趣的:(前端,CodeMirror)