parent
eac9a7e8bc
commit
4dd666c92d
|
|
@ -29,6 +29,7 @@
|
|||
<keyset>
|
||||
<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_import" key="I" modifiers="accel" command="cmd_import" />
|
||||
<key id="key_export" key="E" modifiers="accel" command="cmd_export" />
|
||||
<key id="key_close" key="W" modifiers="accel" command="cmd_close" />
|
||||
<key id="key_indent" keycode="VK_TAB" command="cmd_indent" />
|
||||
|
|
@ -36,6 +37,7 @@
|
|||
</keyset>
|
||||
<command id="cmd_new" oncommand="Zotero.Knowledge4Zotero.events.onEditorEvent({type: 'createWorkspace'});" />
|
||||
<command id="cmd_open" oncommand="Zotero.Knowledge4Zotero.events.onEditorEvent({type: 'selectMainKnowledge'});" />
|
||||
<command id="cmd_import" oncommand="Zotero.Knowledge4Zotero.events.onEditorEvent({type: 'import'});" />
|
||||
<command id="cmd_export" oncommand="Zotero.Knowledge4Zotero.events.onEditorEvent({type: 'export', content: {editorInstance: {_item: false}}});" />
|
||||
<command id="cmd_close" oncommand="window.close();" />
|
||||
<command id="cmd_addheading" oncommand="Zotero.Knowledge4Zotero.events.onEditorEvent({type: 'addHeading'});" />
|
||||
|
|
@ -55,6 +57,7 @@
|
|||
<menupopup id="menu_FilePopup">
|
||||
<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_import" label="&zotero.__addonRef__.workspace.menu.import;" key="key_import" accesskey="I" command="cmd_import" />
|
||||
<menuitem id="menu_export" label="&zotero.__addonRef__.workspace.menu.export;" key="key_export" accesskey="E" command="cmd_export" />
|
||||
<menuitem id="menu_close" label="&closeCmd.label;" key="key_close" accesskey="&closeCmd.accesskey;" command="cmd_close" />
|
||||
</menupopup>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
<!ENTITY zotero.__addonRef__.workspace.menu.new "Create New Main Note">
|
||||
<!ENTITY zotero.__addonRef__.workspace.menu.open "Open Main Note...">
|
||||
<!ENTITY zotero.__addonRef__.workspace.menu.import "Import Notes...">
|
||||
<!ENTITY zotero.__addonRef__.workspace.menu.export "Export Main Note...">
|
||||
<!ENTITY zotero.__addonRef__.workspace.menu.addheading "Insert Heading...">
|
||||
<!ENTITY zotero.__addonRef__.workspace.menu.indent "Decrease Heading Level">
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
<!ENTITY zotero.__addonRef__.workspace.menu.new "创建新主笔记">
|
||||
<!ENTITY zotero.__addonRef__.workspace.menu.open "打开主笔记...">
|
||||
<!ENTITY zotero.__addonRef__.workspace.menu.import "导入笔记...">
|
||||
<!ENTITY zotero.__addonRef__.workspace.menu.export "导出主笔记...">
|
||||
<!ENTITY zotero.__addonRef__.workspace.menu.addheading "插入标题...">
|
||||
<!ENTITY zotero.__addonRef__.workspace.menu.indent "降低标题层级">
|
||||
|
|
|
|||
|
|
@ -667,6 +667,48 @@ class AddonEvents extends AddonBase {
|
|||
-1,
|
||||
node.model.lineIndex
|
||||
);
|
||||
} else if (message.type === "import") {
|
||||
/*
|
||||
message.content = {}
|
||||
*/
|
||||
const io = {
|
||||
// Not working
|
||||
singleSelection: true,
|
||||
dataIn: null,
|
||||
dataOut: null,
|
||||
deferred: Zotero.Promise.defer(),
|
||||
};
|
||||
|
||||
(window as unknown as XULWindow).openDialog(
|
||||
"chrome://zotero/content/selectItemsDialog.xul",
|
||||
"",
|
||||
"chrome,dialog=no,centerscreen,resizable=yes",
|
||||
io
|
||||
);
|
||||
await io.deferred.promise;
|
||||
|
||||
const ids = io.dataOut;
|
||||
const notes = Zotero.Items.get(ids).filter((item: ZoteroItem) =>
|
||||
item.isNote()
|
||||
);
|
||||
if (notes.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
const newLines = [];
|
||||
newLines.push("<h1>Imported Notes</h1>");
|
||||
newLines.push("<p> </p>");
|
||||
|
||||
for (const note of notes) {
|
||||
const linkURL = this._Addon.knowledge.getNoteLink(note);
|
||||
const linkText = note.getNoteTitle().trim();
|
||||
newLines.push(
|
||||
`<p><a href="${linkURL}">${linkText ? linkText : linkURL}</a></p>`
|
||||
);
|
||||
newLines.push("<p> </p>");
|
||||
}
|
||||
// End of line
|
||||
await this._Addon.knowledge.addLinesToNote(undefined, newLines, 65535);
|
||||
} else if (message.type === "export") {
|
||||
/*
|
||||
message.content = {
|
||||
|
|
|
|||
|
|
@ -358,20 +358,12 @@ class Knowledge extends AddonBase {
|
|||
this._Addon.views.showProgressWindow("Better Notes", "Not a note item");
|
||||
return;
|
||||
}
|
||||
let libraryID = linkedNote.libraryID;
|
||||
let library = Zotero.Libraries.get(libraryID);
|
||||
let groupID: string;
|
||||
if (library.libraryType === "user") {
|
||||
groupID = "u";
|
||||
} else if (library.libraryType === "group") {
|
||||
groupID = `${library.id}`;
|
||||
}
|
||||
let noteKey = linkedNote.key;
|
||||
let linkText = linkedNote.getNoteTitle().trim();
|
||||
const link = this.getNoteLink(linkedNote);
|
||||
const linkText = linkedNote.getNoteTitle().trim();
|
||||
this.addSubLineToNote(
|
||||
targetNote,
|
||||
`<a href="zotero://note/${groupID}/${noteKey}/" rel="noopener noreferrer nofollow">${
|
||||
linkText ? linkText : `zotero://note/${groupID}/${noteKey}/`
|
||||
`<a href="${link}" rel="noopener noreferrer nofollow">${
|
||||
linkText ? linkText : `${link}`
|
||||
}</a>`,
|
||||
lineIndex,
|
||||
true
|
||||
|
|
@ -382,6 +374,19 @@ class Knowledge extends AddonBase {
|
|||
);
|
||||
}
|
||||
|
||||
getNoteLink(note: ZoteroItem) {
|
||||
let libraryID = note.libraryID;
|
||||
let library = Zotero.Libraries.get(libraryID);
|
||||
let groupID: string;
|
||||
if (library.libraryType === "user") {
|
||||
groupID = "u";
|
||||
} else if (library.libraryType === "group") {
|
||||
groupID = `${library.id}`;
|
||||
}
|
||||
let noteKey = note.key;
|
||||
return `zotero://note/${groupID}/${noteKey}/`;
|
||||
}
|
||||
|
||||
async modifyLineInNote(note: ZoteroItem, text: string, lineIndex: number) {
|
||||
note = note || this.getWorkspaceNote();
|
||||
if (!note) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue