diff --git a/.claude/skills/mxl-compile/scripts/mxl-compile.ps1 b/.claude/skills/mxl-compile/scripts/mxl-compile.ps1 index e946637d..445917e8 100644 --- a/.claude/skills/mxl-compile/scripts/mxl-compile.ps1 +++ b/.claude/skills/mxl-compile/scripts/mxl-compile.ps1 @@ -226,6 +226,12 @@ foreach ($col in $colWidthMap.Keys) { # 6c. Scan areas for row heights and cell formats # We need to do two passes: first collect all formats, then generate XML +# Helper: escape XML special characters +function Esc-Xml { + param([string]$s) + return $s.Replace('&','&').Replace('<','<').Replace('>','>').Replace('"','"') +} + # Helper: determine fillType from cell content function Get-FillType { param($cell) @@ -453,7 +459,7 @@ foreach ($area in $def.areas) { X "`t`t`t`t`t" X "`t`t`t`t`t`t" X "`t`t`t`t`t`t`tru" - X "`t`t`t`t`t`t`t$($cellInfo.Text)" + X "`t`t`t`t`t`t`t$(Esc-Xml $cellInfo.Text)" X "`t`t`t`t`t`t" X "`t`t`t`t`t" } @@ -462,7 +468,7 @@ foreach ($area in $def.areas) { X "`t`t`t`t`t" X "`t`t`t`t`t`t" X "`t`t`t`t`t`t`tru" - X "`t`t`t`t`t`t`t$($cellInfo.Template)" + X "`t`t`t`t`t`t`t$(Esc-Xml $cellInfo.Template)" X "`t`t`t`t`t`t" X "`t`t`t`t`t" }