Donutgramплагины
На этой страницеДва формата плагина

Формат .dgplugin

Код, описание и ресурсы одного плагина в обычном архиве.

Два формата плагина

Donutgram принимает одиночный файл .donut.js и архив .dgplugin. Оба формата сначала проверяются статически: открытие документа само по себе не запускает код.

Архив .dgplugin

Используйте его для плагинов с собственным значком, несколькими JavaScript-модулями и изображениями. В корне должны лежать manifest.json и файл, указанный в entry.

my-plugin/
├── manifest.json
├── main.js
├── modules/
│   └── format.js
└── assets/
    └── icon.png

.dgplugin — ZIP с проверяемой структурой. Рекомендуемый путь сборки — CLI SDK, который исключает неподдерживаемые файлы и формирует воспроизводимый архив.

Одиночный .donut.js

В начале файла должны последовательно находиться маркер и статический JSON-манифест. Ключи и строки внутри манифеста заключаются в двойные кавычки.

const _plugin = "donutgram";
const manifest = {
  "kind": "donutgram.plugin",
  "schemaVersion": 1,
  "id": "dev.example.single",
  "name": "Одна команда",
  "version": "1.0.0",
  "description": "Минимальный плагин одним файлом",
  "apiVersion": "^1.0.0",
  "entry": "main.js",
  "permissions": [],
  "profile": "localPrivate"
};

export default definePlugin({
  async activate(api) {
    await api.capabilities.list();
  }
});

В одиночном формате нельзя приложить файл иконки. Для своей картинки нужен .dgplugin.

Ограничения пакета

Инструменты SDK применяют ограничения: до 128 файлов, до 1 МиБ на файл и до 4 МиБ распакованных данных. Размер итогового архива не превышает 8 МиБ. Разрешены JavaScript, JSON, PNG, JPEG и WebP.

Пути должны быть относительными и однозначными. Символические ссылки, вложенные архивы, выход через .. и конфликтующие имена не принимаются.