Манифест
opensd.toml: поля плагина, действия, поля формы и настройки по умолчанию.
Автор пишет opensd.toml. При упаковке CLI проверяет его и кладёт в пакет manifest.json с теми же ключами.
sdk = 1
id = "com.example.counter"
name = "Counter"
version = "1.0.0"
author = "Example"
description = "Счётчик нажатий"
homepage = "https://example.com"
license = "MIT"
icon = "assets/icon.svg"
min_app = "0.2.0"
[runtime]
type = "wasm" # "wasm" или "js"
main = "plugin.wasm"
[ui]
inspector = "ui/inspector.html" # страница настроек кнопки по умолчанию
settings = "ui/settings.html" # окно настроек всего плагина
[package]
include = ["assets", "ui"] # что попадёт в пакет, кроме кода и манифеста
[permissions]
loopback = ["9222-9322"]
network = ["https://api.example.com"]
clipboard = true
[[permissions.launch]]
id = "editor"
name = "Example Editor"
windows = ["%LOCALAPPDATA%/Programs/Editor/editor.exe"]
macos = ["/Applications/Editor.app"]
linux = ["/usr/bin/editor"]
args = ["--port={0}"]
[[actions]]
id = "com.example.counter.increment"
name = "Увеличить"
description = "Каждое нажатие прибавляет единицу"
icon = "assets/key.svg"
controllers = ["key"]
settings = { count = 0, step = 1 }
title = { align = "bottom", size = 14, color = "#ffffff" }
gestures = { long_press = 600 }
[[actions.fields]]
id = "step"
label = "Шаг"
type = "number"
min = 1
max = 100
[[actions.states]]
image = "assets/key.svg"Поля верхнего уровня
Действие
Поля формы
Пользователь меняет поле, приложение сохраняет значение и отправляет плагину событие settings.
Разрешения из [permissions] описаны в разделе разрешения, жесты в разделе протокол, поля формы и HTML-страницы в разделе настройки.