UNPKG

@automattic/rtjson-to-wpblocks

Version:

Javascript code to convert Day One RTJson to WordPress Gutenberg Blocks

46 lines (40 loc) 1.12 kB
// Docs for RTJson format: // https://dayonep2.wordpress.com/documentation/tech-specs/richtextjson-format-specification/ const { rtjNodesToGBHtml, rtjNodesToHtml } = require("./nodes2html"); // @ts-check /// <reference path="./types.d.ts" /> /** * * @param {RTJDoc} rtj * @param {MediaLookup} mediaLookup * @returns string */ const rtjDocToGBHtml = (rtj, mediaLookup = {}) => { return rtjNodesToGBHtml(rtj.contents, mediaLookup); }; /** * * @param {string} rtjson * @returns RTJDoc | Ajv.ErrorObject[] */ const parseAndValidateRTJson = require("./validate").parseAndValidateRTJson; /** * * @param {string} rtjsonString * @param {MediaLookup} mediaLookup * @returns string */ const rtjsonDocStringToWPBlocksString = (rtjsonString, mediaLookup) => { let { data, errors } = parseAndValidateRTJson(rtjsonString); if (!data) { throw new Error("RTJson did not validate: " + JSON.stringify(errors)); } let converted = rtjDocToGBHtml(data, mediaLookup); return converted; }; module.exports = { parseAndValidateRTJson, rtjsonDocStringToWPBlocksString, rtjNodesToGBHtml, rtjNodesToHtml, };