The default plugin marketplace for Noto.
Plugin Center reads index.json from this repository and lists what it
lists; Settings > Plugins can point it at another repository instead.
index.json names each plugin, where its folder lives (repo, ref,
path), and the SHA-256 of its main.js and manifest.json. Noto refuses
to install a plugin whose files do not match those digests, so an entry
vouches for exact code, not for whatever a repository holds later.
plugins/reading-time/ is a small example: it counts the words in the note
in front and says how long it takes to read. It asks only for editor.read,
so it runs sandboxed, with no page, no app access and no network.
A plugin is a folder with manifest.json ("runtime": "sandboxed") and one
self-contained ES module, main.js. Noto's
plugin guide
describes both and what the sandbox allows.
To list one, open a pull request that adds an entry to index.json:
{
"id": "com.example.my-plugin",
"name": "My Plugin",
"description": "One line, at most 200 characters.",
"version": "1.0.0",
"repo": "owner/repo",
"ref": "v1.0.0",
"path": "",
"sha256": "<shasum -a 256 main.js>",
"manifestSha256": "<shasum -a 256 manifest.json>"
}path is the plugin's folder inside repo, empty for its root. Pin ref to
a tag or commit, and update both digests with every release.