UNPKG

@wordpress/blocks

Version:
95 lines (89 loc) 3.32 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.deprecatedGetPhrasingContentSchema = deprecatedGetPhrasingContentSchema; Object.defineProperty(exports, "pasteHandler", { enumerable: true, get: function () { return _pasteHandler.pasteHandler; } }); exports.rawHandler = rawHandler; var _deprecated = _interopRequireDefault(require("@wordpress/deprecated")); var _dom = require("@wordpress/dom"); var _htmlToBlocks = require("./html-to-blocks"); var _parser = _interopRequireDefault(require("../parser")); var _normaliseBlocks = _interopRequireDefault(require("./normalise-blocks")); var _specialCommentConverter = _interopRequireDefault(require("./special-comment-converter")); var _listReducer = _interopRequireDefault(require("./list-reducer")); var _blockquoteNormaliser = _interopRequireDefault(require("./blockquote-normaliser")); var _figureContentReducer = _interopRequireDefault(require("./figure-content-reducer")); var _shortcodeConverter = _interopRequireDefault(require("./shortcode-converter")); var _utils = require("./utils"); var _pasteHandler = require("./paste-handler"); /** * WordPress dependencies */ /** * Internal dependencies */ function deprecatedGetPhrasingContentSchema(context) { (0, _deprecated.default)('wp.blocks.getPhrasingContentSchema', { since: '5.6', alternative: 'wp.dom.getPhrasingContentSchema' }); return (0, _dom.getPhrasingContentSchema)(context); } /** * Converts an HTML string to known blocks. * * @param {Object} $1 * @param {string} $1.HTML The HTML to convert. * * @return {Array} A list of blocks. */ function rawHandler({ HTML = '' }) { // If we detect block delimiters, parse entirely as blocks. if (HTML.indexOf('<!-- wp:') !== -1) { const parseResult = (0, _parser.default)(HTML); const isSingleFreeFormBlock = parseResult.length === 1 && parseResult[0].name === 'core/freeform'; if (!isSingleFreeFormBlock) { return parseResult; } } // An array of HTML strings and block objects. The blocks replace matched // shortcodes. const pieces = (0, _shortcodeConverter.default)(HTML); const blockContentSchema = (0, _utils.getBlockContentSchema)(); return pieces.map(piece => { // Already a block from shortcode. if (typeof piece !== 'string') { return piece; } // These filters are essential for some blocks to be able to transform // from raw HTML. These filters move around some content or add // additional tags, they do not remove any content. const filters = [ // Needed to adjust invalid lists. _listReducer.default, // Needed to create more and nextpage blocks. _specialCommentConverter.default, // Needed to create media blocks. _figureContentReducer.default, // Needed to create the quote block, which cannot handle text // without wrapper paragraphs. (0, _blockquoteNormaliser.default)({ raw: true })]; piece = (0, _utils.deepFilterHTML)(piece, filters, blockContentSchema); piece = (0, _normaliseBlocks.default)(piece, { raw: true }); return (0, _htmlToBlocks.htmlToBlocks)(piece, rawHandler); }).flat().filter(Boolean); } //# sourceMappingURL=index.js.map