Создание электронных книг в формате FictionBook 2.1: практическое руководство
Шрифт:
В отличие от 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>пер.
<phone type="home">555-22-11</phone>
<phone type="mobile">736-11-22</phone>
<e-mail>pupkin@pisem.net</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>mail@horn&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 в этот формат. А стоило читалкам пойти в массы, как для них появились прошивки, напрямую поддерживающие FB2. Читалки же с Linux-начинкой (Irex Reader, PocketBook 301, PocketBook 360) вообще дружат с FB2 от рождения.
Таким образом, формат FictionBook обладает всеми качествами, чтобы стать единым стандартом для e-Book. И, фактически, уже стал им. Использование FB2 в русскоязычных онлайн-библиотеках, подтвердило его функциональность и жизнеспособность.
В нынешнем состоянии формат наиболее подходит для художественной литературы. Что совершенно не мешает, пусть и с некоторвми ограничениями, использовать его для технических, методических, справочных изданий, энциклопедий, а также для периодики.
После прочтения этого панегирика у читателя возникает справедливый вопрос: