$sourceFolder = Join-Path $PSScriptRoot ".." $htmlFolder = Join-Path $sourceFolder "html" $javascriptFolder = Join-Path $sourceFolder "javascript" $sassFolder = Join-Path $sourceFolder "sass" $cssFolder = Join-Path $sourceFolder "css" "---- Sanitize Javascript files ----" Get-ChildItem -Path $javascriptFolder -Recurse -File | ForEach-Object { $_.Name $content = Get-Content -Raw $_.FullName $replace = $content -replace [Regex]::Escape("\\"), "\" $replace = $replace -replace [Regex]::Escape(" \n"), "\n" $replace = $replace -replace [Regex]::Escape("[[[["), "[[ [[" $replace = $replace -replace [Regex]::Escape("]]]]"), "]] ]]" if ($replace -cne $content) { $replace | Set-Content -NoNewline -Path $_.FullName } } "" $buildPug = Join-Path $PSScriptRoot "buildPug.js" node $buildPug "---- Sanitize HTML files ----" Get-ChildItem -Path $htmlFolder -Recurse -File | ForEach-Object { $_.Name $content = Get-Content -Raw $_.FullName $replace = $content -replace [Regex]::Escape("’"), "'" #Weird encoding problem to match ’ character from PHB $replace = $content -replace [Regex]::Escape("\'"), "'" if ($replace -cne $content) { $replace | Set-Content -NoNewline -Path $_.FullName } } "" "---- Generating CSS files ----" Get-ChildItem -Path $sassFolder -Recurse -File | ForEach-Object { $_.Name $cssFilename = [System.IO.Path]::GetFileNameWithoutExtension($_) $cssOutput = Join-Path $cssFolder "$cssFilename.css" sass --no-source-map $_.FullName $cssOutput } #"2EStyle-base.scss" #$scssFilename = Join-Path $cssFolder "2EStyle-base.scss" #$cssOutput = Join-Path $sourceFolder "2EStyle.css" #sass $scssFilename $cssOutput --no-source-map --quotes double "" "---- Sanitize CSS files ----" Get-ChildItem -Path $cssFolder -Recurse -File | ForEach-Object { $_.Name $content = Get-Content $_.FullName $content = $content -replace '^( )[^ ].*', '$1$0' #makes indentation 4 spaces instead of 2 $missingNewline = $content | Select-String -Pattern '^[^ /].*, .*' $missingNewline | ForEach-Object { $regex = "^" + [Regex]::Escape($_.Line) + "$" $content = $content -replace $regex, $_.Line.Replace(', ', ",`n") } $content | Set-Content -Path $_.FullName } #"2EStyle.css" #$cssContent = Get-Content $cssOutput #$cssContent = $cssContent -replace '^( )[^ ].*', '$1$0' #makes indentation 4 spaces instead of 2 #$cssContent | Set-Content -Path $cssOutput ""