Скрипты универсальны в том плане, что не заточены только под ссылку "сноски" или только под ссылку "комментария", а работают (теоретически) для всех вариантов локальных ссылок.
Кроме того, в отличие от встроенного в FBE перехода, мой скрипт переходит по ссылке, если курсор стоит слева или справа от нее, что дает возможность совершать переход даже если текст ссылки состоит из одного символа.
Этот скрипт – заготовка, которую перед использованием нужно настроить под себя. Если это сделать, скрипт будет при запуске выводить таблицу символов, клик по которым делает так, что они вставляются в текст редактируемой книги.
Размер окна с таблицей символов настраивается в js-файле, поменять значения в этих строках:
var dialogWidth="300px"; //ширина окна таблицы символов var dialogHeight="300px"; //высота окна таблицы символов
Размер таблицы (измеряемый в клетках) настраивается в html, вот это место:
var tableX=3; //количество столбцов в таблице символов var tableY=3; //количество строк в таблице символов
Символы для таблицы задаются в приведенной ниже строке, указывать их можно как непосредственно, так и в форме html-сущностей (entities):
var charStr="12345 amp;gt; amp;lt; amp;nbsp; amp;#160;";
Чтобы задать символ ударения, нужно написать два символа: "amp;#160; amp;#769;", в скрипте на этот случай предусмотрен специальный код. Если понадобится, чтобы в таблице был знак меньше "‹" или больше "›", то записать их следует как amp;lt; и amp;gt; соответственно. Неразрывный пробел можно записать как amp;#160; либо amp;nbsp;. Других именованных сущностей, кроме названных, скрипт не понимает, поэтому прочие символы можно кодировать только сущностями с Unicode-кодом символа.
Всплывающие подсказки настраиваются изменением этой строки:
var titleStr="Единица|Двойка|Тройка|Четверка|Пятерка|Больше|Меньше|Неразрывный пробел|Неразрывный пробел";
Можно использовать другой (но тоже односимвольный) разделитель вместо pipe – "|" – изменив вот эту строку:
var dividerChar="|";
Шрифт ячеек таблицы задается в этой строке:
td {font-family: Tahoma; font-size:16px;}
Скрипт работает в немодальном окне, то есть окно скрипта после запуска висит параллельно окну редактора, не мешая (если не заслонять:-) работе в последнем.
Для успешного старта скрипта html-файл из архива следует положить в папку Cmd или Scripts (какая есть) той версии редактора, исполняемый файл которого запускаете. js-файл должен лежать в папке скриптов, выбранной в настройках редактора.
Унификация вложений и картинок v1.2
Скрипт переименовывает вложения соответственно порядку следования ссылок на них в теле документа. Если на вложение ссылается несколько картинок, берется номер первой из них. Первое нумеруемое вложение получает номер 1. По умолчанию новое имя файла (без учета расширения) выглядит как "i_001" (можно настроить префикс имени, т. е. то, что будет вместо "i_", и количество цифр, до которого следует дополнять номер); расширение получается из поля content-type бинарника:.jpg для image/jpeg и. png для image.png.
Вложения, на которые нет ссылок, переименовываются по другому алгоритму. К их имени дописывается префикс (конкретный вид его можно настроить) "unused_". Если вложение уже имеет такой префикс, второй раз он не добавляется. Случается иногда ситуация, что уже есть вложение например unused_a.png, есть вложение a.png, и т. к. на последнее нет ссылок, оно тоже по идее должно стать unused_a.png. Получалось бы запрещенное дублирование id вложений, поэтому такая ситуация решена дописыванием постфикса вида "_0" (число меняется по необходимости) к имени вложения.
Вложению обложки дается имя cover, вложению обложки оригинального издания cover_src (настраиваемо путем редактирования параметра в файле скрипта). Расширение дается согласно content-type. Если в качестве обложки ничего не выбрано, и есть вложение с именем "cover.jpg" или "cover.png", это вложение делается обложкой. Аналогично для обложки ориг. издания, только искомое вложение должно называться "cover_src" + расширение.
Потом вложения сортируются в таком порядке: обложка; обложка оригинального издания; пронумерованные картинки; вложения, на которые нет ссылок.
Атрибут href у картинок изменяется с тем, чтобы картинки оставались связаны со своими вложениями несмотря на смену id.
По окончании обработки выводится статистика, в том числе перечни: картинок, для которых нет вложений; вложений, на которые нет ссылки; картинки с нелокальными ссылками; список вложений с content-type не image/jpg, не image/png. Т. е. попутно скрипт можно использовать как проверку картинок.
Есть пара известных проблем. Во-первых, после работы скрипта перестает появляться выпадающий список при редактировании атрибута href картинки. Во-вторых, в некоторых случаях не срабатывает встроенное обновление картинок, и выводится старая картинка вместо новой, хотя связь "картинка – › бинарник" соблюдена верно.
Обновление картинок и списков обложек v1.0
Бывает, удалишь несколько вложений, потом вставишь на их место новые с теми же названиями, а картинки в режиме "Дизайн" редактор не обновляет – остаются видны старые. Или меняешь руками id вложений в режиме редактирования описания (description’а) книги – тот же эффект. Выпадающие списки для выбора картинки обложки тоже не обновляются. В этом случае и пригодится данный скрипт. (Но все-таки, кажется, и со скриптом срабатывает не всегда.)
Удалить все вложения из книги v1.3
Скрипт делает то, что сказано в его названии. Это бывает нужно, чтобы удалив старую версию вложений, заменить их новой.
Скрипт проверяет порядок расположения ссылок-сносок и их правильность. Определяет, кажется, все возможные ошибки. Является аналогом скрипта "Проверить ссылки", который стандартно идет с FBW, но работает быстрее (сравните: N*N операций в случае скрипта FBW и N операций в случае "Теста сносок"). К тому же определяет больше ошибок.
Ограничение: поддерживается только стандартный формат оформления сносок (когда каждая сноска представлена секцией в ‹body name="notes"› и ссылки сносок ссылаются именно на секции). Кроме того, скрипт понимает лишь одноуровневые сноски, т. е. в боди notes не должно быть секций второго уровня вложенности.
Изменения в версии 1.2:
• скрипт работал некорректно (выдавал сообщение "Отсутствует # в адресе ссылки.") в случае, если FBE показывал длинные ссылки в книге
(допустим,"file:///C:/FB2/FBE2.0%2004%20-%2028%20Jun%202009.dir/main.html#N1" вместо "#N1");
• при отсутствии body примечаний скрипт выдавал сообщение об этом, но потом вылетал с ошибкой;
• сообщение об ошибке "Нет секции примечания с id, указанным в ссылке." исправлено на "В body примечаний нет секции примечания с id, указанным в ссылке.".
Данный набор скриптов позволяет, выделив текст и запустив скрипт, перевести его в нижний либо в ВЕРХНИЙ регистр.
В архиве следующие скрипты, названия которых говорят сами за себя:
1. В верхний регистр;
2. В нижний регистр;
3. Предложение – Делает первую букву прописной остальные строчные, как в предложении. Удобно для изменения в заголовках, где все прописные;
4 Капитализация выделения - В выделенном фрагменте начинает все слова с заглавных;
5 Сжатие_разрядки - сжимает разрядку. Осторожно - может слепить слова, если, текст форматирован по ширине;
6 Циклическое изменение регистра - меняет заглавные на прописные и наоборот.
Вставка ссылки на midi-файл v1.0
AlReader позволяет читать fb2-книги со ссылками на midi-файлы, которые (midi-файлы) можно прослушать прямо в читалке. Данный скрипт позволяет вставить такую ссылку. Для этого нужно выделить текст, который следует сделать ссылкой, запустить скрипт, выбрать музыкальный файл, и подтвердить создание ссылки. Чтобы читалка нашла файл с музыкой, нужно положить midi в zip-архив, в котором лежит и fb2.
Данный скрипт позволяет, задав признак для поиска строк – будущих заголовков, произвести разбиение fb2-документа на секции с одновременной разметкой этих заголовков тегом title. После чего остается придать секциям правильную вложенность с помощью кнопок управления структурой документа, которые есть в окне "Структура книги" редактора. По сути, скрипт избавляет от ручной работы с комбинацией Shift-Enter.
После запуска скрипта появляется окно настроек. В нем можно задать регэксп для поиска строк-заголовков. Можно выбрать, учитывать ли регистр при поиске по заданному регэкспу. Еще можно настроить, сколько при разметке захватывать в заголовок строк до и после строки, найденной по регэкспу.
Второй этап работы скрипта запускается кнопкой "Обработать" или "Обработать и выйти". В процессе обработки создаются разрывы секций (‹/section›‹section›) перед найденными строками-заголовками, а сами заголовки (которые на тот момент еще не заголовки) размечаются тегом title.