Skip to content

nutstore/zotero-plugin-nutstore

Repository files navigation

Nutstore Zotero Plugin

zotero target version Using Zotero Plugin Template

This is a Zotero plugin for Nutstore.

🤔 What can it do?

  • One-click login to nutstore no longer requires cumbersome webdav configuration
  • Enhanced webdav with Nutstore desktop client (Avoid the issues caused by directly using Nutstore webdav.)

📦 Install Guide

  • Download the plugin (.xpi file) from below.

    Note: If you're using Firefox as your browser, right-click the .xpi and select "Save As.."

  • In Zotero click Tools in the top menu bar and then click Plugins

  • Go to the Extensions page and then click the gear icon in the top right.

  • Select Install Add-on from file.

  • Browse to where you downloaded the .xpi file and select it.

  • Finish!

📖 User Manual

1. Login to Nutstore to help you configure Zotero Sync

  • Click the login button in the plugin perference panel.
  • In the popped-up web page, log in to Nutstore account.
  • Then click open Zotero on the web page.
  • Done! Now your Zotero will use Nutstore service for file synchronization.

2. Enhanced Webdav

Note: This feature is only available for Windows now.

🛠️ Development

Please see zotero-plugin-template.

Directory Structure

This section shows the directory structure of a template.

  • All .js/.ts code files are in ./src;
  • Addon config files: ./addon/manifest.json;
  • UI files: ./addon/content/*.xhtml.
  • Locale files: ./addon/locale/**/*.flt;
  • Preferences file: ./addon/prefs.js;
.
|-- .github/                  # github conf
|-- .vscode/                  # vscode conf
|-- addon                     # static files
|   |-- bootstrap.js
|   |-- content
|   |   |-- icons
|   |   |   |-- favicon.png
|   |   |   `-- favicon@0.5x.png
|   |   |-- preferences.xhtml
|   |   `-- zoteroPane.css
|   |-- locale
|   |   |-- en-US
|   |   |   |-- addon.ftl
|   |   |   |-- mainWindow.ftl
|   |   |   `-- preferences.ftl
|   |   `-- zh-CN
|   |       |-- addon.ftl
|   |       |-- mainWindow.ftl
|   |       `-- preferences.ftl
|   |-- manifest.json
|   `-- prefs.js
|-- build                         # build dir
|-- node_modules
|-- src                           # source code of scripts
|   |-- addon.ts                  # base class
|   |-- hooks.ts                  # lifecycle hooks
|   |-- index.ts                  # main entry
|   |-- modules                   # sub modules
|   |   |-- examples.ts
|   |   `-- preferenceScript.ts
|   `-- utils                 # utilities
|       |-- locale.ts
|       |-- prefs.ts
|       |-- wait.ts
|       |-- window.ts
|       `-- ztoolkit.ts
|-- typings                   # ts typings
|   `-- global.d.ts

|-- .env                      # enviroment config (do not check into repo)
|-- .env.example              # template of enviroment config, https://github.com/northword/zotero-plugin-scaffold
|-- .gitignore                # git conf
|-- .gitattributes            # git conf
|-- eslint.config.mjs         # eslint conf, https://eslint.org/
|-- LICENSE
|-- package-lock.json
|-- package.json
|-- tsconfig.json             # typescript conf, https://code.visualstudio.com/docs/languages/jsconfig
|-- README.md
`-- zotero-plugin.config.ts   # scaffold conf, https://github.com/northword/zotero-plugin-scaffold

Disclaimer

Use this code under AGPL. No warranties are provided. Keep the laws of your locality in mind!

If you want to change the license, please contact us.