- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Создание электронных книг в формате FictionBook 2.1: практическое руководство (pre-release) - Михаил Кондратович
Шрифт:
Интервал:
Закладка:
И, даже если у вас нет возможности скачать такой колоссальный объем данных, МyHomeLib может работать непосредственно с Либрусеком, on-line. Нужные книги будут скачиваться по мере необходимости.
Прилагающийся к программе подробный help исчерпывающе описывает все функции софтины. Что, кроме всего прочего, позволяет автору этой книги не утяжелять ее файл еще одним «самотужным» руководством пользователя.
Поражает, с какой взвешенностью авторы подходят к добавлению новых функций в свое детище. Ничего лишнего, только действительно необходимое.
Некоторый недостаток функционала прекрасно компенсируется возможностью создания пользовательских скриптов.
В общем, перед нами отличный пример продуманного, сбалансированного, и, главное, стопроцентно отвечающего своему назначению программного продукта.
§ 7.5 FB2Fix
Как следует из названия, основная задача этой утилиты — полная проверка FB2-файлов на валидность с возможностью их коррекции. Кроме того, автор, скрывшийся под претенциозным псевдонимом Gremlin II, наделил программу «талантами» работать с архивами, в том числе RAR и вложенными ZIP, использовать пользовательские спецификации XSD, транслитерировать имена файлов и переименовывать их по шаблону, заменять «непечатные» символов, автоматически конвертировать жанры из версии 2.0 в версию 2.1, и даже перекодировать книжки. Отдельным пунктом значится приведение в порядок невалидных книг из библиотеки Либрусек.
Возможна обработка как отдельных файлов, так и целых каталогов.
Утилита выполняет полную проверку на соответстие xml-файла книги спецификации (schema) FB2. Если книга не проходит проверку на валидность, FB2Fix пытается исправить ее. Это производится следующим образом. Вначале производится проверка всех тэгов. Не закрытые (или же лишенные открывающего дескриптора) тэги — закрываются. Также софтина пытается разобраться, с «висящими» в тексте символами «<» и «>» на предмет, элементы ли это тэгов или же просто огрехи работы конвертора. При этом программа, как и все «ишкуштвенные интилекты» не застрахована от ошибок. Отсюда мораль: после правки «проблемного» файла не пожалеть пару минут на сличение результата с оригиналом.
Все признанные огрехами «<» и «>» в тексте заменяются на < и >, как и положено по спецификации. Символы с кодами от 01 до 08 заменяются на «-», символы 0b, 0c и 0e — 0x1f на « ».
Сама утилита представляет собой консольное приложение. То есть, запуск ее возможен посредством использования командной строки («Command Prompt») с передачей рабочих параметров через нее.
Несмотря на это, для работы FB2Fix требуется наличие в системе Micro$oft .NET Framework 2.0. Также софтина может работать под Linux (с установленным Mono и пакет(ами) libmono-i18n{1,2}.0-cil).
Давайте познакомимся с FB2Fix поближе.
Скачайте и распакуйте архив в папку, Например, C:FB2TOOLSFB2FIX.
Создайте на диске (лучше в корне) две рабочие папки. Например INBOOK и OUTBOOK.
Войдите в папку FB2FIX. Для удобства, лучше все эти операции проделывать в каком-нибудь консольном файл-менеджере, например, Far Manager.
Забросьте в папку INBOOK с десяток книг FB2.
Теперь давайте запустим FB2Fix.
Вот так:
FB2Fix.exe D:INBOOK /output:D:OUTBOOK
Когда утилита отработает, загляните в папку OUTBOOK. Вы обнаружите там две папки — Bad и Good. Как нетрудно догадаться, первая предназначена для книг, которые не прошли проверку и, к тому же, их не удалось исправить. В папку Good отправляются все остальные.
Итак, алгоритм работы в общих чертах ясен. Кладем книги, нуждающиеся в проверке, в папку INBOOK и запускаем программу. Кстати, выходную папку можно и не указывать, тогда директории Bad и Good будут созданы в той же папке, где находится FB2Fix.
К сожалению, для тестирования программы мне просто неоткуда было взять подходящее количество невалидных книг, так что пришлось импровизировать. То есть создавать файлы с ошибками вручную.
Незакрытый тэг body оказался проге не по зубам. Тэги descripion и cite она «исправила», вставив закрывающий тэг в самый конец файла. И перед удаленным открывающим тэгом <p> корректор спасовал. А вот с конструкцией <strong><emphasis></strong></emphasis> программа справилась «на ура». Незакрытые тэги <stanza> <p> FB2Fix также исправил как положено. А незакрытый тэг <i> софтина просто удалила.
В то же время FB2Fix позволяет себе «не замечать» некритичные ошибки. Например, неправильно оформленные сноски, когда метка поставлена не на секцию, а на ее заголовок, или вообще абзац.
В description успешно прошедшей проверку книги добавляется строка
<custom-info info-type="fb2fix-status">Passed</custom-info>
а в случае внесения правок версия книги увеличивается на 0.1. Правда, почему-то не всегда.
При повторном прогоне все работает корректно: строка в custom-info «размножаться» не будет.
В общем, если сделать скидку на «искусственность» тестирования (ну какой такой конвертор создаст fb-шку c незакрытым body или description) то можно признать, что со своими обязанностями корректор справляется вполне успешно.
Теперь пройдемся по ключам программы. Их не так уж и много, но все же может показаться, что больше, чем нужно. Некоторые ключи имеют сокращенную форму.
Ключ /compress[+|-] (сокращенная форма /c) — позволяет разрешить/запретить сжатие книжек «на выходе» алгоритмом ZIP. По умолчанию сжатие разрешено. Таким образом
FB2Fix.exe D:INBOOK /c-
заставит FB2Fix записывать прошедшие обработку книжки в неупакованном виде.
Просматривая обработанные книжки, вы можете заметить, что заголовок книги отформатирован отступами. За эту фичу отвечает ключ /indentheader[+|-]. Как можно догадаться, по умолчанию опция включена.
Можно также заставить FB2Fix аналогично форматировать body книги. При помощи ключа /indentbody[+|-]. Само собой, со значением «+».
FB2Fix.exe D:INBOOKmybook2.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* — название жанра, по-русски или по-английски.
Символ «», как вы уже догадались, служит разделителем папок. А квадратные скобки объединяют фрагменты паттерна. Нет, к примеру, отчества, значит, не нужен и пробел перед ним. Нет серии — скобки не должны стать мусором в имени файла…