Все признанные огрехами «<» и «>» в тексте заменяются на < и >, как и положено по спецификации. Символы с кодами от 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:\FB2TOOLS\FB2FIX.
Создайте на диске (лучше в корне) две рабочие папки. Например 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 она «исправила», вставив закрывающий тэг в самый конец файла. И перед удаленным открывающим тэгом
корректор спасовал. А вот с конструкцией программа справилась «на ура». Незакрытые тэги FB2Fix также исправил как положено. А незакрытый тэг софтина просто удалила.
В то же время FB2Fix позволяет себе «не замечать» некритичные ошибки. Например, неправильно оформленные сноски, когда метка поставлена не на секцию, а на ее заголовок, или вообще абзац.
В description успешно прошедшей проверку книги добавляется строка
а в случае внесения правок версия книги увеличивается на 0.1. Правда, почему-то не всегда.
При повторном прогоне все работает корректно: строка в custom-info «размножаться» не будет.