Набор скриптов для починки и обработки и валидации fb2 файлов в bash (Linux и другие Unix-подобные)
Дублирует некоторые возможности скриптов из набора FictionBook Editor, которые лежат тут: http://github.com/sensboston/fictionbookeditor
Сами скрипты можно обсудить тут: https://groups.google.com/u/1/g/fiction-book-editor
На основе скриптов, написанных Sclex и Jürgen/jurgennt, сейчас реализовано:
- "генеральная уборка": более-менее полное повторение, но функционал расширен и дополнен
- "кириллица в латинице": пока только для слов из 3-х и более букв
Скрипт "генеральная уборка" также выполняет валидацию файла fb2 и сравнивает в vim исходный и обработанный файлы.
Проект в работе, могут быть ошибки.
Запуск ./fb2fix.sh [ключ] book.fb2
Возможные ключи:
-gc | -06 - "генеральная уборка", немного расширенная версия оригинального скрипта от Jürgen/jurgennt и Sclex + валидатор
Также ищет и исправляет латиницу в кириллице и "чинит" римские цифры.
-lnun | -lu - сквозная сортировка сносок типа n_[0-9]+ и их <section id=, базовая проверка ссылок
-stal | -st0 - вывести структуру fb2: основные тэги + заголовки + сноски тексте + картинки
-ston | -st1 - вывести структуру fb2: основные тэги + заголовки
-stln | -st3 - вывести структуру fb2: только сноски в тексте
-stim | -st4 - вывести структуру fb2: только тэги картинок
-ch | -char - вывести список всех символов в файле - для вывода в консоль
-ch0 | -chnc - вывести список всех символов в файле (без цвета) - для записи в файл
Требования
-
bash, т.е. любая из unix-подобных консолей.
В том числе Termux на Андроиде, linux-консоль в Windows или GygWin там же, разные Linux'ы, MacOS и т.д. и т.п. -
GNU sed, GNU awk, vim или neovim, xmllint, envsubst (из gettext или gettext-base), dos2unix
Всё это или уже есть в системе или его нужно доустановить.
- xmllint, как его поставить смотрим тут https://command-not-found.com/xmllint
Некоторые системы (например, MacOS) по умолчанию имеют свои вариации sed и awk. Обязательно установите именно GNU sed и GNU awk.
- в scriptdb/settings.ini должен быть установлен один из редакторов vim или nvim
(Параметр termcorrection пока не используется - это настройка для скриптов из соседнего репозитория)