36 lines
985 B
PowerShell
36 lines
985 B
PowerShell
# Build PDF from markdown via two pipelines:
|
|
# 1) MD → LaTeX project (Python md2latex)
|
|
# 2) LaTeX → PDF (XeLaTeX / latexmk)
|
|
#
|
|
# Usage:
|
|
# powershell -File scripts\md2pdf.ps1 examples\example.md
|
|
# powershell -File scripts\md2pdf.ps1 report.md -OutDir build\report -TitlePage title.pdf
|
|
|
|
param(
|
|
[Parameter(Mandatory = $true, Position = 0)]
|
|
[string]$Markdown,
|
|
|
|
[string]$OutDir = "",
|
|
|
|
[string]$TitlePage = "",
|
|
|
|
[switch]$NoPdf
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
$Root = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Path)
|
|
Set-Location $Root
|
|
|
|
$md = Resolve-Path $Markdown
|
|
if (-not $OutDir) {
|
|
$OutDir = Join-Path (Split-Path $md) (([IO.Path]::GetFileNameWithoutExtension($md)) + "_latex")
|
|
}
|
|
|
|
$pyArgs = @("-m", "md2latex", "$md", "-o", "$OutDir")
|
|
if ($TitlePage) { $pyArgs += @("--titlepage", "$TitlePage") }
|
|
if (-not $NoPdf) { $pyArgs += "--pdf" }
|
|
|
|
Write-Host "=== Pipeline 1+2: MD → LaTeX → PDF ==="
|
|
& python @pyArgs
|
|
exit $LASTEXITCODE
|