Файл 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 для получения подробной информации.строка

Вариации плагина

Для чего плагину нужны вариации? Очень просто: плагин может не только выполнять какое-то действие, но и содержать настройки или окно «О программе». Например, плагин-переводчик: самому плагину не требуется визуальное окно для перевода, так как это выполняется нажатием одной кнопки, но настройки плагина (направление перевода) и окно «О программе» должны быть визуальными. Поэтому потребуются как минимум две вариации плагина (сам перевод и настройки), или три, если надо добавить окно «О программе» с информацией о плагине и его разработчиках или о программном обеспечении, использованном для создания плагина.
Для правильной работы плагина файлы .html для всех вариаций должны быть помещены в корневую папку плагина вместе с файлом конфигурации config.json.