const elementMap = {
code_block: (element) => `
${element.children[0].text}
`,
a: (element) => `${renderHTML(element.children)}`,
blockquote: (element) => `${renderHTML(element.children)}
`,
br: () => '
',
h1: (element) => `${element.children[0].text}
`,
h2: (element) => `${element.children[0].text}
`,
h3: (element) => `${element.children[0].text}
`,
h4: (element) => `${element.children[0].text}
`,
h5: (element) => `${element.children[0].text}
`,
h6: (element) => `${element.children[0].text}
`,
img: (element) => `
`,
p: (element) => `${renderHTML(element.children)}
`,
strong: (element) => `${renderHTML(element.children)}`,
ol: (element) => `${renderHTML(element.children)}
`,
ul: (element) => `${renderHTML(element.children)}
`,
li: (element) => `${renderHTML(element.children)}`,
lic: (element) => element.children[0].text,
};
function renderHTML(json) {
return json
.map((element) => {
const handler = elementMap[element.type];
if (handler) {
return handler(element);
} else if (element.hasOwnProperty('text')) {
return element.text;
} else {
throw new Error(`Unknown handled type: ${element.type}, ${JSON.stringify(element)}`);
}
})
.join('');
}
module.exports = {
renderHTML,
};