Точка, тире, буква v1.3

Данный скрипт находит комбинации символов «точка, тире, маленькая буква», «запятая, тире, большая буква», «многоточие, тире, маленькая буква», причем между любыми двумя символами комбинации могут быть простые или неразрывные пробелы (а могут и не быть), а под тире в данном контексте понимаются дефис или короткое либо длинное тире.

Когда комбинация символов найдена, абзац с этой комбинацией выводится в диалоге, причем комбинация символов выделена особым стилем (по умолчанию – белым по красному). Также в диалоге имеются кнопки управления скриптом. Кнопка «Пропуск» пропускает текущий найденный случай и пытается найти следующий.

Кнопка «Заменить знак пунктуации» производит замену точки из найденной комбинации символов на запятую, либо наоборот – заменяет найденную запятую на точку; после чего происходит переход к следующей комбинации символов. Кнопка «Изменить регистр буквы» превращает большую букву из найденной комбинации в маленькую, либо наоборот, после чего, опять же, происходит переход на следующий подлежающий рассмотрению пользователем случай. Кнопка «Выход» ничего не делает, кроме того что закрывает скрипт.

Если перед нажатием одной из кнопок «Заменить знак пунктуации» и «Изменить регистр буквы» установлен флажок «После замены перейти к этому месту», то после того, как скрипт произведет полагающиеся изменения, произойдет выход из скрипта, и область видимости в основном окне 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, имеет багофичу (в отличие от других браузеров), из-за которой скрипты не могут обрабатывать второе нажатие (в отличие от отпускания) кнопки мыши при двойном щелчке. Поэтому если быстро нажать, отпустить, опять нажать и удерживать клавишу мыши, когда мышиный курсор находится на кнопке скроллбара, то автоскроллинг не запускается, хотя должен бы.

Кликать ссылку «HTML в буфер» внизу окна скрипта не надо – она нужна только для отладки.

Как правильно разложить файлы скрипта.

Файл "01_Управление структурой секций. js" положить в папку скриптов, заданную в настройках FBE. Содержимое папки HTML (включая подпапки) положить в папку HTML, находящуюся в папке редактора, exe-файл которого запускаете.

Настроить размер по умолчанию для окна скрипта можно в файле "01_Управление структурой секций. js", изменив числа в таких строках:

var dialogWidth="640px"; // ширина диалогового окна

var dialogHeight="480px"; // высота диалогового окна

Изменения в версии 1.1.

• Исправил баг с пропадающим при перетягивании секции эпиграфом.

• Поправил некоторые мелкие, но визуально неприятные недочеты в работе дерева.

• Сделал управление с клавиатуры. Работают клавиши «Стрелка вверх», «Стрелка вниз» (эти курсорные клавиши переходят на предыдущий и следующий элемент дерева соответственно, если при их нажатии какой-то элемент уже активен), «Стрелка влево» (закрыть элемент, если же он уже закрыт – перейти на уровень вверх), «Стрелка вправо» (раскрыть элемент, если он уже раскрыт – перейти на первый вложенный в него элемент), «Home», «End», «Page up», «Page down», «Серый плюс» (раскрыть активный элемент), «Серый минус» (закрыть активный элемент), F2 (редактирование заголовка). В режиме редактирования заголовка Enter вставляет пустую строку в заголовке и переходит на нее. Закончить редактирование можно клавишей Esc. При редактировании заголовка включать/выключать жирность можно хоткеем Ctrl-B, а курсив – хоткеем Ctrl-I.

Изменения в версии 1.2:

• При клике и удержании кнопки мыши на тексте элемента (а не на иконке, изображающей лист бумаги) элемент, перешедший в состояние перетаскивания, первоначально появлялся в неправильной позиции (если потом подвигать мышью, он принимал правильное положение: чуть правее и ниже курсора мыши).

• При клике по меню внизу окна фокус клавиатуры уходил с дерева и горячие клавиши переставали работать.

• Нельзя было разместить элемент вслед за элементом ‹text›, перетащив его на иконку, изображающую лист бумаги.

