const card2Html = (elem, link) => { const name = elem.attr('name'); const data = elem.attr('value')?.split('data:')[1]; const value = JSON.parse(decodeURIComponent(data ?? '[]')); let html = ''; switch (name) { case 'board': case 'image': case 'mindmap': case 'puml': html = ``; break; case 'bookmarkInline': html = `${value.detail.title}`; break; case 'checkbox': html = ``; break; case 'codeblock': html = `${value.code.replace(/\n/g, '
')}
`; break; case 'diagram': html = ``; break; case 'file': case 'localdoc': html = `${value.name}`; break; case 'hr': html = '
'; break; case 'mention': html = `${value.name}`; break; case 'table': html = value.html; break; case 'video': // fake video src html = ``; break; default: throw Error(`Unhandled card on ${link}: ${name}`); } elem.replaceWith(html); }; module.exports = { card2Html, };