Scripts discussion (3)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Infocatcher
Работает нормально. Можно релизить)

Только маленький вопрос. Как можно забанить что-либо вставлять в fb2 при нажатии Ctrl+U (underline в fb2 не работает)?

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Infocatcher

Что-то не улавливаю логику -unformattedTags=["a"]:
кнопка

Code: Select all

-"jsBeautifier (FB2)" Call("Scripts::Main", 1, "jsBeautifier2.js", `-wrapLineLength=0 -unformattedTags=["p"]`)
в тексте скрипта в строке

Code: Select all

unformatted = options.unformatted || [...
дописано 'p', кусок текста

Code: Select all

</title><empty-line/><p><strong>...</strong></p>
по логике должен стать таким

Code: Select all

</title>
<empty-line/>
<p><strong>...</strong></p>
а становится таким

Code: Select all

</title>
<empty-line/><p><strong>...</strong></p>
Почему?
:)

Добавлено:
Я думал, что -unformattedTags=["a"] исключает из обработки то, что справа от открывающего тега и слева от закрывающего и я ошибся, да? :) Указанные теги просто игнорируются, как-будто их нет?

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Добавлено:

В jsBeautifier2.js заменил unformatted = options.unformatted || [...]; на

Code: Select all

unformatted = options.unformatted || ['a', 'strong', 'code', 'sub', 'sup', 'i', 'binary', 'emphasis', 'strikethrough'];
Команда

Code: Select all

-"jsBeautifier (FB2)" Call("Scripts::Main", 1, "jsBeautifier2.js", `-wrapLineLength=0 -unformattedTags=["a","strong","code","sub","sup","emphasis","strikethrough","binary"]`)
Потом запустить

Code: Select all

Call("Scripts::Main", 1, "Multi_SR.js", `"\n[ \t]*\</p\>" "</p>" 0 1 0 16 3`)
дабы вернуть </p> в конец строки.
.
Если добавлять в конец скрипта последнюю команду, как правильнее:

Code: Select all

AkelPad.Call("Scripts::Main", 1, "Multi_SR.js", `"\n[ \t]*\</p\>" "</p>" 0 1 0 16 3`);
//или
AkelPad.CallW("Scripts::Main", 1, "Multi_SR.js", `"\n[ \t]*\</p\>" "</p>" 0 1 0 16 3`);
?

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

VladSh wrote:Только маленький вопрос. Как можно забанить что-либо вставлять в fb2 при нажатии Ctrl+U (underline в fb2 не работает)?
Добавил: https://github.com/Infocatcher/AkelPad_ ... 41e35e3e37
Теперь можно указывать вот так:
-tagExts='{"": "u", "xhtml": "ins", "fb2": ""}'

Skif_off wrote:Я думал, что -unformattedTags=["a"] исключает из обработки то, что справа от открывающего тега и слева от закрывающего и я ошибся, да? :) Указанные теги просто игнорируются, как-будто их нет?
Честно говоря, я в чужой код не лез и сверх того, что там в комментариях указано

Code: Select all

  The options are:
    ...
    unformatted (defaults to inline tags) - list of tags, that shouldn't be reformatted
сходу сказать не могу.

Хотя еще есть смысл проверить веб-версию (потому как через WSH работает примерно как IE6): http://jsbeautifier.org/, там сейчас вот такое:

Code: Select all

unformatted = options.unformatted || ['a', 'span', 'bdo', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'sub', 'sup', 'tt', 'i', 'b', 'big', 'small', 'u', 's', 'strike', 'font', 'ins', 'del', 'pre', 'address', 'dt', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
Ну, или скачать локально и проверить с подправленными параметрами.

В общем, если работает одинаково, то жаловаться лучше сюда: https://github.com/beautify-web/js-beautify/issues.
А если есть отличия, то будем починять... Но, впрочем, тоже туда пожаловаться можно. :)

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Да, еще по -unformattedTags. По идее, там задумка в том, чтобы при обработке каких-нибудь <em> не добавило вокруг лишних пробельных символов.
Skif_off wrote:Если добавлять в конец скрипта последнюю команду, как правильнее:

Code: Select all

AkelPad.Call("Scripts::Main", 1, "Multi_SR.js", `"\n[ \t]*\</p\>" "</p>" 0 1 0 16 3`);
//или
AkelPad.CallW("Scripts::Main", 1, "Multi_SR.js", `"\n[ \t]*\</p\>" "</p>" 0 1 0 16 3`);
?
Ох, это к Instructor'у... :?
По идее, AkelPad.CallW() лучше.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Infocatcher
Файлы большие, проверять онлайн не хочется.

