Renders a htm
tagged template asyncly into a string.
npm install async-htm-to-string
const { html, renderToString } = require('async-htm-to-string');
const customTag = ({ prefix }, children) => html`<div>${prefix}-${children}</div>`;
const dynamicContent = 'bar';
// Will equal "<div>foo-bar</div>
const result = await renderToString(html`<${customTag} prefix="foo">${dynamicContent}</${customTag}>`);
Is h()
bound to htm
(htm.bind(h)
). Used with template literals, like:
const renderableElement = html`<div>${content}</div>`;
If you need to provide pre-escaped raw HTML content, then you can use rawHtml
as either a template literal or by calling it with the
const renderableElement = rawHtml`<div>&${'"'}</div>`;
const renderableElement = rawHtml('<div>&</div>');
You can also use the result of any of those rawHtml
inside html
, like:
const renderableElement = html`<div>${rawHtml`&`}</div>`;
The inner method that's htm
is bound to.
Takes the output from html
and returns an async iterator that yields the strings as they are rendered
Same as render()
, but asyncly returns a single string with the fully rendered result, rather than an async iterator.
Asyncly loops over an iterable (like eg. an async iterable) and concatenates together the result into a single string that it resolves to. The brains behind renderToString()
.