Чтобы скрипт заработал, html-файл из архива следует положить в подпапку HTML папки той версии редактора, исполняемый файл которого запускаете. Создайте эту подпапку, если ее нет. js-файл должен лежать в папке скриптов, выбранной в настройках редактора.
Изменение в версии 1.3:
поправлено то, что после выхода из скрипта освобождалась не вся занимаемая им память.
В набор входят следующие скрипты:
1. Расстановка елочек и лапок;
2. Расстановка елочек и лапок (начиная с 1-го уровня);
3. Расстановка елочек и лапок (начиная со 2-го уровня);
4. Расстановка елочек и лапок (с позиции курсора);
5. Расстановка елочек и лапок (с позиции курсора, начиная с 1-го уровня);
6. Расстановка елочек и лапок (с позиции курсора, начиная со 2-го уровня);
7. Переход на след. елочки;
8. Переход на пред. елочки;
9. Переход на пред. лапки;
10. Переход на след. лапки;
11. Переход на пред. прямые кавычки;
12. Переход на след. прямые кавычки;
13. Переход на пред. прямые кавычки, елочки или лапки;
14. Переход на след. прямые кавычки, елочки или лапки;
15. Расстановка только елочек.
Скрипт под номером 1 проставляет елочки и лапки в документе, учитывая уровни их вложенности и работает корректно, даже в случае наличия сносок. Если в момент запуска скрипта выделения в документе нет, будет обработан весь текст. Если же есть выделение, будет обработана лишь выделенная область. Скрипт находит спорное место, сообщает Вам об этом и предлагает исправить вручную. Если число кавычек в уровне не совпадает – означает, что где-то есть непарная (открывающая/закрывающая) кавычка. Скрипт показывает какой не хватает.
Видно не хватает закрывающей елочки. Скрипт останавливается в конце непарной секции. Вернитесь (при помощи скрипта "Переход на предыдущие ёлочки/лапки") к последней "ёлочке/лапке"(что указано непарным) и просмотрите текст. Исправьте знак или проставьте недостающую кавычку (её вид не имеет значения, скрипт изменит на правильный). После исправления ошибок запускайте скрипт пока не получите сообщение:
Скрипты 2 и 3 аналогичны скрипту 1, но начинают расстановку елочек и лапок не с нулевого уровня вложенности, а с первого или второго.
Скрипты 4, 5 и 6 при отсутствии выделения перед запуском скрипта проставляют елочки и лапки не от начала документа, а с позиции курсора.
Скрипты 7-14 позволяют перемещаться вперед или назад по документу к определенным символам кавычек, указанным в названиях скриптов.
Скрипт 15 заменяет все кавычки на елочки, левые и правые. Соответственно, все проверки на уровень вложенности кавычек отключены.
Поиск форматирования v1.0
Скрипты данного набора осуществляют переход вперед или назад от курсора к месту документа, где используется вид форматирования, обозначенный в названии скрипта. Содержит скрипты, позволяющие быстрее передвигаться по документу в поисках определённого форматирования.
Вот перечень скриптов этого набора:
1. Переход на предыдущий курсив;
2. Переход на следующий курсив;
3. Переход на предыдущий абзац с курсивом;
4. Переход на следующий абзац с курсивом;
5. Переход на предыдущую жирность;
6. Переход на следующую жирность;
7. Переход на предыдущий абзац с жирностью;
8. Переход на следующий абзац с жирностью;
9. Переход на предыдущий верхний индекс;
10. Переход на следующий верхний индекс;
11. Переход на предыдущий абзац с верхним индексом;
12. Переход на следующий абзац с верхним индексом;
13. Переход на предыдущий нижний индекс;
14. Переход на следующий нижний индекс;
15. Переход на предыдущий абзац с нижним индексом;
16. Переход на следующий абзац с нижним индексом;
17. Переход на предыдущее зачеркивание;
18. Переход на следующее зачеркивание;
19. Переход на предыдущий абзац, содержащий зачеркивание;
20. Переход на следующий абзац, содержащий зачеркивание;
21. Переход на предыдущий код;
22. Переход на следующий код;
23. Переход на предыдущий абзац, содержащий код;
24. Переход на следующий абзац, содержащий код.
Превращение внешних ссылок в текст v1.1
Суть скрипта ясна из названия. Поясню, что внешней ссылкой считается любая ссылка, которая не является локальной ссылкой. Локальной же ссылкой считается такая, у которой адрес начинается с "file://" либо со знака "#", также перед этими строковыми последовательностями могут быть пробелы.
Данный скрипт находит комбинации символов "точка, тире, маленькая буква", "запятая, тире, большая буква", "многоточие, тире, маленькая буква", причем между любыми двумя символами комбинации могут быть простые или неразрывные пробелы (а могут и не быть), а под тире в данном контексте понимаются дефис или короткое либо длинное тире.
Когда комбинация символов найдена, абзац с этой комбинацией выводится в диалоге, причем комбинация символов выделена особым стилем (по умолчанию – белым по красному). Также в диалоге имеются кнопки управления скриптом. Кнопка "Пропуск" пропускает текущий найденный случай и пытается найти следующий.
Кнопка "Заменить знак пунктуации" производит замену точки из найденной комбинации символов на запятую, либо наоборот – заменяет найденную запятую на точку; после чего происходит переход к следующей комбинации символов. Кнопка "Изменить регистр буквы" превращает большую букву из найденной комбинации в маленькую, либо наоборот, после чего, опять же, происходит переход на следующий подлежащий рассмотрению пользователем случай. Кнопка "Выход" ничего не делает, кроме того что закрывает скрипт.
Если перед нажатием одной из кнопок "Заменить знак пунктуации" и "Изменить регистр буквы" установлен флажок "После замены перейти к этому месту", то после того, как скрипт произведет полагающиеся изменения, произойдет выход из скрипта, и область видимости в основном окне FBE и курсор будут перемещены к рассматриваемой комбинации символов. Имеется также кнопка "Перейти без замены", которая осуществляет такое же перемещение области видимости и курсора, но при этом не совершается ни одно из предлагаемых на данный момент изменений документа.
Как разложить файлы скрипта:
1. js-файл положить где-нибудь внутри папки Scripts, выбранной в настройках редактора.
2. содержимое папки HTML положить в папку HTML, находящуюся в папке редактора, exe-файл которого запускаете.
3. Подпапка CSS при этом должна быть внутри папки HTML. Под именем "Точка, тире, буква – main.css" можно подложить main.css от вашего FBE (чтобы текст отображался тем же стилем, что у вас в редакторе). В файле "Точка, тире, буква – add.css", редактируя строку
SPAN.ddl_marked {background-color: red; color: white}
Можно настроить стиль, которым будет подсвечиваться рассматриваемая комбинация символов.
Строка
#fbw_body {font-family: Tahoma; font-size:15px;}
Назначает стиль, который будет применен ко всему отображаемому тексту. Это аналог настроек шрифта в настройках FBE.
В js-файле скрипта можно изменить значения размеров диалога (измеряются в пикселях) вот в этих строках:
var dialogWidth="640px"; // ширина диалогового окна var dialogHeight="480px"; // высота диалогового окна
Управление структурой секций v1.8.
Я полагаю, скрипт может быть удобен как для изменения структуры секций путем перетаскивания мышью, так и для массового ручного контроля/редактирования заголовков. Преимущество сравнительно со встроенным в FBE редактированием дерева – заголовки отображаются "как есть", с форматированием и многострочностью.
Недостатки.
• После окончания работы скрипта, если Вы вышли из него по нажатию кнопки "Сохранить", желательно проверить валидность книги, т. к. скрипт этого не делает.
• Не поддерживается выделение нескольких элементов дерева.
• Долговато выполняется сохранение, надо бы как-то оптимизировать, но пока нет идей.
Известные проблемы.
• Могут быть проблемы, связанные с необновлением скроллбара. Дело в том, что код для скроллбара пришлось написать самому, использовать системный было нельзя – тогда бы курсорные клавиши прокручивали документ когда не надо. Если заметите необновление размера скроллбара в какой-то ситуации – пожалуйста сообщайте (как и остальные баги).
• IE, на движке которого работает FBE, имеет багофичу (в отличие от других браузеров), из-за которой скрипты не могут обрабатывать второе нажатие (в отличие от отпускания) кнопки мыши при двойном щелчке. Поэтому если быстро нажать, отпустить, опять нажать и удерживать клавишу мыши, когда мышиный курсор находится на кнопке скроллбара, то автоскроллинг не запускается, хотя должен бы.