diff --git a/src/render/createRenderer.ts b/src/render/createRenderer.ts index 9d89e0c6..8c38b7b2 100644 --- a/src/render/createRenderer.ts +++ b/src/render/createRenderer.ts @@ -511,6 +511,25 @@ export async function createRenderer( html = html.replace('
]*)>/, `${previewHtml}`) } - /** - * Strip Vue SSR fragment markers + teleport anchor comments. These - * are rendering hygiene, not transformer concerns — must run - * regardless of `useTransformers` state. Fragment markers contain - * `-->`, which would prematurely terminate MSO conditional - * comments downstream. - */ - html = html - .replaceAll('', '') - .replaceAll('', '') - .replaceAll('', '') - .replaceAll('', '') - .replaceAll('', '') - .replaceAll('', '') - return { html, doctype: renderContext.doctype, diff --git a/src/tests/render/createRenderer.test.ts b/src/tests/render/createRenderer.test.ts index 61a54e84..9de88ba0 100644 --- a/src/tests/render/createRenderer.test.ts +++ b/src/tests/render/createRenderer.test.ts @@ -49,6 +49,26 @@ describe('createRenderer', () => { expect(result.html).toContain('fonts.googleapis.com') }) + it('keeps MSO conditionals intact when Preheader triggers the teleport DOM round-trip', async () => { + const config = await resolveConfig({ root: tempDir }) + const result = await render( + ` + + + +

')
+ })
+
it('wraps a markdown code fence in a table with shiki highlighting', async () => {
writeFileSync(join(tempDir, 'page.md'), '# Title\n\n```js\nconst x = 1\n```\n')
const result = await render(join(tempDir, 'page.md'), { useTransformers: false })