@maily-to/render
Transform Maily content into HTML email templates.
Install @maily-to/render
from your command line.
pnpm add @maily-to/render
Convert React components into a HTML string.
import { render } from '@maily-to/render';
const html = await render({
type: 'doc',
content: [
{
type: 'paragraph',
content: [
{
type: 'text',
text: 'Hello World!',
},
],
},
],
});
You can replace variables in the content.
import { Maily } from '@maily-to/render';
const maily = new Maily({
type: 'doc',
content: [
{
type: 'paragraph',
attrs: { textAlign: 'left' },
content: [
{
type: 'variable',
attrs: {
id: 'currentDate',
fallback: 'now',
showIfKey: null,
},
},
],
},
],
});
maily.setVariableValue('currentDate', new Date().toISOString());
const html = await maily.render();
Payload values are used for the For Loop
and Show If
blocks.
// (Omitted repeated imports)
const maily = new Maily({
type: 'doc',
content: [
{
type: 'for',
attrs: { each: 'items', showIfKey: null },
content: [
{
type: 'paragraph',
attrs: { textAlign: 'left' },
content: [{ type: 'text', text: 'Hello' }],
},
],
},
],
});
maily.setPayloadValue('items', ['Alice', 'Bob', 'Charlie']);
const html = await maily.render();
Feel free to submit pull requests, create issues, or spread the word.
MIT © Arik Chakma