KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Прочая околокомпьтерная литература » Михаил Кондратович - Создание электронных книг в формате FictionBook 2.1: практическое руководство

Михаил Кондратович - Создание электронных книг в формате FictionBook 2.1: практическое руководство

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Михаил Кондратович, "Создание электронных книг в формате FictionBook 2.1: практическое руководство" бесплатно, без регистрации.
Перейти на страницу:

Впрочем, автор книги искренне надеется, что последние абзацы так и останутся параноидальными домыслами, а FB3 сравнится по популярности с MP3. К вящей радости читателей…

Часть II

Подробное описание формата FictionBook

§ 2.1 Структура файла FictionBook.

Базовые понятия

Книга FictionBook представляет собой XML-файл.

Структурно этот файл можно разделить на три части.

1) Desсription — заголовок (описание) книги;

2) Body — непосредственно текст книги. В книге может быть несколько body.

3) Binary — необязательная часть. Содержит бинарные файлы, в кодировке BASE64. [2.1] Как правило, это картинки.

§ 2.2 Пример книги в формате FictionBook

Cпецификация (schema) FictionBook находится на сайте Дмитрия Грибова, а также входит в комплект FB Tools. Поэтому размещать ее в электронной версии книги смысла нет.

Но пример книги в формате FictionBook привести необходимо:

<?xml version="1.0" encoding="windows-1251"?>

<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0" xmlns:l="http://www.w3.org/1999/xlink">

 <description>

  <title-info>

   <genre>reference</genre>

   <author>

    <first-name>Имя автора</first-name>

    <last-name>Фамилия автора</last-name>

    <nickname>Юзич</nickname>

   </author>

   <book-title>Пример книги в формате FictionBook 2.1</book-title>

   <annotation>

   

Это пример книги в формате FictiionBook

   </annotation>

   <date value="2006-04-14">14 апреля 2006 г.</date>

   <lang>ru</lang>

  </title-info>

  <document-info>

   <author>

    <nickname>Юзич</nickname>

   </author>

   <program-used>FB Tools</program-used>

   <date value="2006-04-14">2006-04-14</date>

   <id>1E693E16-8A80-4391-9800-C1A91A5E29A7</id>

   <version>1.0</version>

   <history>

   

v 1.0 — создание книги (Юзич)

   </history>

  </document-info>

 </description>

 <body>

  <title>

  

Юзич

  

ПРИМЕР КНИГИ В ФОРМАТЕ FictionBook 2.1

  </title>

  <epigraph>

  

Это эпиграф

   <text-author>Автор эпиграфа</text-author>

  </epigraph>

  <section>

   <title>

   

Первая секция

   </title>

  

Секции обычно содержат текст.

   <empty-line/>

  

Текст может разделяться пустыми строками.

   <subtitle>Подзаголовок</subtitle>

  

Или подзаголовками.

  </section>

  <section>

   <title>

   

Вторая секция

   </title>

   <section>

    <title>

    

Первая вложенная секция

    </title>

   

Текст может быть <strong>полужирным</strong> или <emphasis>курсивным</emphasis>.

   

Содержать <a l:href="#Sect3">линки</a> и <a l:href="#note01" type="note">[сноски]</a>.

   

В тексте могут быть картинки.

    <image l:href="#sampl.png"/>

    <empty-line/>

   </section>

   <section>

    <title>

    

Вторая вложенная секция

    </title>

    <cite>

    

Это цитата.

     <text-author>Автор цитаты.</text-author>

    </cite>

   

Снова текст.

   </section>

  </section>

  <section id="Sect3">

   <title>

   

Третья секция

   </title>

  

Стихи:

   <poem>

    <title>

    

Парус

    </title>

    <stanza>

     <v>А у дельфина взрезано брюхо винтом.</v>

     <v>Выстрела в спину не ожидает никто.</v>

     <v>На батарее нету снарядов уже.</v>

     <v>Надо быстрее на вираже.</v>

    </stanza>

    <stanza>

     <v>Но парус! Порвали парус!</v>

     <v>Каюсь! Каюсь! Каюсь!</v>

    </stanza>

    <text-author>Владимир Высоцкий</text-author>

   </poem>

  

Снова обычный текст.

  </section>

 </body>

 <body name="notes">

  <title>

  

Примечания

  </title>

  <section id="note01">

   <title>

   

1

   </title>

  

Текст сноски.

  </section>

 </body>

 <binary id="sampl.png" content-type="image/png">iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAMAAAAcEyWHAAAABGdBTUEAAK/INwWK6QAAABl0

RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAGUExURQEBAf///+tZAq0AAAAY

SURBVHjaYmBAAEZGRjDGzsKvDgYAAgwABR4AH2mwMFgAAAAASUVORK5CYII=</binary>

</FictionBook>

§ 2.3 Элементы описания книги.

Базовые структурные элементы

В самом начале любого файла книги идет признак формата XML

<?xml version="1.0" encoding="windows-1251"?>

Здесь указана сигнатура принадлежности к формату XML, его версия и кодировка файла. Для русскоязычных FictionBook это обычно windows-1251 или utf-8. [2.2]

За ним в обязательном порядке следует:

Элемент FictionBook

Корневой элемент.

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

Элемент stylesheet

Список стилей, позволяющих конкретно определить, как будет выглядеть книга на экране устройства для чтения. До последнего времени читалками не поддерживался и практически не использовался. Лишь в конце 2007 года появился CoolReader 3.09 с экспериментальной поддержкой stylesheet.

Cинтаксис: <stylesheet>content</stylesheet>.

Используется в элементах: FictionBook

Вложенные элементы: нет

Количество вхождений: одно или отсутствует.

Атрибуты: type

Версия формата: 2.0

Пример:

 <stylesheet type="text/css">

 .body{font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;}

 .p{margin:0.5em 0 0 0.3em; padding:0.2em; text-align:justify;}

 </stylesheet>

Элемент description

Заголовок (описание) книги.

Cинтаксис: <description>content</description>.

Используется в элементах: FictionBook

Вложенные элементы: title-info, src-title-info, document-info, publish-info, custom-info, output

Количество вхождений: одно

Атрибуты: нет

Версия формата: 2.0

Пример:

<description>

  <title-info>

   <genre>nonfiction</genre>

   <author>

    <first-name>Имя автора</first-name>

    <last-name>Фамилия автора</last-name>

   </author>

   <book-title>Название книги</book-title>

   <date>2007 г.</date>

   <lang>ru</lang>

  </title-info>

  <document-info>

   <author>

    <nickname>Юзич</nickname>

   </author>

   <program-used>FB Tools</program-used>

   <date value="2006-07-10">2006-07-10</date>

   <id>46C35002-014D-4AE4-8FE4-5E7881D72B0D</id>

   <version>1.0</version>

  </document-info>

 </description>

Элемент body

Тело книги. Допускаются дополнительные body для примечаний и дополнительных материалов.

Cинтаксис: <body>content</body>.

Используется в элементах: FictionBook

Вложенные элементы: image, title, epigraph, section

Количество вхождений: одно и более

Атрибуты: name

Версия формата: 2.0

Пример:

<body>

  <title>

  

Заголовок

  </title>

  <section>

  

Текст.

  </section>

 </body>

Элемент binary

Содержит бинарные элементы, присоединяемые к файлу книги. Как правило, это картинки.

Cинтаксис: <binary>content</binary>.

Используется в элементах: FictionBook

Вложенные элементы: нет

Количество вхождений: произвольное

Атрибуты: id (обязательный), content-type (обязательный)

Версия формата: 2.0

Пример:

<binary id="sampl.png" content-type="image/png">

iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAMAAAAcEyWHAAAABGdBTUEAAK/INwWK6QAAABl0

RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAGUExURQEBAf///+tZAq0AAAAY

SURBVHjaYmBAAEZGRjDGzsKvDgYAAgwABR4AH2mwMFgAAAAASUVORK5CYII=

</binary>

§ 2.4 Элементы описания книги (description). Элементы первого уровня

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*