To submit an extension, you need to create a Github repo for it and make a PR to this repo.
E.g. https://github.com/tonsky/roam-calculator:
- Provide
README.md
(required) - Provide
extension.js
(required) - Provide
extension.css
(optional) - Provide
CHANGELOG.md
(optional)
Your extension should export as default a map with onload
and onunload
functions.
All state setup in onload
should be removed in onunload
.
export default {
onload: () => {},
onunload: () => {}
};
If build.sh
exists in the root of your repo, it will be invoked before looking for extension.js
/extension.css
files.
The environment it’ll be invoked in is ubuntu-20.04
from Github Actions. Consult this to see what is available.
If your build script requires anything extra (e.g. libraries from NPM), it should download them as a part of build.sh
execution.
- Fork this repo
- Create metadata file in
extensions/<your username>/<your repo>.json
In a case of calculator, you would create
extensions/tonsky/roam-calculator.json
with the following content:
{
"name": "Test Extension 1",
"short_description": "Prints 'Test message 1'",
"author": "Nikita Prokopov",
"tags": ["print", "test"], //optional
"source_url": "https://github.com/tonsky/roam-calculator",
"source_repo": "https://github.com/tonsky/roam-calculator.git",
"source_commit": "d5ecd16363975b2e7a097d46e5f411c95e16682d",
"stripe_account": "acct_1LGASrQVCl6NYjck" // optional
}
Then make a Pull Request with this change. After it’s merged, your extension will be published in the Roam Marketplace.
We do not support themes yet, we hope to add them soon. Please do not submit a theme as an extension.