Выбрать главу

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

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) при переносе примечаний в скобки теряются, инлайновые – сохраняются.