diff --git a/packages/email-renderer/package.json b/packages/email-renderer/package.json
index 5a477f73..af5ad6ab 100644
--- a/packages/email-renderer/package.json
+++ b/packages/email-renderer/package.json
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/email-renderer",
- "version": "0.1.6",
+ "version": "0.1.7",
"type": "module",
"description": "WRNexus block email renderers with HTML, text, AMP Email, and MJML interoperability.",
"exports": {
diff --git a/packages/email-renderer/src/blocks.ts b/packages/email-renderer/src/blocks.ts
index 093ad7b7..2f88c65d 100644
--- a/packages/email-renderer/src/blocks.ts
+++ b/packages/email-renderer/src/blocks.ts
@@ -206,9 +206,9 @@ export const columnBlock = defineBlock({
}),
renderers: {
emailHtml: ({ node, slots }) =>
- `
${slots.content} | `,
+ ` | `,
ampEmail: ({ node, slots }) =>
- `${slots.content} | `,
+ ` | `,
mjml: ({ node, slots }) =>
`${slots.content}`,
},
diff --git a/packages/email-renderer/test/email.test.ts b/packages/email-renderer/test/email.test.ts
index 0a6037e3..0d742385 100644
--- a/packages/email-renderer/test/email.test.ts
+++ b/packages/email-renderer/test/email.test.ts
@@ -73,6 +73,41 @@ describe("email renderer", () => {
expect((await validateAmpEmail("")).valid).toBe(false);
});
+ test("keeps rendered block rows inside valid column tables", async () => {
+ const columnDocument = structuredClone(document);
+ const content = columnDocument.root.slots.content[0]!.slots.content;
+ columnDocument.root.slots.content[0]!.slots.content = [
+ {
+ id: "columns",
+ type: "layout.columns",
+ version: 1,
+ props: {},
+ styles: {},
+ slots: {
+ columns: [
+ {
+ id: "column",
+ type: "layout.column",
+ version: 1,
+ props: { width: "100%" },
+ styles: {},
+ slots: { content },
+ },
+ ],
+ },
+ },
+ ];
+ const rendered = await renderEmail(columnDocument, { amp: true });
+ expect(rendered.ok).toBe(true);
+ if (!rendered.ok) return;
+ expect(rendered.value.parts.html.content).toContain(
+ 'data-block-id="column" class="wrn-column" width="100%" valign="top">| {
const styled = structuredClone(document);
styled.root.slots.content[0]!.slots.content[0]!.styles = {
|