diff --git a/src/format/assemble.ts b/src/format/assemble.ts index 8d0aa78..d7ad1c1 100755 --- a/src/format/assemble.ts +++ b/src/format/assemble.ts @@ -204,5 +204,13 @@ export function assembleContext( } function escapeXml(s: string): string { - return s.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """); -} \ No newline at end of file + return s + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + // 防止 DSH prompt template 系统把 {{variable}} 当成需要解析的变量 + // 只转义成对的 {{ }},保留单个 { } 不动(兼容 CSS/JSON 等内容) + .replace(/\{\{/g, "{{") + .replace(/\}\}/g, "}}"); +}