bas-docs


Project maintained by CheshireCaat Hosted on GitHub Pages — Theme by mattgraham

Структура manifest.json

Данный файл - основа любого модуля. Он описывает все главные моменты:

Представляет из себя текстовый файл с контентом в формате 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)

Далее идут самые важные, и, пожалуй, самые интересные части. Тут стоит вспомнить первую статью о структуре модуля. В ней мы уже частично затрагивали значения полей, о который я расскажу далее.

Информация о действиях (экшенах) модуля расположена в поле 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.

Изменения этого блока можно будет отследить при переключении языка в самой программе. Синтаксис довольно простой:

"localize": 
{		
	"Example 1 string":
	{
		"ru":"Пример 1 строки"
	},
	"Example 2 string":
	{
		"ru":"Пример 2 строки"
	},
	"Example 3 string":
	{
		"ru":"Пример 3 строки"
	}
},

Здесь имеет смысл упомянуть основную особенность - переводить можно не просто строки, но и HTML-Элементы. Так же, очень важно, если в строке содержится символ , его нужно экранировать косой чертой \. Это необходимо для соблюдения структуры .json файла манифеста.

Движок (Engine)

Чтобы упростить использование однотипного кода или писать сложные алгоритмы, лучше подключать отдельный файл engine.js. Указывается он достаточно просто:

"engine": 
[
	"engine.js"
],

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

Браузер (Browser)

Данный объект, как и Engine уже был упомянут ранее. В browser.js размещают логику работы с браузером. Обычно это нужно, если вы желаете сделать модуль, который расширяет возможности движка BAS и хотите добавить новые возможности. Это стандартный .js файл, который, как и engine.js хранит основную логику взаимодействий вашего модуля. Подключается так же как и прошлый объект:

"browser": 
[
	"browser.js"
],

Зависимости (Depends)

Данный объект содержит информацию о том, какие другие модули должен будет использовать ваш плагин. Используется достаточно редко, подключается следующим образом:

"depends": 
[
	"FirstModuleName",
	"SecondModuleName"
]