/ Flickr / Judit Klein / CC
Появление формата
В середине 90-х годов энтузиасты начали оцифровывать советские книги. Они переводили и сохраняли литературу в самых разнообразных форматах. Одна из первых библиотек в Рунете — Библиотека Максима Мошкова — использовала форматированный текстовый файл (TXT).
Выбор в его пользу был сделан из-за устойчивости к повреждению байтов и универсальности — TXT открывается на любой операционной системе. Однако он затруднял обработку хранимой текстовой информации. Например, для перехода на тысячную строку приходилось обрабатывать 999 строк, идущих перед ней. Книги также хранили в «вордовских» документах и PDF — последний было сложно преобразовывать в другие форматы, а слабые компьютеры открывали и отображали PDF-документы с задержками.
Также для «хранения» электронной литературы использовали HTML. Он упростил индексацию, преобразование в другие форматы и создание документов (разметку текста тегами), но привнес собственные недостатки. Одним из самых значимых была «расплывчатость» стандарта: он позволял определенные вольности при написании тегов. Некоторые из них должны были быть закрыты, другие (например,
) — закрывать было необязательно. Сами теги могли иметь произвольный порядок вложения.
И хотя подобная работа с файлами не поощрялась — такие документы считались некорректными — стандарт требовал от ридеров попробовать отобразить содержимое. Здесь и возникали сложности, так как в каждом приложении процесс «домысливания» был реализован по-своему. При этом на тот момент имеющиеся на рынке устройства и приложения для чтения понимали один-два специализированных формата. Если книга имелась в одном формате, её приходилось переформатировать, чтобы прочесть. Решить все эти недостатки и был призван FictionBook2, или FB2, который взял на себя первичное «причесывание» текста и конвертацию.
Отметим, что у формата была первая версия — FictionBook1 — однако она носила лишь экспериментальный характер, просуществовала недолго, на сегодняшний день не поддерживается и не имеет обратной совместимости. Поэтому под FictionBook чаще всего подразумевают его «последователя» — формат FB2.
FB2 создала группа разработчиков, возглавляемая Дмитрием Грибовым, который является техническим директором компании «ЛитРес», и Михаилом Мацневым, создателем читалки Haali Reader. В основу формата лег XML, который строже, чем HTML, регламентирует работу с незакрытыми и вложенными тегами. XML-документ сопровождается так называемой XML-схемой. XML-схема — это специальный файл, в котором собраны все теги и описаны правила их применения (последовательность, вложенность, обязательность и необязательность и др.). В FictionBook схема находится в файле FictionBook2.xsd. Пример XML-схемы вы можете найти по ссылке (она используется магазином электронных книг «ЛитРес»).
Структура документа FB2
Текст в документе хранится в специальных тегах — элементах типов параграфов:
,
Все документы начинаются с корневого тега
Тег
Элемент
Вот так выглядит часть блока
detective Arthur Conan Doyle A Study in Scarlet 1887
Ключевым компонентом FictionBook-документа является
. Он содержит непосредственно текст книги. Во всем документе этих тегов может быть несколько — дополнительные блоки используются для хранения сносок, комментариев и примечаний.FictionBook также предоставляет несколько тегов для работы с гиперссылками. Они основываются на спецификации XLink, разработанной консорциумом W3C специально для создания ссылок между различными ресурсами в XML-документах.
Достоинства формата
Стандарт FB2 включает в себя лишь минимально необходимый набор тегов (достаточный для «оформления» художественной литературы), что упрощает его обработку ридерами. Причем в случае прямой работы ридера с форматом FB, пользователь получает возможность настроить под себя практически все параметры отображения.
Строгая структура документа позволяет автоматизировать процесс преобразования из формата FB в любой другой. Эта же структура дает возможность работать с отдельными элементами документов — настраивать фильтры по авторам книг, названию, жанру и др. По этой причине формат FB2 и приобрел популярность в Рунете, став стандартом по умолчанию в российских электронных библиотеках и библиотеках стран СНГ.
Недостатки формата
Простота формата FB2 является его достоинством и недостатком одновременно. Это ограничивает функционал для сложной верстки текста (например, примечаний на полях). В нем нет векторной графики и поддержки нумерованных списков. По этой причине формат не очень подходит для учебников, справочников и технической литературы (об этом даже говорит само название формата — fiction book, или «художественная книга»).
При этом, чтобы отобразить минимальную информацию о книге — название, автора и обложку — программе требуется обработать практически весь XML-документ. Это связано с тем, что метаданные располагаются в начале текста, а изображения — в конце.
FB3 — развитие формата
В связи с возросшими требованиями к форматированию текстов книг (и чтобы нивелировать некоторые из недостатков FB2), Грибов начал работу над форматом FB3. Позже разработка остановилась, но в 2014 году была возобновлена.
По словам авторов, они изучили реальные потребности при издании технической литературы, посмотрели учебники, справочники, пособия и очертили более конкретный набор тегов, который бы позволил отобразить любую книгу.
В новой спецификации формат FictionBook представляет собой zip-архив, в котором отдельными файлами хранятся метаданные, изображения и текст. Требования к формату zip-файла и соглашения о его организации прописаны в стандарте ECMA-376, определяющем Open XML.
Был сделан ряд улучшений, связанных с форматированием (разрядка, подчеркивание) и добавлен новый объект — «блок» — оформляющий произвольный фрагмент книги в виде четырехугольника и способный внедряться в текст с обтеканием. Появилась поддержка нумерованных и маркированных списков.
FB3 распространяется по свободной лицензии и имеет открытый код, поэтому издателям и пользователям доступны все утилиты: конвертеры, облачные редакторы, читалки. Текущую версию формата, читалку и редактор можно найти в репозитории проекта на GitHub.
В целом FictionBook3 пока менее распространён, чем его старший брат, однако книги в этом формате уже предлагают несколько электронных библиотек. А в «ЛитРес» еще пару лет назад заявляли о намерении перевести весь свой каталог на новый формат. Часть ридеров уже поддерживает весь необходимый функционал FB3. Например, работать с этим форматом «из коробки» умеют все современные модели ридеров ONYX, например, Darwin 3 или Cleopatra 3.
Более широкое распространение FictionBook3 позволит сформировать экосистему, ориентированную на полноценную и эффективную работу с текстом на любом устройстве с ограниченными ресурсами: черно-белым или небольшим дисплеем, низким объемом памяти и др. По словам разработчиков, единожды сверстанная книга будет максимально удобной в любой среде.
P.S. Предлагаем вашему вниманию несколько обзоров ридеров ONYX BOOX:
- Обзор ONYX BOOX Darwin 3: больше, чем электронная книга
- Технологии против «античности»: обзор ридера ONYX BOOX Chronos
- Царица изволит почитать: обзор электронной книги ONYX BOOX Cleopatra 3
- Обзор ONYX BOOX Darwin 4: лучшая электронная книга на E-Ink
Источник