"FictionBook Editor V 2.6 Руководство" - читать интересную книгу автора

Унификация вложений и картинок 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 картинки. Во-вторых, в некоторых случаях не срабатывает встроенное обновление картинок, и выводится старая картинка вместо новой, хотя связь «картинка -› бинарник» соблюдена верно.