Создание электронных книг в формате FictionBook 2.1: практическое руководство (pre-release)

ОглавлениеДобавить в закладки К обложке

Ключ /compress[+|-] (сокращенная форма /c) — позволяет разрешить/запретить сжатие книжек «на выходе» алгоритмом ZIP. По умолчанию сжатие разрешено. Таким образом

FB2Fix.exe D:\INBOOK /c-

заставит FB2Fix записывать прошедшие обработку книжки в неупакованном виде.

Просматривая обработанные книжки, вы можете заметить, что заголовок книги отформатирован отступами. За эту фичу отвечает ключ /indentheader[+|-]. Как можно догадаться, по умолчанию опция включена.

Можно также заставить FB2Fix аналогично форматировать body книги. При помощи ключа /indentbody[+|-]. Само собой, со значением «+».

FB2Fix.exe D:\INBOOK\mybook2.fb2 /indentbody+

Как уже говорилось, версия документа, в случае внесения правок, увеличивается на 0.1. Если понадобится отключить эту опцию, то вам поможет ключ /incversion[+|-]. С модификатором «-».

Ключ /dtd:<строка> позволяет выбрать альтернативную DTD FB2. Значение по умолчанию — fb2.dtd.

Следующая интересная фича — перекодировка! По умолчанию FB2Fix сохраняет книжки, используя кодовую таблицу UTF-8. Использование ключа /encoding:<строка> заставит FB2Fix сохранять «выходные» книги в определенной кодировке. Так, например при использовании,

FB2Fix.exe D:\INBOOK /encoding:windows-1251

книжки «на выходе» будут в кодировке Win-1251.

Кроме «windows-1251» поддерживаются значения «utf-8», «utf-16», а также «koi8r».

Если вам вдруг понадобится отказаться от конвертации старых жанров FB2 2.0 в 2.1 достаточно использовать ключ /mapgenres[+|-] с модификатором «-»

Между прочим, конвертация жаноров — настраиваемая. Ее конфигурация содержится в файле genrestransfer.xml. Устройство его весьма незамысловато. Каждому поджанру отведена вот такая секция.

<subgenre value="prose_history">

  <genre-descr lang="en" title="Historical Prose"/>

  <genre-descr lang="ru" title="Историческая Проза"/>

  <genre-alt value="literature_history" format="fb2.0"/>

  <genre-alt value="literature_critic" format="fb2.0"/>

</subgenre>

Понятно, что значения указанные в атрибуте value тэга genre-alt будут заменены на аналогичное значение тэга subgenre.

Можно сделать свою конфигурацию и вызывать ее при помощи ключа /genres:<строка>.

Использование ключа /validate[+|-] с модификатором «+» вынудит FB2Fix использовать для проверки книг альтернативную XSD-схему. А указать имя файла этой схемы поможет ключ /xsd:<строка>.

Следующий важный ключ — /rename[+|-]. С модификатором «+» он велит FB2Fix переименовывать файлы, причем с сортировкой. И не абы-как, а согласно установке-паттерну.

По умолчанию этот паттерн равен:

[*NLA*\]*NL*[ *NM*] *NF*[ *NN*]\*NL* *BN*[(*SN* - *SII*)]

Синтаксис подстановок, полностью заимствован из утилиты переименования файлов для библиотекаря FBLibrary.

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

*NLA*, *NFA*, *NMA* — первая буква соответственно фамилии, имени, отчества автора книги.

*NL*, *NF*, *NM*, *NN* — соответственно фамилия, имя, отчество, ник автора.

*BN* — название книги.

*SN* — название серии. Остро не хватает обработки подсерий…

*SI*, *SII*, *SIII* — номер серии. В подстановках *SII* и *SIII* этот номер приводится к двух- и трехзначному соответственно, путем добавления нулей. Т.е. номер 7 будет включен в состав имени файла как «007».

*GNR*, *GNE* — название жанра, по-русски или по-английски.

Символ «\», как вы уже догадались, служит разделителем папок. А квадратные скобки объединяют фрагменты паттерна. Нет, к примеру, отчества, значит, не нужен и пробел перед ним. Нет серии — скобки не должны стать мусором в имени файла…

Само собой, можно указать пользовательский паттерн. При помощи ключа /pattern:<строка>.

К примеру, вот такой паттерн:

*NL* *NF*\*SN*\[*SII* - ]*BN* {*NF* *NL*}

раскассирует книги в папки «фамилия-имя автора». Для серий будут созданы вложенные папки. Имя файла будет представлять собой номер-в-серии_название_{имя-фамилия автора}. Немного непривычно, но очень удобно. Особенно, учитывая ограниченнную отображаемую длину имени  файла…


Логин
Пароль
Запомнить меня