Текст книги "Создание электронных книг в формате FictionBook 2.1: практическое руководство"
Автор книги: Михаил Кондратович
сообщить о нарушении
Текущая страница: 2 (всего у книги 15 страниц)
§ 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.
Василий
Иванович пер. Кривоколенный, 5-15
Пупкин
555-22-11
736-11-22
pupkin@pisem.net
Кооператив ул. Малая Арнаутская, 12
Рога и Копыта
202-33-20
202-32-00
http://www.horn&hoof.ua
mail@horn&hoof.ua
Как видим, сам документ имеет древовидную структуру и состоит из вложенннных элементов.
Первая строка является признаком XML и содержится во всех документах.
Элемент – это данные, ограниченные парой тэгов.
Кроме данных, элементы могут содержать в себе атрибуты – например, у элемента phone есть атрибут type, который может принимать фиксированные значения «home», «work» и «mobile».
Вместо пары тэгов для обозначения границ элемента может использоваться один тэг вида
Стандарт XML предписывает, чтобы у «дерева» элементов был корневой элемент, который будет содержать внутри себя все остальные. Корневой элемент должен быть единственным, то есть XML-документ, где два и больше корневых элементов, – это документ, сформированный неправильно.
Как видим, все просто и понятно. Документ легко читается и редактируется, а при желании можно написать XSL, трансформирующий его в HTML или RTF.
Давая свободу, XML одновременно предъявляет к документу гораздо более жесткие требования, чем HTML. Одно из ключевых понятий XML – «валидный» документ. Все элементы документа должны быть правильно закрыты, а вложенность их соответстовать спецификации. Конструкции типа Text, которые легко «проглатывает» 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 в русскоязычных онлайн-библиотеках, подтвердило его функциональность и жизнеспособность.
В нынешнем состоянии формат наиболее подходит для художественной литературы. Что совершенно не мешает, пусть и с некоторвми ограничениями, использовать его для технических, методических, справочных изданий, энциклопедий, а также для периодики.
После прочтения этого панегирика у читателя возникает справедливый вопрос:
Если FictionBook так хорош, то почему им не пользуются все?
Потому что развитие и, самое главное, продвижение формата целиком зависит от горстки энтузиастов.
Недосуг стало Михаилу Мацневу заниматься HaaliReader и FB Tools и все фактически замерло.
Впрочем, сейчас намечаются перемены к лучшему. Появляются новые программы для чтения, конверторы, и даже редакторы. Формат FictionBook попал под крыло компании «ЛитРес», правда, до сих пор, нельзя однозначно сказать, хорошо это или плохо.
Второй причиной, пожалуй можно признать, необходимость ручного труда при подготовке книги. Автоматическая конвертация, позволяющая сделать качественную книгу, просто невозможна. К тому же, до недавних пор, существующие программные средства для конвертации и редактирования особенным дружелюбием к пользователю не отличались.
Версия 2.1
Первая версия формата была слишком сыра и малофункциональна. Ей не удалось завоевать сколь-либо заметной популярности, хотя некоторые сетевые библиотеки, в частности, библиотека Мухомора, все же перешли на него. В 2003 г. на смену версии 1.0 пришла версия 2.0, в которой большинство недочетов было исправлено. А через год появилась актуальная до сих пор версия 2.1.
В нее было введено много новых и полезных элементов, как-то:
1. В заголовке появился новый необязательный раздел
2. Четыре новых способа форматирования текста: (нижний индекс), (верхний индекс), (преформатированный текст),
3. . 4. Добавлена схема управления конвертацией платных документов. 5. Переработан список жанров. 6. Добавлен новый элемент – таблицы! 7. Добавлены атрибуты title и id для К несчастью, эти полезные новшества не были оперативно поддержаны софтом для чтения и редактирования. Поэтому все нововведения оказались «сбоку припеку». Они не используются, и кое-кто из пользователей уже поговаривает, что неплохо бы их вообще убрать. Что, надеюсь, сделано не будет. Отсюда напрашивается категорический вывод, что выпуск давно анонсированной версии формата 3.0 должен сопровождаться выходом обновленных версий стандартной читалки, и не менее стандартного редактора. И читалка, и редактор, должны корректно поддерживать все особенности формата и, кроме того, они должны быть совместимы по формату закладок. Последняя «фича» крайне важна для вычитки текстов. Также, в обязательном порядке, должен быть, опять же, стандартный, пакет скриптов для сетевых библиотек. Иначе все улучшения и нововведения просто теряют всякий смысл. За время, которое заняло написание этой книги, формат несколько модернизировался. В частности, были внесены следующие изменения. В феврале 2007 г. «в связи с планируемой унификацией работы библиотек и несколькими другими техническими изменениями» было произведено несколько косметических изменений. 1. В authorType добавлено поле id, которое может присутствовать наряду с остальными полями. Предназначено для однозначной идентификации авторов в библиотеке. Содержимое аналогично ID книги. 2. В document-info добавлен необязательный узел publisher типа authorType – правообладатель. В январе 2008 г. изменения претерпел список жанров. Был убран жанр sci_business (Деловая литература), вместо него добавлен целый раздел c жанрами job_hunting (Поиск работы, карьера), management (Управление, подбор персонала), marketing (Маркетинг, PR, реклама), banking (Банковское дело), stock (Ценные бумаги, инвестиции), accounting (Бухучет, налогообложение, аудит), global_economy (Внешнеэкономическая деятельность), economics (Экономика), industries (Отраслевые издания), org_behavior (Корпоративная культура), personal_finance (Личные финансы), real_estate (Недвижимость). Еще стало возможным добавление подзаголовков в стихи. Поступательная эволюция формата еще раз подтверждает необходимость в стандартных читалке и редакторе. Время идет неумолимо, а лучшее – злейший враг хорошего. В июле 2008-го, «без труб и барабанов», была анонсирована третья версия формата. Она призвана удовлетворить возросшие требования к форматированию текста книг и возможностям их каталогизации. Это невозможно сделать, без радикальных изменений, как в устройстве, так и в идеологии формата. Книга FB3 представляет собой zip-файл, в котром хранятся отдельными файлами мета-информация (description), текст книги, а также графические дополнения. Среди поддерживаемых форматов заявлены GIF, PNG, JPEG и SVG. Связи между файлами теперь осуществляются не через xlink, а с помощью механизма отношений (в основу fb3 положен стандарт Open Packaging Convention (ECMA-376 Part 2). Отныне формат будет полноценно поддерживать подшивки – несколько книг в одном файле. Описание книги выведено в отдельный файл, а структура его полностью переработана, опять же, в связи с возросшими требованиями. В частности, предусмотрен подзаголовок – для сложноорганизованных названий, специальный блок для описания периодических изданий. Появилась возможность упоминать не только авторов и переводчиков, но и иллюстраторов, а также всех прочих деятелей, имеющих отношение к книге, добавить информацию о целевой аудитории и даже об описываемом периоде. Форматированние текста книги также претерпело существенные изменения. Добавлены списки – нумерованные и ненумерованные. Переработан механизм сносок. Самое существенное нововведение – выделенные блоки, с атрибутами расположения, выравнивания, отбивки бордюра. Соответственнно, тэг форматирования code заменен на элемент code. Сделано все это для облегчения верстки сложных документов, в частности учебников и научно-популярных изданий. Вообще, ясно просматривается тенденция расширения применяемости формата. Если FB2 «претендовал», в основном, на художественную литературу, то FB3 должен «перекрыть» большинство видов книжной продукции, исключая разве что, глянцевые журналы. Главное достоинство FictionBook остается неизменным: максимальная ориентация на полноценную и эффективную переносимость книги на любое устройство, с ограниченными ресурсами, черно-белым или небольшим дисплеем и т.п. Единожды сверстанная книга должна быть читаема на любой аппаратной базе. Сейчас проект находится в состоянии «бета». Это позволяет надеяться, что в формат будут добавлены еще какие-нибудь полезные плюшки. Желающие узнать больше могут ознакомиться с соответствующей статьей Дмитрия Грибова на FictionBook.org, краткий пересказ которой вы, собственно, сейчас и прочли. От себя же вынужден отметить, что, несмотря на столь выдающиеся задатки, будущее формата весьма туманно. Во-первых, неоспоримо, что на инновационный формат будет «давить» уже накопленная масса книг. Пусть даже конвертация FB2 в FB3, стараниями Дмитрия Грибова, будет тривиальной задачей. Но перелопачивание прорвы книг растянется на годы. Именно большой объем имеющихся данных в свое время помешал новым форматам VQF, MP3 Pro, а затем и OggVorbis вытеснить MP3. Кроме того, за бугром уже стал офицальным стандартом весьма зубастый конкурент – e-Pub. Конечно, можно успокаивать себя, что в Рунете он не прижился. Но продвижение FB3 за рубеж он может подпортить самым решительным образом. Конечно, за FB3 стоит уже не горстка энтузиастов, а солидная компания – «ЛитРес». Что добавляет в нашу бочку мёда еще один черпачок дёгтя. Велик соблазн сделать из FB3 чисто коммерческий формат. Тем более, что навесить DRM на zip-архив на порядок проще, чем на текстовый XML. Конечно, навряд ли FB3 станет закрытым форматом. Это, как говорится, из области фантастики. Но в том, что продвинутые средства разработки останутся монополией «ЛитРес»-а, можно даже не сомневаться. Что, несомненно, «добавит» формату привлекательности. Впрочем, автор книги искренне надеется, что последние абзацы так и останутся параноидальными домыслами, а FB3 сравнится по популярности с MP3. К вящей радости читателей… Книга FictionBook представляет собой XML-файл. Структурно этот файл можно разделить на три части. 1) Desсription – заголовок (описание) книги; 2) Body – непосредственно текст книги. В книге может быть несколько body. 3) Binary – необязательная часть. Содержит бинарные файлы, в кодировке BASE64. [2.1]2.1
Cпецификация (schema) FictionBook находится на сайте Дмитрия Грибова, а также входит в комплект FB Tools. Поэтому размещать ее в электронной версии книги смысла нет. Но пример книги в формате FictionBook привести необходимо: Это пример книги в формате FictiionBook v 1.0 – создание книги (Юзич) Юзич ПРИМЕР КНИГИ В ФОРМАТЕ FictionBook 2.1 Это эпиграф Первая секция Секции обычно содержат текст. Текст может разделяться пустыми строками. Или подзаголовками. Вторая секция Первая вложенная секция Текст может быть полужирным или Содержать линки и [сноски]. В тексте могут быть картинки. Вторая вложенная секция Это цитата. Снова текст. Третья секция Стихи: Парус Снова обычный текст. Примечания 1 Текст сноски. RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAGUExURQEBAf///+tZAq0AAAAY SURBVHjaYmBAAEZGRjDGzsKvDgYAAgwABR4AH2mwMFgAAAAASUVORK5CYII= В самом начале любого файла книги идет признак формата XML <?xml version="1.0" encoding="windows-1251"?> Здесь указана сигнатура принадлежности к формату XML, его версия и кодировка файла. Для русскоязычных FictionBook это обычно windows-1251 или utf-8. [2.2]2.2
За ним в обязательном порядке следует: Корневой элемент. Cинтаксис: <FictionBook>content</FictionBook>. Фактически, всегда используется в виде: <FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0« xmlns:l=»http://www.w3.org/1999/xlink"> content </FictionBook>. Используется в элементах: корневой элемент Вложенные элементы: stylesheet, description, body, binary Количество вхождений: одно Атрибуты: xmlns Версия формата: 2.0 Пример: см. пример книги FictionBook, § 2.2 Список стилей, позволяющих конкретно определить, как будет выглядеть книга на экране устройства для чтения. До последнего времени читалками не поддерживался и практически не использовался. Лишь в конце 2007 года появился CoolReader 3.09 с экспериментальной поддержкой stylesheet. Cинтаксис: <stylesheet>content</stylesheet>. Используется в элементах: FictionBook Вложенные элементы: нет Количество вхождений: одно или отсутствует. Атрибуты: type Версия формата: 2.0 Пример: .body{font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;} .p{margin:0.5em 0 0 0.3em; padding:0.2em; text-align:justify;} Заголовок (описание) книги. Cинтаксис: <description>content</description>. Используется в элементах: FictionBook Вложенные элементы: title-info, src-title-info, document-info, publish-info, custom-info, output Количество вхождений: одно Атрибуты: нет Версия формата: 2.0 Пример: Тело книги. Допускаются дополнительные body для примечаний и дополнительных материалов. Cинтаксис: <body>content</body>. Используется в элементах: FictionBook Вложенные элементы: image, title, epigraph, section Количество вхождений: одно и более Атрибуты: name Версия формата: 2.0 Пример: Заголовок Текст. Содержит бинарные элементы, присоединяемые к файлу книги. Как правило, это картинки. Cинтаксис: <binary>content</binary>. Используется в элементах: FictionBook Вложенные элементы: нет Количество вхождений: произвольное Атрибуты: id (обязательный), content-type (обязательный) Версия формата: 2.0 Пример: iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAMAAAAcEyWHAAAABGdBTUEAAK/INwWK6QAAABl0 RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAGUExURQEBAf///+tZAq0AAAAY SURBVHjaYmBAAEZGRjDGzsKvDgYAAgwABR4AH2mwMFgAAAAASUVORK5CYII=Дальнейшее развитие формата.
Версии 2.2 и 2.21
FictionBook 3 – прорыв или тупик?
Часть II
Подробное описание формата FictionBook§ 2.1 Структура файла FictionBook.
Базовые понятия
Подробное описание BASE64 cм. приложение E.
[Закрыть] Как правило, это картинки.§ 2.2 Пример книги в формате FictionBook
§ 2.3 Элементы описания книги.
Базовые структурные элементы
UTF-8 – это ASCII-совместимая многобайтная кодировка Unicode.
В отличие от стандартного Unicode, в utf-8 cимволы с кодами от 0x00000000 до 0x0000007f (стандартный набор US-ASCII) кодируются как байты с кодами от 0x00 до 0x7f (совместимость с кодовой таблицей ASCII). Это означает, что файлы и строки, содержащие только 7-битные ASCII-символы, будут иметь одинаковое представление как в ASCII, так и в UTF-8.
[Закрыть]Элемент FictionBook
Элемент stylesheet
Элемент description
Элемент body
Элемент binary








