import escapeHtml from "escape-html"; import { Text } from "slate"; export const serialize = node => { let nodeText = escapeHtml(node.text); if (Text.isText(node)) { if (node["bold"]) { nodeText = `` + nodeText + ``; } if (node["italic"]) { nodeText = `` + nodeText + ``; } if (node["underlined"]) { nodeText = `` + nodeText + ``; } // Other marks should go here like above return nodeText; } if (Array.isArray(node)) { return node.map(subNode => serializeSubNode(subNode)).join(""); } return serializeSubNode(node); }; const serializeSubNode = node => { const children = node.children.map(n => serialize(n)).join(""); switch (node.type) { case "link": return `${children}`; default: return `
${children}
`; } };