创建一个静态扩展存储库

To host your own extensions and leverage Blender update system all that is required is to host a static JSON file that is generated by Blender.

JSON

To generate a valid JSON file use the server generate Blender command-line tool:

  1. blender --command extension server-generate --repo-dir=/path/to/packages

This creates an index.json listing from all the .zip extensions found in the --repo-dir location.

For more details, read the generated JSON API.

测试

To test the generated repository, add a new Remote Repository from the Preferences:

  • 获取扩展 → 存储库 → [+] → 添加扩展存储库

  • Paste the location of the generated JSON as the URL. So the example /path/to/packages would use the:

    • file:///path/to/packages/index.json on Linux and macOS.

    • file:///C:/path/to/packages/index.json on Windows.

    • file://HOST/share/path/to/packages/index.json for network shares on Windows.

Tip

Open file:/// in a web browser and navigate to the repository location and copy that as the remote repository URL.

Extensions Listing HTML

The server-generate command can optionally create a simple website using the --html argument.

  1. blender --command extension server-generate --repo-dir=/path/to/packages --html

This creates an index.html file ready to use, listing extensions which can be dropped into Blender for installation.

下载链接

In order to support drag and drop for installing from a remote repository, there are a few optional ways to prepare the URLs.

The only strict requirement is that the download URL must end in .zip.

You can pass different arguments to the URL to give more clues to Blender about what to do with the dropped URL.

存储库:

Link to the JSON file to be used to install the repository in Blender. Supports relative URLs.

platforms:

Comma-separated list of supported platforms. If omitted, the extension will be available in all operating systems.

blender_version_min:

Minimum supported Blender version, e.g., 4.2.0.

blender_version_max:

Blender version that the extension does not support, earlier versions are supported.

Tip

The more details you provide, the better the user experience.

With the exception of the repository, all the other parameters can be extracted from the extensions manifest. Those arguments are to be encoded as part of the URL.

预期的格式:

{URL}.zip?repository={repository}&blender_version_min={version_min}&blender_max={version_max_exclusive}&platforms={platform1,platform2}

Example from self-hosted repository:

http://my-site.com/my-addon.zip?repository=.%2Findex.json&blender_version_min=4.2.0&platforms=windows-x64

Example from the Extensions Platform:

https://extensions.blender.org/download/sha256:57a6a5f39fa2cc834dc086a27b7b2e572c12fd14f8377fb8bd1c7022df3d7ccb/add-on-amaranth-v1.0.23.zip?repository=%2Fapi%2Fv1%2Fextensions%2F&blender_version_min=4.2.0&platforms=linux-x64%2Cmacos-x64

Note

%2F and %2C are simply the url-encoded equivalent of / and , respectively.