add: ctrl+s for main note sync

This commit is contained in:
xiangyu 2022-07-05 18:27:03 +08:00
parent a36c535942
commit 25cf000918
7 changed files with 27 additions and 1 deletions

View File

@ -21,6 +21,7 @@
<key id="key_new_betternotes" class="key-type-betternotes" key="N" modifiers="accel" command="cmd_new_betternotes" />
<key id="key_open_betternotes" class="key-type-betternotes" key="O" modifiers="accel" command="cmd_open_betternotes" />
<key id="key_export_betternotes" class="key-type-betternotes" key="E" modifiers="accel" command="cmd_export_betternotes" />
<key id="key_sync_betternotes" class="key-type-betternotes" key="S" modifiers="accel" command="cmd_sync_betternotes" />
<key id="key_indent_betternotes" class="key-type-betternotes" keycode="VK_TAB" command="cmd_indent_betternotes" />
<key id="key_unindent_betternotes" class="key-type-betternotes" keycode="VK_TAB" modifiers="shift" command="cmd_unindent_betternotes" />
</keyset>
@ -30,6 +31,7 @@
<command id="cmd_open_betternotes" oncommand="Zotero.Knowledge4Zotero.events.onEditorEvent({type: 'selectMainKnowledge'});" />
<command id="cmd_open_betternotesWindow" oncommand="Zotero.Knowledge4Zotero.events.onEditorEvent({type: 'openWorkspaceInWindow'});" />
<command id="cmd_export_betternotes" oncommand="Zotero.Knowledge4Zotero.events.onEditorEvent({type: 'export', content: {editorInstance: {_item: false}}});" />
<command id="cmd_sync_betternotes" oncommand="Zotero.Knowledge4Zotero.events.onEditorEvent({type: 'sync'});" />
<command id="cmd_sync_manager_betternotes" oncommand="Zotero.Knowledge4Zotero.syncList.openSyncList();" />
<command id="cmd_editTemplate_betternotes" oncommand="Zotero.Knowledge4Zotero.events.onEditorEvent({type: 'editTemplate'});" />
<command id="cmd_addheading_betternotes" oncommand="Zotero.Knowledge4Zotero.events.onEditorEvent({type: 'addHeading'});" />
@ -54,6 +56,7 @@
<menuitem id="menu_new_betternotes" class="menu-type-betternotes" label="&zotero.__addonRef__.workspace.menu.new;" key="key_new_betternotes" accesskey="N" command="cmd_new_betternotes" />
<menuitem id="menu_open_betternotes" class="menu-type-betternotes" label="&zotero.__addonRef__.workspace.menu.open;" key="key_open_betternotes" accesskey="O" command="cmd_open_betternotes" />
<menuitem id="menu_export_betternotes" class="menu-type-betternotes" label="&zotero.__addonRef__.workspace.menu.export;" key="key_export_betternotes" accesskey="E" command="cmd_export_betternotes" />
<menuitem id="menu_sync_betternotes" class="menu-type-betternotes" label="&zotero.__addonRef__.workspace.menu.sync;" key="key_sync_betternotes" accesskey="S" command="cmd_sync_betternotes" />
<menuitem id="menu_sync_manager_betternotes" label="&zotero.__addonRef__.workspace.menu.syncmanager;" command="cmd_sync_manager_betternotes" />
</menupopup>

View File

