Skip to content

zotero-plugin-dev/zotero-plugin-registry

Repository files navigation

Zotero Plugin Registry

Zotero Plugin Registry is a self-hosted, structured registry that aggregates plugin metadata by collecting and parsing developers' self-hosted update.json files.

This project is the successor to the plugin listing functionality in zotero-chinese/zotero-plugins, which was primarily designed to cache and mirror .xpi files hosted on GitHub to support users in mainland China. However, that system did not automatically parse plugin versions or compatibility information from update.json, nor did it support plugins hosted outside GitHub.

In contrast, this new repository:

  • Collects only essential metadata for each plugin (meta.json) and the URL to its update.json
  • Automatically fetches and parses version and compatibility info from the update.json
  • Generates structured JSON outputs for frontend applications or indexing
  • Serves as the canonical data source for a new, internationalized Zotero plugin store frontend

The previous frontend site and zotero-plugins project created by the Zotero Chinese community will continue to serve Chinese users with a localized interface and GitHub mirror links. This project aims to power a new global plugin ecosystem, with improved automation, wider plugin support, and international accessibility.

Project Structure

.
└── plugins/
   └── <plugin-id>/
      ├── meta.json            # Base plugin metadata (manually maintained)
      ├── meta.generated.json  # Generated metadata including versions
      └── icon.png             # Optional plugin icon
scripts/
└── build.ts                   # Build script to generate aggregated data
package.json                   # Project config and dependencies
README.md                      # This document

Submitting Plugins

Open in GitHub Codespaces

Note

How to add a plugin that hasn't been included?

Add plugin metadata in ./plugins/<plugin-id>/meta.json, the basic format is shown below, and existing items can also be used as references.

After editing, commit and pull request. We will process it as soon as possible.

{
  "id": "[email protected]",
  "name": "Zotero Format Metadata",
  "update_json": "https://example.com/path/to/update.json",
  "description": "A useful Zotero plugin.",
  "homepage": "https://github.com/northword/zotero-format-metadata",
  "tags": ["metadata"]
}

Development Guide

Before starting development, you need to create a GitHub personal access token and store it in the local environment variable GITHUB_TOKEN.

# Clone the repository
git clone https://github.com/zotero-plugin-dev/zotero-plugin-registry.git
cd zotero-plugin-registry

# Install dependencies
corepack enable
pnpm install

# Build all plugins:
pnpm run build

# Build a specific plugin by ID:
pnpm run --only [email protected]

After script run, meta.generated.json and latest.json files will be created inside each plugin directory, ready for deployment or frontend consumption.

Note

How to use this project as a dependency for secondary development?

Developers can use the dist files like index.json from the publish branch.

Contributing

Contributions of plugin metadata files are welcome! Please keep the repository clean and comply with the MIT license.

License

MIT © Northword

Contact

For questions or suggestions, please open an issue on GitHub.

About

WIP | Zotero Plugin Registry | Data of Zotero Plugin Store

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •