Данный файл - основа любого модуля. Он описывает все главные моменты:
Представляет из себя текстовый файл с контентом в формате JSON. Простой пример:
{
"name":"[0]",
"info":
{
"en": "[1]",
"ru": "[2]"
},
"icon": "[3]",
"description":"[4]",
"description_small":
{
"en": "[5]",
"ru": "[6]"
},
"major_version": [7],
"minor_version": [8],
"developer_name": "[9]",
"developer_email": "[10]",
"developer_site": "[11]",
"api_version": [12],
"actions": [],
"localize": {},
"engine": [],
"browser": [],
"depends": []
}
Я специально обозначил основные поля модуля в формате [число]. Вместо такого вида строки у каждого поля будет своё содержимое.
Пусть наш модуль будет назваться SamplePlugin. Тогда:
Информация о версии модуля будет отображаться в менеджере формате [7].[8], поэтому:
Информация о разработчике модуля:
Информация о версии Browser Automation Studio:
Далее идут самые важные, и, пожалуй, самые интересные части. Тут стоит вспомнить первую статью о структуре модуля. В ней мы уже частично затрагивали значения полей, о который я расскажу далее.
Информация о действиях (экшенах) модуля расположена в поле actions. Все указанные экшены будут отображаться на панели модуля в режиме Запись. Добавим два любых действия, пусть они будут называться Sample_Action1 и Sample_Action2. После преобразования, массив actions будет выглядеть, например, так:
"actions":
[
{
"name":"[0]",
"description":
{
"en": "[1]",
"ru": "[2]"
},
"template": "[3]",
"is_element": [4],
"interface": "[5]",
"select": "[6]",
"code":
[
{
"file": "[7]",
"name": "[8]"
}
]
},
{
"name":"[0]",
"description":
{
"en": "[1]",
"ru": "[2]"
},
"template": "[3]",
"is_element": [4],
"interface": "[5]",
"select": "[6]",
"code":
[
{
"file": "[7]",
"name": "[8]"
}
]
}
],
Информация о локализации, переводе всех строк и текстов, которые содержатся в модуле и в каждом конкретном действии хранится в объекте localize.
Изменения этого блока можно будет отследить при переключении языка в самой программе. Синтаксис довольно простой:
"localize":
{
"Example 1 string":
{
"ru":"Пример 1 строки"
},
"Example 2 string":
{
"ru":"Пример 2 строки"
},
"Example 3 string":
{
"ru":"Пример 3 строки"
}
},
Здесь имеет смысл упомянуть основную особенность - переводить можно не просто строки, но и HTML-Элементы. Так же, очень важно, если в строке содержится символ “, его нужно экранировать косой чертой \. Это необходимо для соблюдения структуры .json файла манифеста.
Чтобы упростить использование однотипного кода или писать сложные алгоритмы, лучше подключать отдельный файл engine.js. Указывается он достаточно просто:
"engine":
[
"engine.js"
],
Название файла движка может быть любым, но лучше придерживаться определенных правил и завести привычку именовать файлы правильно, чтобы избежать путаницы в будущем.
Данный объект, как и Engine уже был упомянут ранее. В browser.js размещают логику работы с браузером. Обычно это нужно, если вы желаете сделать модуль, который расширяет возможности движка BAS и хотите добавить новые возможности. Это стандартный .js файл, который, как и engine.js хранит основную логику взаимодействий вашего модуля. Подключается так же как и прошлый объект:
"browser":
[
"browser.js"
],
Данный объект содержит информацию о том, какие другие модули должен будет использовать ваш плагин. Используется достаточно редко, подключается следующим образом:
"depends":
[
"FirstModuleName",
"SecondModuleName"
]