Merge pull request #625 from hobostay/fix/caption-generator-string-escaping

This commit is contained in:
Miguel Ángel
2026-05-17 17:12:39 +02:00
committed by GitHub
+2 -2
View File
@@ -303,14 +303,14 @@ function generateJs(model: CaptionModel): string {
// Build word spans // Build word spans
const wordLines: string[] = groupSegments.map((seg) => { const wordLines: string[] = groupSegments.map((seg) => {
const escaped = seg.text.replace(/\\/g, "\\\\").replace(/'/g, "\\'"); const escaped = JSON.stringify(seg.text);
const segVar = `w_${seg.id.replace(/[^a-zA-Z0-9_]/g, "_")}`; const segVar = `w_${seg.id.replace(/[^a-zA-Z0-9_]/g, "_")}`;
const idLine = seg.wordId ? `\n ${segVar}.id = ${JSON.stringify(seg.wordId)};` : ""; const idLine = seg.wordId ? `\n ${segVar}.id = ${JSON.stringify(seg.wordId)};` : "";
return ( return (
` const ${segVar} = document.createElement('span');` + ` const ${segVar} = document.createElement('span');` +
`\n ${segVar}.className = 'word clip';` + `\n ${segVar}.className = 'word clip';` +
idLine + idLine +
`\n ${segVar}.textContent = '${escaped}';` + `\n ${segVar}.textContent = ${escaped};` +
`\n ${segVar}.dataset.start = '${seg.start}';` + `\n ${segVar}.dataset.start = '${seg.start}';` +
`\n ${segVar}.dataset.end = '${seg.end}';` + `\n ${segVar}.dataset.end = '${seg.end}';` +
`\n groupEl_${groupVar}.appendChild(${segVar});` `\n groupEl_${groupVar}.appendChild(${segVar});`