Михаил Кондратович - Создание электронных книг в формате FictionBook 2.1: практическое руководство (beta 4)
Как видим, язык XML имеет наилучшее сочетание качеств, необходимых для e-book. Поэтому попытки делать e-book на его основе уже предпринимались неоднократно и небезуспешно.
В отличие от txt, RTF, DOC, HTML, PDF, и т.д. которые однозначно ориентированы на отображение или хранение текстовых данных, форматы на основе XML позволяют структурировать книгу.
Известны форматы OEB (Open E-Book), DocBook и другие. Но наиболее популярным (по крайней мере, в Рунете) является FictionBook.
§ 1.3 Несколько слов о XML
Расширяемый язык разметки — eXtensible Markup Language, был создан для хранения структурированных данных в текстовом формате. Теоретически файлы XML должны легко читаться, как программным обеспечением, так и человеком.
С использованием технологии XML можно записывать и обрабатывать практически любые данные, вне зависимости от их структуры и сложности.
На базе XML уже создано большое количество подмножеств для решения конкретных задач. Например, есть реализация HTML средствами XML — XHTML, язык для записи математических формул и выражений (MathML), язык для химических формул, для медицинской электронной документации. Новый формат файлов пакета M$ Office 2007 представляет собой не что иное, как пачку XML-документов, которые сохраняются в одном архиве.
Кроме того, поскольку любые данные в XML — это обычный текст, то и работать с ними можно как с текстом: готовить XML-документы в notepad, а в случае потери какой-либо части данных с остальными можно будет по-прежнему работать.
В отличие от HTML, набор средств разметки (тэгов) в XML не фиксирован, и может быть произвольным.
Разумеется, это должно как-то описываться. Поэтому в XML есть такое понятие, как «спецификация», DTD (Document Type Definition — описание типа документа) — документ, в котором описана структура XML-подмножества. В настоящее время на смену DTD пришла XML Schema.
Если возникнет необходимость, XML легко преобразовать в любой другой формат. Для этого существует XSLT — eXtensible Stylesheet Language Transformation — расширяемый язык стилей.
Вот, к примеру, реализация адресной книги на базе XML.
<?xml version="1.0" encoding="UTF-8"?>
<AddressBook>
<contact>
<persone>
<name>Василий</name>
<patronymic>Иванович<patronymic>
<surname>Пупкин</surname>
<address>пер. Кривоколенный, 5-15</address>
<phone type="home">555-22-11</phone>
<phone type="mobile">736-11-22</phone>
<e-mail> [email protected]</e-mail>
</persone>
</contact>
<contact>
<organization>
<type-org>Кооператив</type-org>
<name-org>Рога и Копыта</name-org>
<address>ул. Малая Арнаутская, 12</address>
<phone type="work">202-33-20</phone>
<phone type="work">202-32-00</phone>
<site>http://www.horn&hoof.ua</site>
<e-mail> [email protected]&hoof.ua</e-mail>
</organization>
</contact>
</AddressBook>
Как видим, сам документ имеет древовидную структуру и состоит из вложенннных элементов.
Первая строка является признаком XML и содержится во всех документах.
Элемент — это данные, ограниченные парой тэгов. <tag> и </tag>.
Кроме данных, элементы могут содержать в себе атрибуты — например, у элемента phone есть атрибут type, который может принимать фиксированные значения «home», «work» и «mobile».
Вместо пары тэгов для обозначения границ элемента может использоваться один тэг вида <tag/>, но тогда у такого элемента не может быть данных и вложенных элементов.
Стандарт XML предписывает, чтобы у «дерева» элементов был корневой элемент, который будет содержать внутри себя все остальные. Корневой элемент должен быть единственным, то есть XML-документ, где два и больше корневых элементов, — это документ, сформированный неправильно.
Как видим, все просто и понятно. Документ легко читается и редактируется, а при желании можно написать XSL, трансформирующий его в HTML или RTF.
Давая свободу, XML одновременно предъявляет к документу гораздо более жесткие требования, чем HTML. Одно из ключевых понятий XML — «валидный» документ. Все элементы документа должны быть правильно закрыты, а вложенность их соответстовать спецификации. Конструкции типа <i><b>Text</i></b>, которые легко «проглатывает» HTML, в XML считаются фатальной ошибкой.
§ 1.4 Формат FictionBook — стандарт де-факто для электронных книг
Итак, формат FictionBook…
Сам формат был разработан Дмитрием Грибовым с несколькими соавторами, при поддержке группы энтузиастов.
Он полностью базируется на XML.
На данный момент это самый прогрессивный и перспективный формат для электронных книг. Единственный его недостаток, как признают сами авторы, бОльшие временные затраты при подготовке начального текста. Впрочем, он легко окупается удобством чтения.
В отличие от всех не-XML форматов, которые ориентированы на хранение или оформление текстовых данных, в FictionBook упор сделан на структурирование документа. То есть с помощью тэгов выделяются области текста: это — глава, это — заголовок, это — эпиграф, а вот это — цитата. А как все «это» будет выглядеть на экране, зависит от программы-ридера. Впрочем, на случай, если потребуется оформить книгу строго определенным образом, предусмотрена возможность присоединения таблицы стилей.
Используя формат FictionBook можно создать четко структурированную книгу (именно книгу, а не просто электронный документ), которую удобно читать в специализированной программе-читалке, а в случае надобности можно легко сконвертировать в любой популярный формат. Как правило, без потери разметки.
Возможности FictionBook позволяют выделить отдельные элементы книги: заголовки, эпиграфы, стихи, цитаты, вставить в текст иллюстрации и сноски, и, что немаловажно, внести все выходные данные книги.
Все компоненты книги (описание, непосредственно текст, иллюстрации) хранятся в одном файле, который можно упаковать архиватором. Большинство программ-читалок для FB2 умеют напрямую работать с архивами.
За прошедшие несколько лет стандарт уже успел устояться. Несмотря на то, что он включает сравнительно немного элементов, в него трудно добавить что-то действительно новое и полезное.
Еще одно достоинство FictionBook — книги в этом формате отлично поддаются каталогизации. Опираясь на встроенную систему описания книги, можно с легкостью создать как домашнюю, так и сетевую электронную библиотеку любого масштаба.
Учитывая объем электронных книг, накопленный до появления FictionBook, первый вопрос, который возникает при знакомстве с новым форматом — это возможность конвертирования книг из других форматов.
Никаких проблем. Разработанные авторами формата и энтузиастами программные средства позволяют эффективно конвертировать книги из форматов txt, HTML, RTF (doc).
Если же, наоборот, возникнет необходимость преобразовать книгу в формате FictionBook в другой формат, то «штатный» конвертор FB2Any неплохо справляется с преобразованием FB2 не только в классические txt и RTF, но и в специализированные форматы Roсket Book, iSilo, Micro$oft Reader. Еще не успел устояться новомодный формат для аппаратных читалок Wolf, как появились сразу несколько программ для конвертации книг fb2 в этот формат.
Таким образом, формат FictionBook обладает всеми качествами, чтобы стать единым стандартом для e-Book. И, фактически, уже стал им. Использование FB2 в русскоязычных онлайн-библиотеках, подтвердило его функциональность и жизнеспособность.
В нынешнем состоянии формат наиболее подходит для художественной литературы. Что совершенно не мешает использовать его для технических, методических, справочных изданий, энциклопедий, а также для периодики.
После прочтения этого панегирика у читателя возникает справедливый вопрос:
Если FictionBook так хорош, то почему им не пользуются все?Потому что развитие и, самое главное, продвижение формата целиком зависит от горстки энтузиастов.
Недосуг стало Михаилу Мацневу заниматься HaaliReader и FB Tools и все фактически замерло.
Впрочем, сейчас намечаются перемены к лучшему. Появляются новые программы для чтения, конверторы, и даже редакторы. Формат FB попал под крыло компании «ЛитРес», правда, пока что, нельзя однозначно сказать, хорошо это или плохо.
Второй причиной, пожалуй можно признать, необходимость ручного труда при подготовке книги. Автоматическая конвертация, позволяющая сделать качественную книгу просто невозможна. К тому же, до недавних пор, существующие программные средства для конвертации и редактирования особенным дружелюбием к пользователю не отличались.
Версия 2.1Первая версия формата была слишком сыра и малофункциональна. Ей не удалось завоевать сколь-либо заметной популярности, хотя некоторые сетевые библиотеки, в частности, библиотека Мухомора, все же перешли на него. В 2003 г. на смену версии 1.0 пришла версия 2.0, в которой большинство недочетов было исправлено. А через год появилась актуальная до сих пор версия 2.1.