The list of plugins Bläck offers under Settings → Plugins → Find plugins
- TypeScript 82.3%
- JavaScript 15.8%
- CSS 1.9%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| packages | ||
| plugins | ||
| scripts | ||
| shared | ||
| tests | ||
| zips | ||
| .gitignore | ||
| package-lock.json | ||
| package.json | ||
| plugins.json | ||
| README.md | ||
| tsconfig.json | ||
Bläck Studio plugins
Everything for Bläck Studio's plugins:
- The list. Bläck Studio offers it under Settings → Plugins → Find plugins, reading
plugins.jsonfrom this repository'smainbranch. - The plugins on it, in
plugins/. - The SDK, in
packages/black-plugin: the types, the build, and the guide to writing a plugin. - The starter template, in
packages/create-black-plugin.
plugins/<id>/ a plugin: manifest.json and src/
shared/ what the dashboard's plugins share: days, streaks, deadlines, cards
zips/<id>-<version>.zip each version, as built and vouched for
plugins.json the list: every plugin's latest version, its zip and SHA-256
packages/black-plugin the SDK
packages/create-black-plugin npm create black-plugin
Changing a plugin, or adding one
npm install
# edit plugins/<id>/, and raise its version in manifest.json
npm run release # builds every plugin into zips/, and writes plugins.json
npm test && npm run check
git add -A && git commit
How it works:
- Reproducible zips. A zip is the same every time for the same source, so its SHA-256 says what's in it.
- Versions don't change. A version once listed is never made again: a
changed plugin needs a new version, and
npm run releasesays so if it doesn't have one. The old zips stay, so nothing that was vouched for goes away. - Checked on every push. The CI checks that
zips/andplugins.jsonare exactly what the source makes.
A plugin of your own can live anywhere: build it with the SDK (npm run build in its folder makes its zip and prints the SHA-256), and add an entry
here, with its download address and SHA-256. Or keep a list of your own: any
plugins.json like this one, at an https address, can be added in Bläck Studio
under Settings → Plugins → Find plugins → Plugin lists.
Trying a plugin in Bläck Studio as you write it
From its folder: npm run dev builds it into Bläck Studio's plugins folder on every
save, and Bläck Studio reloads it. See the guide.
What Bläck Studio checks
- The download: Bläck Studio installs a plugin only from a list. It refuses the zip unless its SHA-256 is the one the list gives, and it must hold the plugin the list names, with nothing outside its folder.
- Permissions: the user is asked to allow what the plugin asks for, in a window of Bläck Studio's own, before it runs.