Електронні книги та їх формати: FB2 та FB3 — історія, плюси, мінуси та принципи роботи

У минулому матеріалі ми розповідали про особливості формату DjVu. Сьогодні ми вирішили зупинитися на форматі FictionBook2, більш відомому як FB2, та його «спадкоємці» FB3.

Електронні книги та їх формати: FB2 та FB3 — історія, плюси, мінуси та принципи роботи
/Flickr/ Judit Klein / CC

Поява формату

У середині 90-х ентузіасти почали оцифровувати радянські книги. Вони перекладали та зберігали літературу у найрізноманітніших форматах. Одна з перших бібліотек у Рунеті Бібліотека Максима Мошкова — використовувала форматований текстовий файл (TXT).

Вибір на його користь був зроблений через стійкість до пошкодження байтів та універсальність - TXT відкривається на будь-якій операційній системі. Однак він ускладнював обробку текстової інформації, що зберігається. Наприклад, для переходу на тисячний рядок доводилося обробляти 999 рядків, що йдуть перед нею. Книги також зберігали у «вордівських» документах та PDF — останній було складно перетворювати на інші формати, а слабкі комп'ютери відкривали і відображали PDF-документи із затримками.

Також для "зберігання" електронної літератури використовували HTML. Він спростив індексацію, перетворення на інші формати та створення документів (розмітку тексту тегами), але привніс власні недоліки. Одним із найзначніших була «розпливчастістьстандарту: він дозволяв певні вільності при написанні тегів. Деякі з них мали бути закриті, інші (наприклад, ) - Закривати було необов'язково. Самі теги могли мати довільний порядок вкладення.

І хоча подібна робота з файлами не заохочувалась — такі документи вважалися некоректними — стандарт вимагав від рідерів спробувати відобразити вміст. Тут і виникали складнощі, оскільки у кожному додатку процес «домислення» було реалізовано по-своєму. При цьому на той момент наявні на ринку пристрої та додатки для читання розуміли один-два спеціалізовані формати. Якщо книга була в одному форматі, її доводилося переформатувати, щоби прочитати. Вирішити всі ці недоліки і був покликаний Художня книга 2, або FB2, який взяв на себе первинне «зачісування» тексту та конвертацію.

Зазначимо, що формат мав першу версію. Художня книга 1 — проте вона мала лише експериментальний характер, проіснувала недовго, на сьогоднішній день не підтримується і не має зворотної сумісності. Тому під FictionBook найчастіше мають на увазі його "послідовника" - формат FB2.

FB2 створила група розробників, очолювана Дмитром Грибовим, який є технічним директором компанії «ЛітРес», та Михайлом Мацневим, творцем читалки Haali Reader. В основу формату ліг XML, який суворіший, ніж HTML, регламентує роботу з незакритими та вкладеними тегами. XML-документ супроводжується так званою XML-схемою. XML-схема - це спеціальний файл, в якому зібрані всі теги та описані правила їх застосування (послідовність, вкладеність, обов'язковість та необов'язковість та ін.). У FictionBook схема знаходиться у файлі FictionBook2.xsd. Приклад XML-схеми ви можете знайти за за посиланням (Вона використовується магазином електронних книг «ЛітРес»).

Структура документа FB2

Текст у документі зберігається у спеціальних тегах - елементах типів параграфів: , і . Також є елемент , який не має вмісту та використовується для вставки перепусток.

Усі документи починаються з кореневого тега , нижче за який можуть з'являтися , , і .

Тег містить таблиці стилів, щоб полегшити конвертацію в інші формати. У лежать закодовані за допомогою base64 дані, які можуть знадобитися для рендерингу документа.

Елемент містить всю необхідну інформацію про книгу: жанр твору, список авторів (П. І. О., адреса електронної пошти та сайт в інтернеті), назва, блок із ключовими словами, анотацію. Також у ньому може бути інформація про зміни, що вносяться в документ, і дані про видавця книги, якщо вона випускалася на паперовому носії.

Ось так виглядає частина блоку у записі FictionBook для твори «Етюд у багряних тонах» Артура Конана Дойла, взятого з Проекту «Гутенберг»:

<?xml version="1.0" encoding="iso-8859-1"?>
 <FictionBook 
  >
  <description>
    <title-info>
      <genre match="100">detective</genre>
      <author>
        <first-name>Arthur</first-name>
        <middle-name>Conan</middle-name>
        <last-name>Doyle</last-name>
      </author>
      <book-title>A Study in Scarlet</book-title>
      <annotation>
      </annotation>
      <date value="1887-01-01">1887</date>
    </title-info>
  </description>

Ключовим компонентом FictionBook-документа є . Він безпосередньо містить текст книги. У документі цих тегів може бути кілька — додаткові блоки використовуються для зберігання виносок, коментарів та приміток.

FictionBook також надає кілька тегів для роботи з гіперпосиланнями. Вони ґрунтуються на специфікації Хід, розробленої консорціумом 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, наприклад, Дарвін 3 або Клеопатра 3.

Електронні книги та їх формати: FB2 та FB3 — історія, плюси, мінуси та принципи роботи
/ ONYX BOOX Cleopatra 3

Більше поширення FictionBook3 дозволить сформувати екосистему, орієнтовану на повноцінну та ефективну роботу з текстом на будь-якому пристрої з обмеженими ресурсами: чорно-білим або невеликим дисплеєм, низьким об'ємом пам'яті та ін.

PS Пропонуємо до вашої уваги кілька оглядів рідерів ONYX BOOX:



Джерело: habr.com

Додати коментар або відгук