файл может обработать за считанные секунды, а в другой раз запустишь - минута и больше. На том же самом. Или запускаешь правленный вариант - несколько минут ничего не происходит (хотя запущен), запускаешь без параметров - та же фигня, запускаешь дефолтный - 3-4 секунды и готово.
Открываешь десяток файлов приблизительно одинаковых по размеру и набору тегов, вызываешь правленный скрипт - 3-4 секунды и готово, запускаешь Multi_SR.js, жмешь Сохранить, закрываешь, так следующий. внезапно скрипт тормозит, ждешь три-пять минут, закрываешь AkelPad, открываешь заново, так несколько раз и внезапно скрипт четко отрабатывает.
Или шустро работал, несколько секунд на файл, внезапно начинает тупить - 1-2 минуты на файл.
Не пойму, как отследить, где он спотыкается.


+ такая фигня.
Infocatcher wrote:Да, еще по -unformattedTags. По идее, там задумка в том, чтобы при обработке каких-нибудь <em> не добавило вокруг лишних пробельных символов.
Лишние пробелы - зло, но получилось не очень: вынося теги из <p>...</p> на новую строку, скрипт затирает пробел после закрывающего тега. Не вижу логику.

Добавлено
Слил архив с гитхаба, скормил несколько забористых фрагментов: оффлайн версия отработала (запускал в Pale Moon, 11й ишак виснет) как jsBeautifier.js с моими правками без запуска Multi_SR.js :)) Ничего не понимаю.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Infocatcher
При такой записи:

Code: Select all

Call("Scripts::Main", 1, "insertTag.js", `-bbcode=-1 -xmlExts="[sx]html?|mht(ml)?|xml" -tagExts='{"": "i", "fb2": "emphasis"}'`)
и

Code: Select all

Call("Scripts::Main", 1, "insertTag.js", `-bbcode=-1 -xmlExts="[sxh]tml?|mht(ml)?" -tagExts='{"": "u", "xhtml": "ins", "fb2": ""}'`)
выскакивает диалог, где написано: b. И что делать непонятно.
Что такое "ins" непонятно. И как-то сложновато для понимания задание аргументов. Я не понимаю сути происходящего.

Добавлено:
Ага, это меня в теле скрипта сообщения сбили, что тэг T не поддерживается.
Старые записи для i и b отработали. На u вылетает диалог.

Добавлено:
При записи

Code: Select all

Call("Scripts::Main", 1, "insertTag.js", `-bbcode=-1 -tag="%%T" -xmlExts="[sxh]tml?|mht(ml)?" -tagExts='{"": "u", "xhtml": "ins", "fb2": ""}'`)
в fb2-подсветке вылетает сообщение "Тэги u, ins не поддерживаются!" (как я понимаю, этого мы и добивались),
а в xml-подсветке вставляется

Code: Select all

[u][/u]
(а это регресс)

Offline
Posts: 173
Joined: Mon Dec 06, 2010 9:53 am
Location: г.Харьков, Русь

Post by San_dr »

KDJ wrote:GUI for marking specified text via Coder plugin.
TextMarker.js"
Image

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

VladSh wrote:выскакивает диалог, где написано: b. И что делать непонятно.
Ни -tag, ни -template не заданы, вот и спрашивает, что делать.
VladSh wrote:Что такое "ins" непонятно. И как-то сложновато для понимания задание аргументов.
Ну, это из "xhtml": "ins" берется, надо же как-то описать, что именно не поддерживается.
VladSh wrote:в fb2-подсветке вылетает сообщение "Тэги u, ins не поддерживаются!" (как я понимаю, этого мы и добивались)
Угу.
VladSh wrote:а в xml-подсветке вставляется
Это из-за того, что xml не перечислено в -xmlExts.
В принципе, -xmlExts можно не передавать, там есть список по умолчанию.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Infocatcher wrote:Это из-за того, что xml не перечислено в -xmlExts.
В принципе, -xmlExts можно не передавать, там есть список по умолчанию.
Заработало, спасибо! :D

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

insertTag.js
  • Autodetect BBCode/HTML: prefer alias from Coder plugin
  • Correctly handle typed "<tag>"
  • Don't try to get Coder alias, if plugin isn't running
  • Added %T variable to detect tag (see -tagExts argument)
(all changes)

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Translator.js
Fixed: Yandex translator doesn't work.
Added languages:
- Google: Georgian,
- Bing: Welsh,
- Yandex: Arabic, Bosnian, Catalan, Georgian, Indonesian, Icelandic, Malay, Maltese, Vietnamese.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Updated Russian translation: Translator_Russian.lng

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »


Locked