• Если перейти в режим редактирования заголовка, выделить его весь или частично, потом нажать Esc, выделение оставалось видно.

• Была какая-то ошибка, связанная с попыткой то ли редактирования по F2 элементов типа ‹text›, то ли с выходом из него. В общем, я редактирование такого рода программно запретил, поскольку оно все равно не имеет смысла.

Изменения в версии 1.3:

• атрибут name у body терялся при нажатии «Сохранить» в окне скрипта.

• теперь клик по ссылке в заголовке не производит переход.

• теперь адреса ссылок-сносок после нажатия «Сохранить» более корректные («file://…/main.html#n_1», а не «file://…/control_structure_frame_1.htm#n_1»).

Изменение в версии 1.4:

• скрипт теперь работает в IE8.

Изменения в версии 1.5:

• раньше скрипт глючил на некоторых невалидных книгах. Проблема проявлялась, если в книге была секция, в которую непосредственно были вложены элементы текстово-графического содержания (‹p›, ‹image›, ‹cite› и т. д.) и подсекции. (Это запрещено схемой, но такой файл можно открыть редактором.) В таком случае иногда происходило размножение фрагментов текста. Проблема возникла из-за того, что я поначалу ориентировался на обработку скриптом только валидных файлов. Но поскольку на практике возможность работать с невалидными файлами оказалась полезной, исправил ошибку.

• новая фича – в контекстном меню по правой кнопке мыши на элементе дерева: «Обрамить section-ом». Создает вокруг этого самого элемента дерева новый элемент ‹section›. Полезно для исправления документов, невалидных описанным выше образом.

• раньше при перетягивании элемента на новое место иногда не появлялась или не исчезала иконка плюса/минуса, которая индицирует, есть ли у элемента вложенные подэлементы.

• раньше скрипт выдавал ошибку, если запустить его, открыв файл с пустым тегом section (‹section›‹/section›) или с пустым body (аналогично).

• раньше, если удалить элемент дерева, а потом нажать курсорную клавишу (перемещение по дереву), выскакивала ошибка.

• теперь есть защита от переноса элемента body внутрь элемента section.

Изменение в версии 1.6:

• поправлен баг, из-за которого при использовании скрипта пропадали все, кроме первого, эпиграфы элементов body.

Изменение в версии 1.7:

• поправлен баг, из-за которого в книге, обработанной скриптом, пропадали все пустые строки после сохранения на диск.

Изменения в версии 1.8:

• в прошлой версии нажатие Delete при редактировании заголовка приводило к выдаче запроса на удаление элемента.

• теперь завершить редактирование заголовка можно и нажатием Ctrl-Enter (Escape работает тоже).

Перенос примечаний в скобки v1.1.

Скрипт переносит примечания и комментарии из body «notes» и «comments» в текст, обрамляя их скобками. Примечания («notes») обрамляются квадратными скобками, а комментарии («comments») – фигурными. Если примечание содержит несколько абзацев, его абзацы будут слиты в один абзац и разделены строковой последовательностью «//». Блочные элементы (cite, epigraph, poem) при переносе примечаний в скобки теряются, инлайновые – сохраняются.

В набор входят два скрипта, один из которых отличается тем, что перенеся примечание в скобки, вставляет перед открывающей скобкой пробел.

Изменение в версии 1.1:

Исправил то, что в подверсии скрипта с названием «пробел перед открывающей скобкой» в начале файла были лишние символы, из-за которых скрипт вызывал ошибку при загрузке FBE.

Режим чтения v1.0.

Скрипт переводит FBE в режим чтения, в котором клавиши «Вверх» и «Вниз» прокручивают текст на одну строку в соответствующих направлениях, а клавиши «Влево» и «Вправо» прокручивают на три строки вверх и вниз соответственно. Чтобы выйти из режима чтения, нужно кликнуть мышью в произвольное место текста, и курсор будет установлен в указанную позицию.

Работа скрипта проверена в IE6. Если у вас он не работает, сообщите на имэйл, написанный в начале страницы.








Главная | В избранное | Наш E-MAIL | Прислать материал | Нашёл ошибку | Наверх