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 itsupdate.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.
.
└── 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
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"]
}
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.
Contributions of plugin metadata files are welcome! Please keep the repository clean and comply with the MIT license.
MIT © Northword
For questions or suggestions, please open an issue on GitHub.