Файл config.json — это файл конфигурации плагина, содержащий основные данные, необходимые для регистрации плагина в редакторах.
Ниже приводится пример кода для файла config.json (этот код используется для плагина Шахматы, но любой другой файл config.json создается аналогично):
{
"baseUrl": "",
"guid": "asc.{FFE1F462-1EA2-4391-990D-4CC84940B754}",
"name": "chess(fen)",
"variations": [
{
"buttons": [
{ "text": "OK", "primary": true },
{ "text": "Cancel", "primary": false }
],
"description": "chess",
"EditorsSupport": ["word", "cell", "slide"],
"icons": ["chess/icon.png", "chess/icon@2x.png"],
"initData": "",
"initDataType": "ole",
"initOnSelectionChanged": true,
"isInsideMode": false,
"isModal": true,
"isUpdateOleOnResize": true,
"isViewer": true,
"isVisual": true,
"url": "chess/index.html"
}
]
};
Имя | Описание | Тип |
baseUrl | Путь к плагину. Все остальные пути вычисляются относительно этого пути. Если плагин установлен на сервер, там прописывается дополнительный параметр — путь к плагинам. Если baseUrl == «», то используется путь ко всем плагинам. | строка |
guid | Идентификатор плагина. Должен быть типа asc.{uuid}. | строка |
name | Имя плагина, которое будет отображаться на панели плагинов. | строка |
variations | Вариации плагина или «подплагины» — См. раздел «Вариации плагинов» ниже. | массив |
variations.buttons | Перечень кнопок в окне плагина с возможностью скиновать. Используются только для визуальных плагинов в их собственном окне, например isVisual == true && isInsideMode == false). Кнопки могут быть главными или не главными. Флаг primary влияет только на скин кнопки. | массив |
variations.description | Описание плагина. | строка |
variations.EditorsSupport | Для каких редакторов предназначен плагин («word» — редактор текстовых документов, «cell» — редактор электронных таблиц, «slide» — редактор презентаций). | массив |
variations.icons | Графические файлы иконок плагина, используемых в редакторах: для обычных экранов и иконки со вдвое большим разрешением для дисплеев Retina. | массив |
variations.initData | Всегда равно «». Это данные, которые передаются плагину из редактора при запуске плагина (например, если initDataType == «text», плагин при запуске будет получать выделенный текст). | строка |
variations.initDataType | Тип данных, которые выделяются в редакторе и передаются плагину: «text» — текстовые данные, «html» — HTML-код, «ole» — данные OLE-объекта, «none» — никакие данные не передаются плагину. | строка |
variations.initOnSelectionChanged | Определяет, отслеживает ли плагин изменение выделения текста в окне редактора. | логическое значение |
variations.isInsideMode | Определяет, должен ли плагин отображаться в панели редактора, а не в собственном окне (используется только для визуальных немодальных плагинов). Обязательно должно выполняться следующее правило: isModal != isInsideMode. | логическое значение |
variations.isModal | Определяет, надо ли открывать плагин в отдельном модальном окне (используется только для визуальных плагинов). Обязательно должно выполняться следующее правило: isModal != isInsideMode. | логическое значение |
variations.isUpdateOleOnResize | Определяет, нужно ли перерисовывать OLE-объект при изменении размера объекта в редакторе (векторная отрисовка). Используется только для OLE-объектов, то есть initDataType == «ole»). | логическое значение |
variations.isViewer | Определяет, доступен ли плагин, если документ доступен только в режиме просмотра. | логическое значение |
variations.isVisual | Определяет, является ли плагин визуальным (при их использовании открывается окно для выполнения какого-либо действия или рисуется определенный интерфейс в панели редактора) или невизуальным (представляют собой кнопки, при нажатии которых производятся манипуляции с документом). | логическое значение |
variations.url | Точка входа в плагин, то есть HTML-файл, подключающий файл pluginBase.js (базовый файл для работы с плагинами) и запускающий код плагина. См. раздел index.html для получения подробной информации. | строка |
Вариации плагина
Для чего плагину нужны вариации? Очень просто: плагин может не только выполнять какое-то действие, но и содержать настройки или окно «О программе». Например, плагин-переводчик: самому плагину не требуется визуальное окно для перевода, так как это выполняется нажатием одной кнопки, но настройки плагина (направление перевода) и окно «О программе» должны быть визуальными. Поэтому потребуются как минимум две вариации плагина (сам перевод и настройки), или три, если надо добавить окно «О программе» с информацией о плагине и его разработчиках или о программном обеспечении, использованном для создания плагина.