feat(excalidraw): support .excalidraw.md (Obsidian plugin format) with lz-string decompression
CI / lint (push) Failing after 14s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Successful in 13s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
CI / lint (push) Failing after 14s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Successful in 13s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
This commit is contained in:
@@ -75,13 +75,14 @@ export function renderExcalidraw(container, data, vaultName, filePath, opts = {}
|
||||
case 'ready':
|
||||
// Iframe is mounted — send initial data
|
||||
editorState.ready = true;
|
||||
// Support both pure .excalidraw and compressed .excalidraw.md
|
||||
const initData = data.excalidraw_data || {};
|
||||
if (data.excalidraw_data_compressed) {
|
||||
initData.compressed = data.excalidraw_data_compressed;
|
||||
}
|
||||
iframe.contentWindow.postMessage({
|
||||
type: 'init',
|
||||
data: data.excalidraw_data || {
|
||||
elements: [],
|
||||
appState: { viewBackgroundColor: '#ffffff' },
|
||||
files: {},
|
||||
},
|
||||
data: initData,
|
||||
theme: theme,
|
||||
}, '*');
|
||||
break;
|
||||
|
||||
@@ -80,6 +80,7 @@ const EXT_ICONS = {
|
||||
".csv": "table",
|
||||
".tsv": "table",
|
||||
".excalidraw": "pen-tool",
|
||||
".excalidraw.md": "pen-tool",
|
||||
".sql": "database",
|
||||
".db": "database",
|
||||
".sqlite": "database",
|
||||
@@ -206,6 +207,10 @@ const EXT_ICONS = {
|
||||
};
|
||||
|
||||
function getFileIcon(name) {
|
||||
const lower = name.toLowerCase();
|
||||
// Check for double extensions first (e.g., .excalidraw.md)
|
||||
if (lower.endsWith(".excalidraw.md")) return EXT_ICONS[".excalidraw.md"] || "pen-tool";
|
||||
if (lower.endsWith(".md.excalidraw")) return EXT_ICONS[".excalidraw"] || "pen-tool";
|
||||
const ext = "." + name.split(".").pop().toLowerCase();
|
||||
return EXT_ICONS[ext] || "file";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user