UNPKG

@prismicio/helpers

Version:
54 lines (53 loc) 2.36 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const escapeHTML = require("./escapeHTML.cjs"); const types = require("@prismicio/types"); const asLink = require("../asLink.cjs"); const getLabel = (node) => { return "data" in node && "label" in node.data ? ` class="${node.data.label}"` : ""; }; const serializeStandardTag = (tag, node, children) => { return `<${tag}${getLabel(node)}>${children.join("")}</${tag}>`; }; const serializePreFormatted = (node) => { return `<pre${getLabel(node)}>${escapeHTML.escapeHTML(node.text)}</pre>`; }; const serializeImage = (linkResolver, node) => { let imageTag = `<img src="${node.url}" alt="${escapeHTML.escapeHTML(node.alt)}"${node.copyright ? ` copyright="${escapeHTML.escapeHTML(node.copyright)}"` : ""} />`; if (node.linkTo) { imageTag = serializeHyperlink(linkResolver, { type: types.RichTextNodeType.hyperlink, data: node.linkTo, start: 0, end: 0 }, [imageTag]); } return `<p class="block-img">${imageTag}</p>`; }; const serializeEmbed = (node) => { return `<div data-oembed="${node.oembed.embed_url}" data-oembed-type="${node.oembed.type}" data-oembed-provider="${node.oembed.provider_name}"${getLabel(node)}>${node.oembed.html}</div>`; }; const serializeHyperlink = (linkResolver, node, children) => { switch (node.data.link_type) { case types.LinkType.Web: { return `<a href="${escapeHTML.escapeHTML(node.data.url)}" ${node.data.target ? `target="${node.data.target}" ` : ""}rel="noopener noreferrer"${getLabel(node)}>${children.join("")}</a>`; } case types.LinkType.Document: { return `<a href="${asLink.asLink(node.data, linkResolver)}"${getLabel(node)}>${children.join("")}</a>`; } case types.LinkType.Media: { return `<a href="${node.data.url}"${getLabel(node)}>${children.join("")}</a>`; } } }; const serializeSpan = (content) => { return content ? escapeHTML.escapeHTML(content).replace(/\n/g, "<br />") : ""; }; exports.getLabel = getLabel; exports.serializeEmbed = serializeEmbed; exports.serializeHyperlink = serializeHyperlink; exports.serializeImage = serializeImage; exports.serializePreFormatted = serializePreFormatted; exports.serializeSpan = serializeSpan; exports.serializeStandardTag = serializeStandardTag; //# sourceMappingURL=serializerHelpers.cjs.map