obsidian社区插件
自定义 Excalidraw 脚本 - 插入可以编辑的 Mermaid 图形
插件ID:%E8%87%AA%E5%AE%9A%E4%B9%89excalidraw%E8%84%9A%E6%9C%AC-%E6%8F%92%E5%85%A5%E5%8F%AF%E4%BB%A5%E7%BC%96%E8%BE%91%E7%9A%84mermaid%E5%9B%BE%E5%BD%A2
%E8%87%AA%E5%AE%9A%E4%B9%89excalidraw%E8%84%9A%E6%9C%AC-%E6%8F%92%E5%85%A5%E5%8F%AF%E4%BB%A5%E7%BC%96%E8%BE%91%E7%9A%84mermaid%E5%9B%BE%E5%BD%A2
%E8%87%AA%E5%AE%9A%E4%B9%89excalidraw%E8%84%9A%E6%9C%AC %E6%8F%92%E5%85%A5%E5%8F%AF%E4%BB%A5%E7%BC%96%E8%BE%91%E7%9A%84mermaid%E5%9B%BE%E5%BD%A2:Excalidraw 插入 Mermaid 后就不能对该 Mermaid 进行源码编辑,为此可以换个思路添加 Mermaid 图形,那就是将插入的 Mermaid 转为 SVG 格式,且 Ctrl + 鼠标左键单击 可以弹出源码进行二次编辑。
自定义 Excalidraw 脚本 - 插入可以编辑的 Mermaid 图形
Excalidraw 插入 Mermaid 后就不能对该 Mermaid 进行源码编辑,为此可以换个思路添加 Mermaid 图形,那就是将插入的 Mermaid 转为 SVG 格式,且 Ctrl + 鼠标左键单击
可以弹出源码进行二次编辑。
Tip可以弹出源码
/*
```javascript
*/
console.log("add mermaid")
let { insertType, inputText } = await openEditPrompt();
if (!insertType) return;
if (!inputText) return;
let {elements, files} = await ExcalidrawLib.mermaidToExcalidraw(inputText, undefined, true)
if (elements && elements.length) {
elements[0].fileId = Object.keys(files)[0]
ea.elementsDict[elements[0].id] = elements[0]
await ea.addElementsToView(true, false, false);
await ea.targetView.forceSave(true);
}
// 打开文本编辑器
async function openEditPrompt(Text = "") {
// 打开编辑窗口
let insertType = true;
let inputText = "";
inputText = await utils.inputPrompt(
"输入Mermaid内容",
"输入Mermaid内容,ESC退出输入,Ctrl + Enter完成编辑",
Text,
[
{
caption: "取消编辑",
action: () => {
insertType = false;
return;
}
},
{
caption: "完成编辑",
action: () => {
insertType = true;
return;
}
}
],
10,
true
);
return { insertType, inputText };
}
讨论
若阁下有独到的见解或新颖的想法,诚邀您在文章下方留言,与大家共同探讨。
反馈交流
其他渠道
版权声明
版权声明:所有 PKMer 文章如果需要转载,请附上原文出处链接。