@ -29,6 +29,7 @@
<key id="key_new" key="N" modifiers="accel" command="cmd_new" />
<key id="key_open" key="O" modifiers="accel" command="cmd_open" />
<key id="key_export" key="E" modifiers="accel" command="cmd_export" />
<key id="key_sync_betternotes" key="S" modifiers="accel" command="cmd_sync_betternotes" />
<key id="key_close" key="W" modifiers="accel" command="cmd_close" />
<!-- <key id="key_insertNotes" key="I" modifiers="accel" command="cmd_insertNotes" /> -->
<key id="key_indent" keycode="VK_TAB" command="cmd_indent_betternotes" />
@ -38,6 +39,7 @@
<command id="cmd_open" oncommand="Zotero.Knowledge4Zotero.events.onEditorEvent({type: 'selectMainKnowledge'});" />
<command id="cmd_openWindow" oncommand="Zotero.Knowledge4Zotero.events.onEditorEvent({type: 'openWorkspaceInWindow'});" />
<command id="cmd_export" oncommand="Zotero.Knowledge4Zotero.events.onEditorEvent({type: 'export', content: {editorInstance: {_item: false}}});" />
<command id="cmd_sync_betternotes" oncommand="Zotero.Knowledge4Zotero.events.onEditorEvent({type: 'sync'});" />
<command id="cmd_sync_manager_betternotes" oncommand="Zotero.Knowledge4Zotero.syncList.openSyncList();" />
<command id="cmd_close" oncommand="Zotero.Knowledge4Zotero.events.onEditorEvent({type: 'closeWorkspace'});" />
<!-- <command id="cmd_insertNotes" oncommand="Zotero.Knowledge4Zotero.events.onEditorEvent({type: 'insertNotes'});" /> -->
@ -58,6 +60,7 @@
<menuitem id="menu_new" label="&zotero.__addonRef__.workspace.menu.new;" key="key_new" accesskey="N" command="cmd_new" />
<menuitem id="menu_open" label="&zotero.__addonRef__.workspace.menu.open;" key="key_open" accesskey="O" command="cmd_open" />
<menuitem id="menu_export" label="&zotero.__addonRef__.workspace.menu.export;" key="key_export" accesskey="E" command="cmd_export" />
<menuitem id="menu_sync_betternotes" label="&zotero.__addonRef__.workspace.menu.sync;" key="key_sync_betternotes" accesskey="S" command="cmd_sync_betternotes" />
<menuitem id="menu_sync_manager_betternotes" label="&zotero.__addonRef__.workspace.menu.syncmanager;" command="cmd_sync_manager_betternotes" />
<menuitem id="menu_close" label="&closeCmd.label;" key="key_close" accesskey="&closeCmd.accesskey;" command="cmd_close" />
</menupopup>

View File

@ -4,6 +4,7 @@
<!ENTITY zotero.__addonRef__.workspace.menu.open "Open Main Note...">
<!ENTITY zotero.__addonRef__.workspace.menu.openWindow "Open Workspace in Standalone Window">
<!ENTITY zotero.__addonRef__.workspace.menu.export "Export Main Note...">
<!ENTITY zotero.__addonRef__.workspace.menu.sync "Sync Main Note">
<!ENTITY zotero.__addonRef__.workspace.menu.syncmanager "Better Notes Sync Manager">
<!ENTITY zotero.__addonRef__.workspace.menu.insertNotes "Insert Notes...">
<!ENTITY zotero.__addonRef__.workspace.menu.insertTextTemplate "Insert Template">

View File

@ -4,6 +4,7 @@
<!ENTITY zotero.__addonRef__.workspace.menu.open "打开主笔记...">
<!ENTITY zotero.__addonRef__.workspace.menu.openWindow "在独立窗口中打开工作区">
<!ENTITY zotero.__addonRef__.workspace.menu.export "导出主笔记...">
<!ENTITY zotero.__addonRef__.workspace.menu.sync "同步主笔记">
<!ENTITY zotero.__addonRef__.workspace.menu.syncmanager "Better Notes同步管理">
<!ENTITY zotero.__addonRef__.workspace.menu.insertNotes "插入多条笔记...">
<!ENTITY zotero.__addonRef__.workspace.menu.insertTextTemplate "插入模板">

View File

@ -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 = {

View File

@ -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"
);

View File

@ -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<Number[]> {
let allNoteIds: Number[] = [note.id];
const linkMatches = note.getNote().match(/zotero:\/\/note\/\w+\/\w+\//g);