/** Escape a string for interpolation inside a double- or single-quoted XML attribute. */ export function escapeXmlAttribute(input: string): string { if (!/[&<>"']/.test(input)) return input; let output = ""; for (const char of input) { if (char === "&") output += "&"; else if (char === "<") output += "<"; else if (char === ">") output += ">"; else if (char === '"') output += """; else if (char === "'") output += "'"; else output += char; } return output; }