Skip to content

Obsidian plugin to integrate with Zotero

License

Notifications You must be signed in to change notification settings

vanakat/zotero-bridge

Repository files navigation

Obsidian Zotero Bridge Plugin

Obsidian-Zotero integration plugin that provides APIs for other plugins to connect to Zotero.

Prerequisites

Zotero >= 7

Enable Local API feature in settings: Settings > Advanced > Allow other applications on this computer to communicate with Zotero

Zotero <= 6

Install Zotero addon ZotServer

How to use

Zotero Bridge provides APIs for other plugins to connect to Zotero.

Example of such consumer plugin is Zotero Link.

APIs of this plugin are published with Obsidian plugin api library and can be used anywhere in Obsidian.

Example use of Zotero Bridge APIs in Templater user scripts:

zotero.js user script:

module.exports = async function () {
    const item = await PluginApi.ZoteroBridge.v1().search();
    return (prop) => dotAccess(prop, item.getValues());
}

function dotAccess(str, obj) {
    return str.split('.').reduce((previousValue, currentValue) => previousValue[currentValue], obj);
}

This function can now be used in templates:

(this example is taken from #2)

<%* const zi = await tp.user.zotero() %>


<% zi('firstAuthor.lastName') %><%* if (zi('authors.length')  == 2) { %> and <% zi('authors')[1].lastName %><%* } else if (zi('authors.length') > 2) { %> et al.<%* } %> <% zi('date.year') %> <% zi('title') %>

How to contribute

  1. Fork and clone this repository
  2. Link this directory to your plugins directory: ln -sfn <this-directory> <your-test-vault>/.obsidian/plugins/obsidian-zotero
  3. npm install to install all dependencies
  4. npm run dev will run development server
  5. Reload your Obsidian with test vault open

Please refer to following helpful resources:

Other Zotero integration plugins

While working on this plugin I found another Zotero integration one called Zotero Integration. If you are looking for a citation/bibliography integration with Zotero it might be a good option for you.

License

MIT