求教 Vditor 在 exportJSON()的数据存储后,页面重新进入读取数据,Vditor 如何加载这个 json?
求教 Vditor 在 exportJSON() 的数据存储后,页面重新进入读取数据,Vditor 如何加载这个 json?
相关帖子
-
- 其他回帖
-
qzx •
你可以试一下:
const jsonObject = []; function parseNode(node) { switch (node.Type) { case "NodeParagraph": return node.Children.map(parseNode).join("") + "\n\n"; case "NodeText": return node.Data; case "NodeHeading": const prefix = "#".repeat(node.HeadingLevel); return `${prefix} ${node.Children.map(parseNode).join("")}\n\n`; case "NodeList": return node.Children.map((item, index) => parseListItem(item, node.ListData, index)).join("") + "\n\n"; case "NodeListItem": return node.Children.map(parseNode).join(""); case "NodeTaskListItemMarker": return node.TaskListItemChecked ? "[x] " : "[ ] "; case "NodeEmphasis": return `*${node.Children.map(parseNode).join("")}*`; case "NodeStrong": return `**${node.Children.map(parseNode).join("")}**`; case "NodeThematicBreak": return "---\n\n"; case "NodeTable": return `${node.Data}\n\n`; case "NodeTableHead": case "NodeTableRow": case "NodeTableCell": return node.Children.map(parseNode).join(" | "); case "NodeImage": const linkText = node.Children.find(child => child.Type === "NodeLinkText").Data; const linkDest = node.Children.find(child => child.Type === "NodeLinkDest").Data; return `![${linkText}](${linkDest})\n\n`; default: return ""; } } function parseListItem(item, listData, index) { const bulletChar = listData.BulletChar === 42 ? "*" : String.fromCharCode(listData.BulletChar || 45); const padding = " ".repeat(listData.Padding || 0); const marker = listData.Typ === 1 ? `${index + listData.Start}.` : bulletChar; return `${padding}${marker} ${item.Children.map(parseNode).join("")}\n`; } function convertJsonToMd(jsonArray) { return jsonArray.map(parseNode).join(""); } const markdown = convertJsonToMd(jsonObject); console.log(markdown);
1 操作JeffreyChen 在 2024-08-05 16:50:49 更新了该回帖
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于