diff --git a/src/main.js b/src/main.js index 3385f54..09a7e41 100644 --- a/src/main.js +++ b/src/main.js @@ -2563,17 +2563,16 @@ function performExportWithOptions(format, options) { // Use pandoc for export with advanced options let inputFile = currentFile; + let tempInputDir = null; let tempInputFile = null; // Pre-process markdown for Word output so that + +
text
+\`\`\` + +After code. +`; + const output = WordTemplateExporter.preprocessMarkdownForWordExport(input); + expect(output).toContain(''); + expect(output).toContain(''); + expect(output).toContain('
text
'); + expect(output).toContain('After code.'); + }); + + test('preserves HTML artifacts inside inline code', () => { + const input = 'Use `
` for alignment.'; + const output = WordTemplateExporter.preprocessMarkdownForWordExport(input); + expect(output).toContain('`
`'); + }); + + test('handles uppercase tags and unquoted attributes', () => { + const input = `
+Centered +
+`; + const output = WordTemplateExporter.preprocessMarkdownForWordExport(input); + expect(output).not.toContain(''); + expect(output).toContain('Centered'); + }); + + test('handles single-quoted attributes', () => { + const input = `
Right
`; + const output = WordTemplateExporter.preprocessMarkdownForWordExport(input); + expect(output).not.toContain(''); + expect(output).toContain('Right'); + }); + + test('removes non-alignment div tags without leaving malformed HTML', () => { + const input = `
Note text
`; + const output = WordTemplateExporter.preprocessMarkdownForWordExport(input); + expect(output).not.toContain(''); + expect(output).toContain('Note text'); + }); + + test('returns non-string input unchanged', () => { + expect(WordTemplateExporter.preprocessMarkdownForWordExport(null)).toBeNull(); + expect(WordTemplateExporter.preprocessMarkdownForWordExport(123)).toBe(123); + }); });