Files
SETCAN/docs/protocan/build-html.ps1

58 lines
1.7 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[CmdletBinding()]
param(
[string]$OutputPath = (Join-Path $PSScriptRoot 'build\protocol.html')
)
$ErrorActionPreference = 'Stop'
$documents = @(
'README.md',
'PROTOCOL.md',
'BOOTLOADER.md',
'OAP.md',
'CHANGELOG.md'
)
$sections = foreach ($document in $documents) {
$path = Join-Path $PSScriptRoot $document
$markdown = Get-Content -Raw -LiteralPath $path
(ConvertFrom-Markdown -InputObject $markdown).Html
}
$style = @'
body { max-width: 1180px; margin: 32px auto; padding: 0 24px;
color: #111827; background: #fff; font: 15px/1.55 Arial, sans-serif; }
h1, h2, h3 { line-height: 1.25; }
h1 { margin-top: 48px; border-bottom: 2px solid #334155; padding-bottom: 8px; }
h2 { margin-top: 32px; }
a { color: #1155cc; }
code { font-family: Consolas, "Courier New", monospace; }
pre { overflow: auto; padding: 12px; border: 1px solid #cbd5e1; background: #f8fafc; }
table { width: 100%; border-collapse: collapse; margin: 12px 0 24px; }
th, td { border: 1px solid #94a3b8; padding: 6px 9px; vertical-align: top; }
th { background: #e2e8f0; }
tr:nth-child(even) td { background: #f8fafc; }
'@
$outputDirectory = Split-Path -Parent $OutputPath
if (-not (Test-Path -LiteralPath $outputDirectory)) {
New-Item -ItemType Directory -Path $outputDirectory | Out-Null
}
$html = @"
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ProtoCAN спецификация</title>
<style>$style</style>
</head>
<body>
$($sections -join "`n<hr>`n")
</body>
</html>
"@
Set-Content -LiteralPath $OutputPath -Value $html -Encoding utf8
Write-Host "Создан $OutputPath"