跳至主要內容

Zotero 条目

Zotero Chinese小于 1 分钟

Zotero 条目

Item(条目)是 Zotero 中的基础数据元素。条目根据类型又可分为普通条目 (regular item),附件 (attachment item),笔记 (note item) 和注释 (annotation item)。Zotero 中,小到一个 PDF 附件中的一条高亮,大到一个集合(collection),都可以抽象为一个条目(Item)。

大多数插件的最终目的就是修改这些条目,例如,添加标签,修改信息,等等。

创建条目

new Zotero.Item(itemType);

获取条目

declare Zotero.Items.get: (ids: Number | Number[]) => ZoteroItem | ZoteroItem[];
declare Zotero.Items.getByLibraryAndKeyAsync: (
  libraryID: Number,
  itemKey: String
) => Promise<ZoteroItem>;
declare ZoteroPane.getSelectedItems: () => ZoteroItem[];

通过 Zotero.Items.get / getByLibraryAndKeyAsync 来从 ID 获取条目;
通过 ZoteroPane.getSelectedItems 获取当前选中的条目。

ZoteroPane.itemsView.getRow(2).ref;

修改条目

对条目内容进行修改后,请使用 item.save / item.saveTx()来保存。

var item = new Zotero.Item("computerProgram");
item.setType(Zotero.ItemTypes.getID("note"));

PDF 批注

Zotero 中的批注也是 Item 类型!

Zotero.Items.getAll(1).then((i) => i.filter((t) => t.isAnnotation()));

注释的属性:

  • annotationText:高亮注释的内容
  • parentItem:获得 pdf 条目
const annotations = Zotero.Items.get(reader.itemID).getAnnotations();
reader.navigate({ annotationKey: annotations[0].key });

从对话框选择条目

let io = { dataIn: null, dataOut: null, deferred: Zotero.Promise.defer() };
window.openDialog(
  "chrome://zotero/content/selectItemsDialog.xhtml",
  "",
  "chrome,dialog=no,centerscreen,resizable=yes",
  io
);
io.deferred.promise.then(() => console.debug(io));