Как разложить файлы скрипта по папкам.
1. js-файл следует разместить в папке скриптов, выбранной в настройках FBE.
2. htm-файлы в подпапке HTML папки редактора, чей exe-файл будете запускать. Создайте эту подпапку, если ее нет.
3. css-файлы в поддиректории CSS каталога редактора, чей exe-файл будете запускать. Под именем "удаление разрывов_main.css" можно подложить main.css от вашего FBE (чтобы текст отображался тем же стилем, что у вас в редакторе). В файле "удаление разрывов_add.css", редактируя строку ac {background-color: red; color: white;}
можно настроить стиль подсветки (во время третьего этапа) символов, из-за которых пара абзацев направлена на ручную обработку.
Подробнее см. ниже раздел Чистка.
Разметка подзаголовков, чистка пустых строк v3.2
Скрипт превращает код вида
‹p›***‹/p›
‹p›* * *‹/p›
‹subtitle›***‹/subtitle›
‹title›‹p›***‹/p›‹/title›
‹title›‹p›* * *‹/p›‹/title›
в
‹subtitle›* * *‹/subtitle›
Вместо трех звездочек в перечисленных случаях может быть и несколько другой текст. Вопрос, стоит ли исходя из вида строки делать ее сабтайтлом, решается с помощью такого регэкспа:
^(|)**((|)*(*))?((|)*(*))?(|)*$
Если объяснять словами, строка может содержать от одной до трех звездочек с любым количеством простых или неразрывных пробелов до, между и после них. Анализируется строка без учета тэгов, т. е. форматирование не влияет.
Пустые строки (далее – ПС) непосредственно перед и непосредственно после подзаголовков (всех) удаляются. В случае с ‹title› разрыв секции перед этим тэгом ликвидируется. По информации от jurgenntа преобразование title – › subtitle может быть опасно для файлов, где используется заголовок (не стиха, а простой) из трех звездочек, чтобы "одноименное" стихотворение попало в оглавление.
Также удаляются тэги ‹empty-line/› в начале и конце секции ("в начале" в данном случае значит не только сразу после ‹section›, но и после ‹title›, ‹epigraph› и пр.).
Удаляются ПС перед и после тэгов ‹cite› и ‹poem›.
Последовательности из нескольких ПС заменяются на одну ПС.
Удаляются ПС внутри ‹poem›, т. к. они препятствуют валидности документа. ПС внутри тегов ‹title› также удаляются.
ПС, нужные для того, чтобы секция была валидной, не удаляются при описанных выше действиях скрипта.
За ПС во всех указанных случаях считаются: абзацы, которые из чисто текстового содержимого (не считая тэгов) либо не имеют вообще ничего, либо представляют комбинацию произвольного количества пробелов и неразрывных пробелов; тэги ‹empty-line/›.
Некоторые подверсии скрипта умеют удалять жирность и курсив в заголовках.
Всего подверсий скрипта в архиве – четыре:
1. Разметка подзаголовков, чистка пустых строк;
2. Разметка подзаголовков, чистка пустых строк, удаление жирности в заголовках;
3. Разметка подзаголовков, чистка пустых строк; удаление жирности в заголовках по запросу;
4. Разметка подзаголовков, чистка пустых строк, удаление жирности и курсива в заголовках.
Слова "…по запросу" в названии третьего скрипта означают то, что при запуске скрипта выскакивает окошко, в котором можно выбрать, удалять жирность в заголовках или нет.
Пустые строки вокруг картинок v1.4
Скрипт позволяет либо удалить пустые строки рядом с картинками, либо сделать по одной пустой строке с каждой стороны от картинок. Выбор, что делать, производится с помощью диалогового окна. Где не надо (в начале секции, в конце секции, перед и после cite и poem и т. п.) пустые строки рядом с картинками не добавляются, если только такое добавление не требуется для валидности.
Удаление неиспользуемых вложений v1.0
Скрипт удаляет вложения, на которые ни ссылается ни одна картинка. Зачем это может быть нужно – предлагаю вам самим придумать.;-)
Этот набор скриптов представляет собой замену встроенной в FBE функции перехода по ссылке и обратно.
В наборе три скрипта:
1. Переход по ссылке;
2. Возврат на ссылку;
3. Переход по ссылке или возврат на ссылку.
Первый скрипт переходит по ссылке, которая находится под или рядом с курсором. Второй переходит к первой от начала документа ссылке, указывающей на секцию, находящуюся под курсором. Третий скрипт переходит по ссылке, если она есть под или рядом с курсором, в противном случае пытается совершить возврат на ссылку, которая ссылается на секцию, в которой находится курсор.
Скрипты универсальны в том плане, что не заточены только под ссылку "сноски" или только под ссылку "комментария", а работают (теоретически) для всех вариантов локальных ссылок.
Кроме того, в отличие от встроенного в 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. Т. е. попутно скрипт можно использовать как проверку картинок.