UNPKG

contentful-rich-text-html-parser

Version:
105 lines 3.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertTextNodeToParagraphedText = exports.convertTextNodeToText = exports.convertTagToChildren = exports.convertTagToMark = exports.convertTagToHyperlink = exports.convertTagToInline = exports.convertTagToBlock = void 0; var rich_text_types_1 = require("@contentful/rich-text-types"); var utils_js_1 = require("./utils.js"); var DEFAULT_NODE_TYPE_FOR_HTML_TAG = { h1: rich_text_types_1.BLOCKS.HEADING_1, h2: rich_text_types_1.BLOCKS.HEADING_2, h3: rich_text_types_1.BLOCKS.HEADING_3, h4: rich_text_types_1.BLOCKS.HEADING_4, h5: rich_text_types_1.BLOCKS.HEADING_5, h6: rich_text_types_1.BLOCKS.HEADING_6, hr: rich_text_types_1.BLOCKS.HR, li: rich_text_types_1.BLOCKS.LIST_ITEM, ol: rich_text_types_1.BLOCKS.OL_LIST, p: rich_text_types_1.BLOCKS.PARAGRAPH, blockquote: rich_text_types_1.BLOCKS.QUOTE, table: rich_text_types_1.BLOCKS.TABLE, td: rich_text_types_1.BLOCKS.TABLE_CELL, th: rich_text_types_1.BLOCKS.TABLE_HEADER_CELL, tr: rich_text_types_1.BLOCKS.TABLE_ROW, ul: rich_text_types_1.BLOCKS.UL_LIST, b: rich_text_types_1.MARKS.BOLD, strong: rich_text_types_1.MARKS.BOLD, pre: rich_text_types_1.MARKS.CODE, i: rich_text_types_1.MARKS.ITALIC, em: rich_text_types_1.MARKS.ITALIC, sub: rich_text_types_1.MARKS.SUBSCRIPT, sup: rich_text_types_1.MARKS.SUPERSCRIPT, u: rich_text_types_1.MARKS.UNDERLINE, a: rich_text_types_1.INLINES.HYPERLINK, img: rich_text_types_1.BLOCKS.EMBEDDED_ASSET, video: rich_text_types_1.BLOCKS.EMBEDDED_ASSET, audio: rich_text_types_1.BLOCKS.EMBEDDED_ASSET, }; var getDefaultNodeTypeForHtmlTag = function (tagName) { return DEFAULT_NODE_TYPE_FOR_HTML_TAG[tagName]; }; var convertTagToBlock = function (node, next) { var nodeType = getDefaultNodeTypeForHtmlTag(node.tagName); if (!nodeType || !(0, utils_js_1.isBlockType)(nodeType)) { return []; } return { nodeType: nodeType, content: next(node), data: {}, }; }; exports.convertTagToBlock = convertTagToBlock; var convertTagToInline = function (node, next) { var nodeType = getDefaultNodeTypeForHtmlTag(node.tagName); if (!nodeType || !(0, utils_js_1.isInlineType)(nodeType)) { return []; } return { nodeType: nodeType, content: next(node), data: {}, }; }; exports.convertTagToInline = convertTagToInline; var convertTagToHyperlink = function (node, next) { return { nodeType: rich_text_types_1.INLINES.HYPERLINK, content: next(node), data: { uri: node.attrs.href, }, }; }; exports.convertTagToHyperlink = convertTagToHyperlink; var convertTagToMark = function (node, next) { var nodeType = getDefaultNodeTypeForHtmlTag(node.tagName); if (!nodeType || !(0, utils_js_1.isMarkType)(nodeType)) { return []; } var mark = { type: nodeType, }; return next(node, mark); }; exports.convertTagToMark = convertTagToMark; var convertTagToChildren = function (node, next) { return next(node); }; exports.convertTagToChildren = convertTagToChildren; var convertTextNodeToText = function (node, marks) { return { nodeType: "text", marks: marks, value: node.value, data: {}, }; }; exports.convertTextNodeToText = convertTextNodeToText; var convertTextNodeToParagraphedText = function (node, next) { return { nodeType: rich_text_types_1.BLOCKS.PARAGRAPH, data: {}, content: next(node), }; }; exports.convertTextNodeToParagraphedText = convertTextNodeToParagraphedText; //# sourceMappingURL=converters.js.map