- Make a copy of this repo as a widget with the Use this widget button, please note that the repo name
must be the same as the widget name, the default branch must be
main - Clone your repo to a local development folder. For convenience, you can place this folder in
your
{workspace}/data/widgets/folder
- widget.json
- icon.png (optional default icon, 160*160)
- preview.png (optional default preview, 1024*768)
- README*.md
- index.html
{
"name": "widget-sample",
"author": "Vanessa",
"url": "https://github.com/siyuan-note/widget-sample",
"version": "0.0.4",
"minAppVersion": "3.7.0",
"displayName": {
"default": "Widget Sample",
"zh-CN": "挂件示例"
},
"description": {
"default": "This is a widget sample",
"zh-CN": "这是一个挂件示例"
},
"readme": {
"default": "README.md",
"zh-CN": "README.zh-CN.md"
},
"icon": "icon.png",
"preview": "preview.png",
"funding": {
"openCollective": "",
"patreon": "",
"github": "",
"custom": [
"https://ld246.com/sponsor"
]
},
"keywords": [
"sample", "示例"
]
}name: Widget name, must be the same as the repo name, and must be unique globally (no duplicate widget names in the marketplace)author: Widget author nameurl: Widget repo URLversion: Widget version number, it is recommended to follow the semver specificationminAppVersion: Minimum version number of SiYuan required to use this widgetdisplayName: Widget display name, mainly used for display in the marketplace list, supports multiple languagesdefault: Default language, must existzh-CN,enand other languages: optional, must be BCP 47 tags (e.g.zh-CN,zh-TW,en,ja,pt-BR)
description: Widget description, mainly used for display in the marketplace list, supports multiple languagesdefault: Default language, must existzh-CN,enand other languages: optional, must be BCP 47 tags
readme: readme file name, mainly used to display in the marketplace details page, supports multiple languagesdefault: Default language, must existzh-CN,enand other languages: optional, must be BCP 47 tags- Relative images are loaded from
package.zipwhen present; otherwise the online marketplace falls back to the matching GitHub Release. Include them inpackage.zipfor offline use
icon: Optional marketplace icon filename at the package root. Supports PNG, JPEG, WebP, and AVIF up to 64 KiB; the recommended size is 160*160preview: Optional marketplace preview filename at the package root. Supports PNG, JPEG, WebP, and AVIF up to 512 KiB; the recommended size is 1024*768- SVG is unsupported. To omit an image, remove its field and the legacy
icon.pngorpreview.png; an empty field value is invalid
- SVG is unsupported. To omit an image, remove its field and the legacy
funding: Widget sponsorship informationopenCollective: Open Collective namepatreon: Patreon namegithub: GitHub login namecustom: Custom sponsorship link listlinks: Labeled custom sponsorship links, for example{"label": "Sponsor", "url": "https://example.com"}
keywords: Search keyword list, used for marketplace search function
No matter which method is used to compile and package, we finally need to generate a package.zip, which contains at least the following files:
- Image files declared by
iconandpreview(optional) - README*.md
- widget.json
- index.html
- Generate the package.zip
- Create a new GitHub release using your new version number as the "Tag version". See here for an example: https://github.com/siyuan-note/widget-sample/releases
- Upload the file package.zip as binary attachments
- Publish the release
If it is the first release, please create a pull request to the Community Bazaar repository and modify the widgets.json file in it. This file is the index of all community widget repositories, the format is:
{
"repos": [
"username/reponame"
]
}After the PR is merged, the bazaar will automatically update the index and deploy through GitHub Actions. When releasing a new version of the widget in the future, you only need to follow the above steps to create a new release, and you don't need to PR the community bazaar repo.
Under normal circumstances, the community bazaar repo will automatically update the index and deploy every hour, and you can check the deployment status at https://github.com/siyuan-note/bazaar/actions.