Перейти к содержимому
Русский язык для Invision Community 5

Доработка хука для IPB 3.3.х

Изначально нужно было добавить подсветку синтаксиса для кодов 1С. Был найден рабочий хук BBкодов для подсветки синтаксиса, в котором для каждого языка создан отдельный файл с описанием синтаксиса. Вроде бы задача сводилась к тому чтобы по образу и подобию добавить файл для 1С, но столкнулся с тем, что символы русской раскладки игнорируются. Основные алгоритмы работы описаны в файле ядра хука, который запакован. В папке src он распакован, и после его анализа вызвал подозрение кусок кода:

function parseParams(str)
{
       var match, 
	result = {},
	arrayRegex = new XRegExp("^\\[(?<values>(.*?))\\]$"),
	regex = new XRegExp(
		"(?<name>[\\w-]+)" +
		"\\s*:\\s*" +
		"(?<value>" +
			"[\\w-%#]+|" +		// word			
			"\\[.*?\\]|" +		// [] array
			'".*?"|' +			// "" string
			"'.*?'" +			// '' string
		")\\s*;?",
		"g"
	)
	;

где захотелось заменить

		"(?<name>[\\w-]+)" +

на

		"(?<name>[a-zA-Zа-яА-Я-]+)" +

и

			"[\\w-%#]+|" +		// word			

на

			"[a-zA-Zа-яА-Я-%#]+|" +		// word

 

Но после внесения изменений получить рабочий запакованный файл ядра не удалось. Перепробовал несколько онлайн сервисов для упаковки JS. Самый лучший результат дал http://dean.edwards.name/packer/ (для сравнения паковал исходный файл и сравнивал с запакованным родным), но все же отличия присутствуют - даже упакованный таким образом оригинальный файл исходника не работает под IPB.

Как внести изменения в хук и правильно его запаковать?

Изменено пользователем samtron76

Рекомендованные сообщения

Что мешает использовать распакованный вариант? Обфусцировать его обратно не обязательно вовсе.

  • Автор

Когда подкладывал распакованный модуль, хук переставал работать.

Заменил скрипты на предыдущую версию, проблема ушла.

Изменено пользователем samtron76

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.