diff --git a/addon/chrome/content/overlay.xul b/addon/chrome/content/overlay.xul index 2f60d27..5d07e24 100644 --- a/addon/chrome/content/overlay.xul +++ b/addon/chrome/content/overlay.xul @@ -21,6 +21,7 @@ + @@ -30,6 +31,7 @@ + @@ -54,6 +56,7 @@ + diff --git a/addon/chrome/content/workspace.xul b/addon/chrome/content/workspace.xul index 8518e85..5dbcad7 100644 --- a/addon/chrome/content/workspace.xul +++ b/addon/chrome/content/workspace.xul @@ -29,6 +29,7 @@ + @@ -38,6 +39,7 @@ + @@ -58,6 +60,7 @@ + diff --git a/addon/chrome/locale/en-US/overlay.dtd b/addon/chrome/locale/en-US/overlay.dtd index af68f1c..2dcd49f 100644 --- a/addon/chrome/locale/en-US/overlay.dtd +++ b/addon/chrome/locale/en-US/overlay.dtd @@ -4,6 +4,7 @@ + diff --git a/addon/chrome/locale/zh-CN/overlay.dtd b/addon/chrome/locale/zh-CN/overlay.dtd index 904ccef..9958c77 100644 --- a/addon/chrome/locale/zh-CN/overlay.dtd +++ b/addon/chrome/locale/zh-CN/overlay.dtd @@ -4,6 +4,7 @@ + diff --git a/src/events.ts b/src/events.ts index 8701075..9f22ad9 100644 --- a/src/events.ts +++ b/src/events.ts @@ -1377,6 +1377,18 @@ class AddonEvents extends AddonBase { !useSingleFile ); } + } else if (message.type === "sync") { + /* + message.content = { + editorInstance + } + */ + const note = this._Addon.knowledge.getWorkspaceNote(); + if (this._Addon.sync.isSyncNote(note)) { + this._Addon.sync.doSync([note], true, false); + } else { + await this._Addon.knowledge.exportNotesToFile([note], false, true); + } } else if (message.type === "openAttachment") { /* message.content = { diff --git a/src/knowledge.ts b/src/knowledge.ts index 68f22b9..dd57e47 100644 --- a/src/knowledge.ts +++ b/src/knowledge.ts @@ -867,7 +867,8 @@ class Knowledge extends AddonBase { Components.utils.import("resource://gre/modules/osfile.jsm"); this._exportFileDict = []; const filepath = await pick( - Zotero.getString("fileInterface.export"), + Zotero.getString(useSync ? "sync.sync" : "fileInterface.export") + + " MarkDown", "folder" ); diff --git a/src/sync.ts b/src/sync.ts index 986f3e8..5144a29 100644 --- a/src/sync.ts +++ b/src/sync.ts @@ -110,6 +110,11 @@ class AddonSync extends AddonBase { return ids.split(",").map((id: string) => Number(id)); } + isSyncNote(note: ZoteroItem): boolean { + const syncNoteIds = this._Addon.sync.getSyncNoteIds(); + return syncNoteIds.includes(note.id); + } + async getRelatedNoteIds(note: ZoteroItem): Promise { let allNoteIds: Number[] = [note.id]; const linkMatches = note.getNote().match(/zotero:\/\/note\/\w+\/\w+\//g);