创建静态扩展存储库

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.

有关详细信息,请阅读生成的 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:

Blender 的最低支持版本,例如 4.2.0

blender_version_max:

扩展不支持的 Blender 版本,支持更早的版本。

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}

自托管存储库示例:

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

扩展平台示例:

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.