(преформатированный текст), (зачеркнутый текст).
3. теперь может содержать любое форматирование и ссылки, наравне с .
4. Добавлена схема управления конвертацией платных документов.
5. Переработан список жанров.
6. Добавлен новый элемент — таблицы!
7. Добавлены атрибуты title и id для , предназначенный для подписей к картинкам и ссылок на картинки соответственно. Inline картинки и картинки в , по прежнему, никаких id и подписей не имеют.
К несчастью, эти полезные новшества не были оперативно поддержаны софтом для чтения и редактирования.
Поэтому все нововведения оказались «сбоку припеку». Они не используются, и кое-кто из пользователей уже поговаривает, что неплохо бы их вообще убрать. Что, надеюсь, сделано не будет.
Отсюда напрашивается категорический вывод, что выпуск давно анонсированной версии формата 3.0 должен сопровождаться выходом обновленных версий _стандартной_ читалки, и не менее стандартного редактора. И читалка, и редактор, должны корректно поддерживать все особенности формата и, кроме того, они должны быть _совместимы по формату закладок_ . Последняя «фича» крайне важна для вычитки текстов. Также, в обязательном порядке, должен быть, опять же, стандартный, пакет скриптов для сетевых библиотек. Иначе все улучшения и нововведения просто теряют всякий смысл.
Часть 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 привести необходимо:
reference
Имя автора
Фамилия автора
Юзич
Пример книги в формате FictionBook 2.1
Это пример книги в формате FictiionBook
14 апреля 2006 г.
ru
Юзич
FB Tools
2006-04-14
1E693E16-8A80-4391-9800-C1A91A5E29A7
1.0
v 1.0 — создание книги (Юзич)
Юзич
ПРИМЕР КНИГИ В ФОРМАТЕ FictionBook 2.1
Это эпиграф
Автор эпиграфа
Первая секция
Секции обычно содержат текст.
Текст может разделяться пустыми строками.
Подзаголовок
Или подзаголовками.
Вторая секция
Первая вложенная секция
Текст может быть полужирным или курсивным .
В тексте могут быть картинки.
Вторая вложенная секция
Это цитата.
Автор цитаты.
Снова текст.
Третья секция
Стихи:
Парус
А у дельфина взрезано брюхо винтом.
Выстрела в спину не ожидает никто.
На батарее нету снарядов уже.
Надо быстрее на вираже.
Но парус! Порвали парус!
Каюсь! Каюсь! Каюсь!
Владимир Высоцкий
Снова обычный текст.
Примечания
1
Текст сноски.
iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAMAAAAcEyWHAAAABGdBTUEAAK/INwWK6QAAABl0
RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAGUExURQEBAf///+tZAq0AAAAY
SURBVHjaYmBAAEZGRjDGzsKvDgYAAgwABR4AH2mwMFgAAAAASUVORK5CYII=
§ 2.3 Элементы описания книги.
Базовые структурные элементы
В самом начале любого файла книги идет признак формата XML
Здесь указана сигнатура принадлежности к формату XML, его версия и кодировка файла. Для русскоязычных FictionBook это обычно windows-1251 или utf-8. [2.2]
За ним в обязательном порядке следует:
Элемент FictionBook
Корневой элемент.
_Cинтаксис_ : content.
Фактически, всегда используется в виде:
content
.
_Используется в элементах_ : корневой элемент
_Вложенные элементы_ : STYLESHEET , DESCRIPTION , BODY , BINARY
_Количество вхождений_ : одно
_Атрибуты_ : xmlns
_Версия формата_ : 2.0
_Пример_ : см. пример книги FictionBook, § 2.2
Элемент stylesheet
Список стилей, позволяющих конкретно определить, как будет выглядеть книга на экране устройства для чтения. До последнего времени читалками не поддерживался и практически не использовался. Лишь в конце 2007 года появился CoolReader 3.09 с экспериментальной поддержкой stylesheet.
_Cинтаксис_ : content.
_Используется в элементах_ : 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;}
Элемент description
Заголовок (описание) книги.
_Cинтаксис_ : content.
_Используется в элементах_ : FICTIONBOOK
_Вложенные элементы_ : TITLE-INFO , SRC-TITLE-INFO , DOCUMENT-INFO , PUBLISH-INFO , CUSTOM-INFO , OUTPUT
_Количество вхождений_ : одно
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
nonfiction
Имя автора
Фамилия автора
Название книги
2007 г.
ru
Юзич
FB Tools
2006-07-10
46C35002-014D-4AE4-8FE4-5E7881D72B0D
1.0
Элемент body
Тело книги. Допускаются дополнительные body для примечаний и дополнительных материалов.
_Cинтаксис_ : content.
_Используется в элементах_ : FICTIONBOOK
_Вложенные элементы_ : IMAGE , TITLE , EPIGRAPH , SECTION
_Количество вхождений_ : одно и более
_Атрибуты_ : name
_Версия формата_ : 2.0
_Пример_ :
Заголовок
Текст.
Элемент binary
Содержит бинарные элементы, присоединяемые к файлу книги. Как правило, это картинки.
_Cинтаксис_ : content.
_Используется в элементах_ : FICTIONBOOK
_Вложенные элементы_ : нет
_Количество вхождений_ : произвольное
_Атрибуты_ : id (обязательный), content-type (обязательный)
_Версия формата_ : 2.0
_Пример_ :
iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAMAAAAcEyWHAAAABGdBTUEAAK/INwWK6QAAABl0
RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAGUExURQEBAf///+tZAq0AAAAY
SURBVHjaYmBAAEZGRjDGzsKvDgYAAgwABR4AH2mwMFgAAAAASUVORK5CYII=
§ 2.4 Элементы описания книги (description). Элементы первого уровня
Элемент title-info
Содержит базовую информацию о книге (заголовок, информация об авторе и переводчике, аннотация, вхождение в серию и т.д.)
_Cинтаксис_ : content.
_Используется в элементах_ : DESCRIPTION
_Вложенные элементы_ : GENRE , AUTHOR , BOOK-TITLE , ANNOTATION , KEYWORDS , DATE , COVERPAGE , LANG , SRC-LANG , TRANSLATOR , SEQUENCE
_Количество вхождений_ : одно
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
nonfiction
Cергей
Лукьяненко
Спектр
2004 г.
ru
Элемент src-title-info
Аналогично SRC-TITLE-INFO содержит базовую информацию о книге-оригинале (для переводных книг).
Здесь наблюдается интересный момент: как _title-info_ , так и _src-title-info_ содержат элемент _src-lang_ . Хотя, по логике, его следовало бы упразднить.
_Cинтаксис_ : content.
_Используется в элементах_ : DESCRIPTION
_Вложенные элементы_ : GENRE , AUTHOR , BOOK-TITLE , ANNOTATION , KEYWORDS , DATE , COVERPAGE , LANG , SRC-LANG , TRANSLATOR , SEQUENCE
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.1
_Пример_ :
adv_maritime
Robert
Loevis
Stivenson
Treasure Island
1896
en
Элемент document-info
Информация о самом файле FictionBook — кем, когда и с помощью каких программных средств создана данная электронная книга.
_Cинтаксис_ : content.
_Используется в элементах_ : DESCRIPTION
_Вложенные элементы_ : AUTHOR , PROGRAM-USED , DATE , SRC-URL , SRC-OCR , ID , VERSION , HISTORY
_Количество вхождений_ : одно
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
Юзич
[email protected]
FB Tools
2006-05-22
http://hungryewok.narod.ru/
OCR: Голодный Эвок Грызли; SpellCheck: Юзич
86F8C27D-9F15-4DE7-8751-12AE057CA4DC
1.0
v 1.0 — вычитка, конвертация в FB2 (Юзич)
Элемент publish-info
Информация о бумажном оригинале книги, если таковой существовал в природе.
_Cинтаксис_ : content.
_Используется в элементах_ : DESCRIPTION
_Вложенные элементы_ : BOOK-NAME , PUBLISHER , CITY , YEAR , ISBN , SEQUENCE
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
С. Павлов «Лунная радуга»
Детская литература
Москва
1989
5-08-000842-3
Элемент custom-info
Произвольная дополнительная информация.
_Cинтаксис_ : текст.
_Используется в элементах_ : DESCRIPTION
_Вложенные элементы_ :
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : info-type (обязательный)
_Версия формата_ : 2.0
_Пример_ :
Сайт Голодного Эвока Грызли — лучшее в Рунете собрание книг по «Звёздным Войнам»!
§ 2.5 Элементы описания книги (description). Элементы второго уровня
Элемент genre
Жанр произведения.
Содержимое элемента строго фиксировано и определяется файлом FictionBookGenres.xsd, входящим в состав спецификации FictionBook.
Список жанров с переводом приведен в Приложении В.
_Cинтаксис_ : фиксированное значение.
_Используется в элементах_ : TITLE-INFO , SRC-TITLE-INFO
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или более
_Атрибуты_ : match
_Версия формата_ : 2.0
_Пример_ :
sf_action
sf_space
Элемент author
Автор произведения или создатель электронной книги.
Согласно спецификации, существуют два варианта правильного заполнения элемента. В первом случае, ОБЯЗАТЕЛЬНО должны быть заполнены поля «Имя» и «Фамилия» (элементы _first-name_ и _last-name_ ). Во втором — поле «Ник» (элемент _nickname_ ).
_Cинтаксис_ : Content.
_Используется в элементах_ : TITLE-INFO , SRC-TITLE-INFO , DOCUMENT-INFO
_Вложенные элементы_ : FIRST-NAME , MIDDLE-NAME , LAST-NAME , NICKNAME , HOME-PAGE , EMAIL
_Количество вхождений_ : одно или более
_Атрибуты_ : нет
_Версия формата_ : 2.0
Кондратович
Михаил
Иосифович
Юзич
http://www.yuzich.narod.ru
[email protected]
Элемент book-title
Название книги.
_Cинтаксис_ : текст.
_Используется в элементах_ : TITLE-INFO , SRC-TITLE-INFO
_Вложенные элементы_ :
_Количество вхождений_ : одно
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
Элемент annotation
Аннотация. Краткое текстовое описание книги
_Cинтаксис_ : content.
_Используется в элементах_ : TITLE-INFO , SRC-TITLE-INFO , SECTION
_Вложенные элементы_ : P , POEM , CITE , SUBTITLE , TABLE , EMPTY-LINE
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : id
_Версия формата_ : 2.0
_Пример_ :
Элемент keywords
Список ключевых слов, с помощью которых библиотечный софт может искать книгу.
Слова должны быть характерными для конкретного произведения.
_Cинтаксис_ : текст.
_Используется в элементах_ : TITLE-INFO , SRC-TITLE-INFO
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
Лунная радуга, Анарда, экзот, гурм, МУКБОП, Япет, Казаранг
Элемент date
Дата написания книги или создания файла.
Список ключевых слов, с помощью которых библиотечный софт может искать книгу.
Элемент _date_ предусмотрен также и в стихотворениях, но из-за отсутствия поддержки в редакторах там не используется.
_Cинтаксис_ : текст.
_Используется в элементах_ : TITLE-INFO , SRC-TITLE-INFO , DOCUMENT-INFO , POEM
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : value
_Версия формата_ : 2.0
_Пример_ :
Красноярск, июнь 1989
Элемент coverpage
Картинка обложки. Содержит внутри элемент _image_ , в который непосредственно и находится ссылка на bin-объект. Элементов _image_ может быть несколько.
_Cинтаксис_ :
_Используется в элементах_ : TITLE-INFO , SRC-TITLE-INFO
_Вложенные элементы_ : IMAGE
_Количество вхождений_ : одно или отсутствует.
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
Элемент lang
Язык, на котором написана книга.
Список возможных значений приведен в Приложении Г.
_Cинтаксис_ : по возможности, фиксированное значение
_Используется в элементах_ : TITLE-INFO , SRC-TITLE-INFO
_Вложенные элементы_ : нет
_Количество вхождений_ : одно
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
ru
Элемент src-lang
Язык, на котором написан оригинал (для переводных книг).
Список возможных значений приведен в Приложении Г.
_Cинтаксис_ : по возможности, фиксированное значение
_Используется в элементах_ : TITLE-INFO , SRC-TITLE-INFO
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
en
Элемент translator
Информация о переводчике (для переводных книг).
_Cинтаксис_ : content
_Используется в элементах_ : TITLE-INFO , SRC-TITLE-INFO
_Вложенные элементы_ : FIRST-NAME , MIDDLE-NAME , LAST-NAME , NICKNAME , HOME-PAGE , EMAIL
_Количество вхождений_ : произвольное
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ : см. пример элемент author
Элемент sequence
Серия, в которую входит книга. Допускается неограниченное число вложенных серий.
_Cинтаксис_ : или
_Используется в элементах_ : TITLE-INFO , SRC-TITLE-INFO
_Вложенные элементы_ : SEQUENCE
_Количество вхождений_ : произвольное
_Атрибуты_ : name (обязательный), number
_Версия формата_ : 2.0
_Пример_ :
Элемент program-used
Программное обеспечение, использовавшееся при создании книги.
_Cинтаксис_ : текст
_Используется в элементах_ : DOCUMENT-INFO
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
FB Tools, EmEditor, hands.drv & brain.sys
Элемент src-url
Ссылка на сайт, если исходный текст книги был скачан из Интернета.
_Cинтаксис_ : текст
_Используется в элементах_ : DOCUMENT-INFO
_Вложенные элементы_ : нет
_Количество вхождений_ : произвольное
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
http://www.natahaus.ru
Элемент src-ocr
Информация о людях, которые сканировали (набирали) и вычитывали книгу.
_Cинтаксис_ : текст
_Используется в элементах_ : DOCUMENT-INFO
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
OCR Zmiy; SpellCheck Юзич
Элемент id
Уникальный идентификационный номер книги.
_Cинтаксис_ : текст
_Используется в элементах_ : DOCUMENT-INFO
_Вложенные элементы_ : нет
_Количество вхождений_ : одно
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
B3627A48-7F9C-400E-8CD7-0159B75F1A14
Элемент version
Номер версии файла.
_Cинтаксис_ : число
_Используется в элементах_ : DOCUMENT-INFO
_Вложенные элементы_ : нет
_Количество вхождений_ : одно
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
1.0
Элемент history
История изменений, вносившихся в файл.
_Cинтаксис_ : Content
_Используется в элементах_ : DOCUMENT-INFO
_Вложенные элементы_ : P , POEM , CITE , SUBTITLE , TABLE , EMPTY-LINE
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : id
_Версия формата_ : 2.0
_Пример_ :
v 1.0 — вычитка, конвертация в FB2 (Юзич)
v 1.1 — дополнительное форматирование (Faiber)
v 1.2 — дополнительная вычитка (Юзич)
v 1.3 — дополнительная вычитка (Юзич)
v 1.4 — окончательная (надеюсь!) вычитка (Юзич)
Элемент book-name
Название бумажного оригинала.
_Cинтаксис_ : текст
_Используется в элементах_ : PUBLISH-INFO
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ : см. пример элемента _publish-info_
Элемент publisher
Название издательства, выпустившего бумажный оригинал.
_Используется в элементах_ : PUBLISH-INFO
_Cинтаксис_ : текст
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ : см. пример элемента _publish-info_
Элемент city
Город, в котором был издан бумажный оригинал.
_Cинтаксис_ :текст
_Используется в элементах_ : PUBLISH-INFO
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ : см. пример элемента _publish-info_
Элемент year
Год выхода бумажного оригинала
_Cинтаксис_ : текст
_Используется в элементах_ : PUBLISH-INFO
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ : см. пример элемента _publish-info_
Элемент isbn
ISBN-код бумажного оригинала.
_Cинтаксис_ : текст
_Используется в элементах_ : PUBLISH-INFO
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ : см. пример элемента _publish-info_
§ 2.6 Элементы описания книги (description). Элементы третьего уровня (информация об авторе)
Элемент first-name
Имя автора книги или документа, а также переводчика.
_Cинтаксис_ : текст
_Используется в элементах_ : AUTHOR , TRANSLATOR
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ : см. пример элемента _author_ , § 2.5
Элемент middle-name
Отчество автора книги или документа, а также переводчика.
_Cинтаксис_ : текст
_Используется в элементах_ : AUTHOR , TRANSLATOR
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ : см. пример элемента _author_ , § 2.5
Элемент last-name
Фамилия автора книги или документа, а также переводчика.
_Cинтаксис_ : текст
_Используется в элементах_ : AUTHOR , TRANSLATOR
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ : см. пример элемента _author_ , § 2.5
Элемент nickname
Ник (сетевой псевдоним) автора книги или документа, а также переводчика.
_Cинтаксис_ : текст
_Используется в элементах_ : AUTHOR , TRANSLATOR
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ : см. пример элемента _author_ , § 2.5
Элемент home-page
Адрес персонального сайта автора книги или документа, а также переводчика.
_Cинтаксис_ : текст
_Используется в элементах_ : AUTHOR , TRANSLATOR
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ : см. пример элемента _author_ , § 2.5
Элемент email
Адрес электронной почты автора книги или документа, а также переводчика.
_Cинтаксис_ : текст
_Используется в элементах_ : AUTHOR , TRANSLATOR
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ : см. пример элемента _author_ , § 2.5
§ 2.7 Элементы тела книги (body).
Элемент image
Картинка.
_Cинтаксис_ :
_Используется в элементах_ : BODY , SECTION , P
_Вложенные элементы_ : нет
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : alt, title, id, href (обязательный).
_Версия формата_ : 2.0
_Пример_ :
Элемент title
Заголовок книги, раздела или стихотворения. С версии 2.1 — еще и картинки.
_Cинтаксис_ : content
_Используется в элементах_ : BODY , SECTION , STANZA , POEM , IMAGE (2.1)
_Вложенные элементы_ : P , EMPTY-LINE
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
Элемент epigraph
Эпиграф.
_Cинтаксис_ : content
_Используется в элементах_ : BODY , SECTION
_Вложенные элементы_ : P , POEM , CITE , EMPTY-LINE , TEXT-AUTHOR
_Количество вхождений_ : произвольное
_Атрибуты_ : id
_Версия формата_ : 2.0
_Пример_ :
Черт побери! Как и все другие, наказанные нами, вы управляетесь законом, который богачи придумали для собственной безопасности. Эти трусливые собачьи души не имеют смелости каким-либо иным способом защитить то, что они мошеннически нахапали. Проклятья и кровь на имуществе этих продувных бестий. Между нами единственное различие: они обирают бедняков под покровительством закона, не так ли? А мы грабим богатых, рассчитывая только на свою храбрость.
Чарльз Беллами, пират
Элемент section
Раздел.
_Cинтаксис_ : content
_Используется в элементах_ : BODY , SECTION
_Вложенные элементы_ : TITLE , EPIGRAPH , IMAGE , ANNOTATION , SECTION , P , POEM , SUBTITLE , CITE , EMPTY-LINE , TABLE
_Количество вхождений_ : одно и более
_Атрибуты_ : id
_Версия формата_ : 2.0
_Пример_ :
Заголовок секции
Текст.
§ 2.8 Элементы раздела книги (section).
Элементы первого уровня.
Элемент cite
Цитата. Отрывок текста из другого произведения.
В FictionBook с поспощью тэга _cite_ также выделяются письма, записки, надписи, списки и еще много чего.
_Cинтаксис_ : content
_Используется в элементах_ : SECTION , EPIGRAPH , ANNOTATION , HISTORY
_Вложенные элементы_ : P , POEM , EMPTY-LINE , SUBTITLE , TABLE , TEXT-AUTHOR
_Количество вхождений_ : произвольное
_Атрибуты_ : id
_Версия формата_ : 2.0
_Пример_ :
«Что происходит в Зеленом Доме? По не подтвержденным, но и не опровергнутым сведениям несколько дней назад внушительная группа боевых ведьм совершила стремительный вояж за пределы Тайного Города. Куда именно? Как ни странно, это осталось загадкой: наши белокурые красавицы изменили традиционной словоохотливости и держат рот на замке. Остальные Великие Дома не проявляют беспокойства…»
(«Тиградком»)
Элемент poem
Стихи, песни, баллады и т.д.
_Cинтаксис_ : content
_Используется в элементах_ : SECTION , EPIGRAPH , CITE , ANNOTATION , HISTORY
_Вложенные элементы_ : TITLE , EPIGRAPH , STANZA , TEXT-AUTHOR , DATE
_Количество вхождений_ : произвольное
_Атрибуты_ : id
_Версия формата_ : 2.0
_Пример_ :
В тяжелой мантии торжественных обрядов…
В тяжелой мантии торжественных обрядов,
Неумолимая, меня не встреть.
На площади, под тысячами взглядов,
Хочу я умереть.
Чтобы лился на волосы и в губы
Полуденный огонь.
Чтоб были флаги, чтоб гремели трубы
И гарцевал мой конь…
Марина Цветаева,
Феодосия, 1913
Элемент p
Обычный абзац текста.
_Cинтаксис_ : content
_Используется в элементах_ : ANNOTATION , HISTORY , SECTION , EPIGRAPH , CITE
_Вложенные элементы_ : A , CODE , EMPHASIS , STRIKETHROUGH , STRONG , STYLE , SUB , SUP , IMAGE
_Количество вхождений_ : произвольное
_Атрибуты_ : id, style
_Версия формата_ : 2.0
_Пример_ :
Cамый обычный текст.
Элемент subtitle
Подзаголовок.
_Cинтаксис_ : content
_Используется в элементах_ : SECTION , STANZA , ANNOTATION , HISTORY
_Вложенные элементы_ : STRONG , EMPHASIS , STYLE , A , STRIKETHROUGH , SUB , SUP , CODE , IMAGE
_Количество вхождений_ : произвольное
_Атрибуты_ : id, style
_Версия формата_ : 2.0
_Пример_ :
* * *
Элемент empty-line
Пустая строка. Может использоваться как «немой» заголовок.
_Cинтаксис_ :
_Используется в элементах_ : SECTION , EPIGRAPH , CITE , TITLE , ANNOTATION , HISTORY
_Вложенные элементы_ : нет
_Количество вхождений_ : произвольное
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
После этого абзаца должна идти пустая строка.
Элемент table
Таблицы.
На момент написания книги поддерживается только читалками CoolReader и AlReader.
_Cинтаксис_ : content
_Используется в элементах_ : SECTION , EPIGRAPH , ANNOTATION , HISTORY
_Вложенные элементы_ : TR
_Количество вхождений_ : произвольное
_Атрибуты_ : id, style
_Версия формата_ : 2.1
_Пример_ :
Заголовок 1-го столбца
Заголовок 2-го столбца
Объединенный заголовок 3-го и 4-го столбцов
Заголовок 5-го столбца
1-я ячейка 1-го столбца
1-я и 2-я ячейки 2-го столбца
1-я ячейка 3-го столбца
1-я ячейка 4-го столбца
1-я ячейка 5-го столбца
2-я ячейка 1-го столбца
2-я ячейка 3-го и 4-го столбцов
2-я ячейка 5-го столбца
Как видим, допускается размещение текста как непосредственно в самих элементах ячеек таблицы (_td_ , _th_ ), так и предварительно заключеннного в элемент _p_ .
Впрочем, это, вероятнее всего, огрех валидатора FBE. Ради эксперимента, я поместил в элемент _td_ элемент _cite_ . И валидатор это спокойно переварил.
§ 2.9 Элементы раздела книги (section).
Элементы второго уровня.
Элемент stanza
Строфа стихотворения.
_Cинтаксис_ : STANZA >content
_Используется в элементах_ : POEM
_Вложенные элементы_ : TITLE , SUBTITLE , V
_Количество вхождений_ : одно и более
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ : см. пример элемента _poem_
Элемент text-author
Автор эпиграфа, цитаты или стихов.
_Cинтаксис_ : content
_Используется в элементах_ : CITE , EPIGRAPH , POEM
_Вложенные элементы_ : STRONG , EMPHASIS , STYLE , A , STRIKETHROUGH , SUB , SUP , CODE , IMAGE
_Количество вхождений_ : произвольное
_Атрибуты_ : id, style
_Версия формата_ : 2.0
_Пример_ : см. пример элемента _poem_
Элемент v
Cтрока в строфе стихотворения.
_Cинтаксис_ : content
_Используется в элементах_ : STANZA
_Вложенные элементы_ : A , CODE , EMPHASIS , STRIKETHROUGH , STRONG , STYLE , SUB , SUP , IMAGE
_Количество вхождений_ : одно и более
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ : см. пример элемента _poem_
§ 2.10 Элементы таблиц
Элемент tr
Строка таблицы.
_Cинтаксис_ : content
_Используется в элементах_ : TABLE
_Вложенные элементы_ : TH , TD
_Количество вхождений_ : одно и более
_Атрибуты_ : aligh
_Версия формата_ : 2.1
_Пример_ : см. пример элемента _table_
Элемент th
Заголовок столбца таблицы.
_Cинтаксис_ : content
_Используется в элементах_ : TR
_Вложенные элементы_ : A , CODE , EMPHASIS , STRIKETHROUGH , STRONG , STYLE , SUB , SUP , IMAGE
_Количество вхождений_ : одно или отсутствует
_Атрибуты_ : id, style, colspan, rowspan, aligh
_Версия формата_ : 2.1
_Пример_ : см. пример элемента _table_
Элемент td
Ячейка столбца таблицы.
_Cинтаксис_ : content
_Используется в элементах_ : TR
_Вложенные элементы_ : A , CODE , EMPHASIS , STRIKETHROUGH , STRONG , STYLE , SUB , SUP , IMAGE
_Количество вхождений_ : одно и более
_Атрибуты_ : id, style, colspan, rowspan, aligh
_Версия формата_ : 2.1
_Пример_ : см. пример элемента _table_
§ 2.11 Элементы абзаца (стилевые элементы)
Элемент a
Ссылка или сноска.
_Cинтаксис_ : content
_Используется в элементах_ : CODE , EMPHASIS , P , STRIKETHROUGH , STRONG , STYLE , SUBTITLE , SUB , SUP , TH , TD , V
_Вложенные элементы_ : CODE , EMPHASIS , STRIKETHROUGH , STRONG , STYLE , SUB , SUP , IMAGE
_Количество вхождений_ : произвольное
_Атрибуты_ : href (обязательный), type
_Версия формата_ : 2.0
_Пример_ :
см. пример
Элемент code
Преформатированный текст. В читалках должен отображаться моноширинным шрифтом.
Может использоваться, чтобы выделить исходники программ и примеры.
На момент написания книги поддерживается только читалкой CoolReader. Причем, поддерживается _неправильно_ — как элемент аналогичный сite, хотя это такое же стилевое выделение, как strong или emphasis.
_Cинтаксис_ : content
_Используется в элементах_ : CODE , EMPHASIS , P , STRIKETHROUGH , STRONG , STYLE , SUBTITLE , SUB , SUP , TH , TD , V
_Вложенные элементы_ : A , CODE , EMPHASIS , STRIKETHROUGH , STRONG , STYLE , SUB , SUP , IMAGE
_Количество вхождений_ : произвольное
_Атрибуты_ : нет
_Версия формата_ : 2.1
_Пример_ :
Преформатированный текст
Элемент emphasis
Наклонный шрифт (курсив).
_Cинтаксис_ : content
_Используется в элементах_ : CODE , EMPHASIS , P , STRIKETHROUGH , STRONG , STYLE , SUBTITLE , SUB , SUP , TH , TD , V
_Вложенные элементы_ : A , CODE , EMPHASIS , STRIKETHROUGH , STRONG , STYLE , SUB , SUP , IMAGE
_Количество вхождений_ : произвольное
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
Курсивный текст
Элемент strikethrough
Перечеркнутый шрифт.
На момент написания книги читалками не поддерживается.
_Cинтаксис_ : content
_Используется в элементах_ : CODE , EMPHASIS , P , STRIKETHROUGH , STRONG , STYLE , SUBTITLE , SUB , SUP , TH , TD , V
_Вложенные элементы_ : A , CODE , EMPHASIS , STRIKETHROUGH , STRONG , STYLE , SUB , SUP , IMAGE
_Количество вхождений_ : произвольное
_Атрибуты_ : нет
_Версия формата_ : 2.1
_Пример_ :
Эта сволочь , этот нехороший человек…
Элемент strong
Полужирный шрифт.
_Cинтаксис_ : content
_Используется в элементах_ : CODE , EMPHASIS , P , STRIKETHROUGH , STRONG , STYLE , SUBTITLE , SUB , SUP , TH , TD , V
_Вложенные элементы_ : A , CODE , EMPHASIS , STRIKETHROUGH , STRONG , STYLE , SUB , SUP , IMAGE
_Количество вхождений_ : произвольное
_Атрибуты_ : нет
_Версия формата_ : 2.0
_Пример_ :
Полужирный текст
Элемент style
Заранее определенный стиль для отображения книги.
_Cинтаксис_ : content
_Используется в элементах_ : CODE , EMPHASIS , P , STRIKETHROUGH , STRONG , STYLE , SUBTITLE , SUB , SUP , TH , TD , V
_Вложенные элементы_ : CODE , EMPHASIS , STRIKETHROUGH , STRONG , STYLE , SUB , SUP , IMAGE
_Количество вхождений_ : произвольное
_Атрибуты_ : name (обязательный)
_Версия формата_ : 2.0
_Пример_ :
Этот текст будет
—
Элемент sub
Нижний индекс (subscript).
На момент написания книги читалками не поддерживается.
_Cинтаксис_ : content
_Используется в элементах_ : CODE , EMPHASIS , P , STRIKETHROUGH , STRONG , STYLE , SUBTITLE , SUB , SUP , TH , TD , V
_Вложенные элементы_ : A , CODE , EMPHASIS , STRIKETHROUGH , STRONG , STYLE , SUB , SUP , IMAGE
_Количество вхождений_ : произвольное
_Атрибуты_ : нет
_Версия формата_ : 2.1
_Пример_ :
x1+x2=y
Элемент sup
Верхний индекс (superscript).
На момент написания книги читалками не поддерживается.
_Cинтаксис_ : content
_Используется в элементах_ : CODE , EMPHASIS , P , STRIKETHROUGH , STRONG , STYLE , SUBTITLE , SUB , SUP , TH , TD , V
_Вложенные элементы_ : A , CODE , EMPHASIS , STRIKETHROUGH , STRONG , STYLE , SUB , SUP , IMAGE
_Количество вхождений_ : произвольное
_Атрибуты_ : нет
_Версия формата_ : 2.1
_Пример_ :
E=mC2
§ 2.12 Элементы для платных книг
В версию 2.1 были введены специальные элементы для создания платных книг. Поскольку сам формат средств криптозащиты не предусматривает, обрабатывать эти тэги должен исключительно сервер библиотеки.
К сожалению, или, вернее, к счастью, эти элементы до сих пор не нашли применения.
Элемент output
Определяет способ вывода контента книги.
_Cинтаксис_ : content
_Используется в элементах_ : DESCRIPTION
_Вложенные элементы_ : PART , OUTPUT-DOCUMENT-CLASS
_Количество вхождений_ : произвольное
_Атрибуты_ : mode (обязательный), currency, incude-all (обязательный)
_Версия формата_ : 2.1
_Пример_ :
Элемент output-document-class
Назначение неясно.
_Cинтаксис_ :parts
_Используется в элементах_ : OUTPUT
_Вложенные элементы_ : PART
_Количество вхождений_ : произвольное
_Атрибуты_ : name, create, price
_Версия формата_ : 2.1
_Пример_ :
Элемент part
Делит книгу на платные и бесплатные части.
_Cинтаксис_ :
_Используется в элементах_ : OUTPUT
_Вложенные элементы_ : нет
_Количество вхождений_ : произвольное
_Атрибуты_ : mode, include
_Версия формата_ : 2.1
_Пример_ : см. пример элемента output
§ 2.13 Спецсимволы
Некоторые символы в теле книги отображаются особым образом. Это нужно для предотвращения ошибок. Например, «<» и «>» зарезервированы для обозначения границ тэгов. Если их использовать в прямом виде как-то еще, то программа будет считать это ошибкой.
Такие последовательности называются _предопределенными сущностями_ .
Список таких символов в FictionBook крайне мал. Их, собственно, всего три.
& — &;
< — <;
> ; — >;
Cтандартные сущности XML ' и " в FiсtionBook не используются и конвертируются в символы «'» и «"» соответственно.
§ 2.14 Список атрибутов элементов
Многие элементы в FictionBook имеют дополнительные параметры — атрибуты.
Атрибут aligh
Выравнивание текста в ячейке таблицы.
_Используется в элементах_ : TD , TH , TR
_Значение_ : фиксированное; left, right, center, justify
_Значение по умолчанию_ : left
Атрибут alt
Назначение аналогично HTML — текст, отображающийся вместо картинки.
_Используется в элементах_ : IMAGE
_Значение_ : произвольная текстовая строка
Атрибут colspan
Позволяет объединять столбцы таблиц.
_Используется в элементах_ : TH , TD
_Значение_ : произвольное целое число
Атрибут content-type
Определяет тип содержимого элемента-контейнера _binary_
_Используется в элементах_ : BINARY
_Значение_ : фиксированное; image/png, image/jpeg, image/tiff, image/bmp, octet-stream
Атрибут create
Назначение неясно.
_Используется в элементах_ : OUTPUT-DOCUMENT-CLASS
_Значение_ :
Атрибут currency
Валюта, в которой определена цена платной книги.
_Используется в элементах_ : OUTPUT
_Значение_ : ограниченно-произвольное
Атрибут href
Ссылка. Как правило, внутри документа.
_Используется в элементах_ : A , IMAGE
_Значение_ : ссылка.
Атрибут id
Метка, позволяющая ссылаться на элемент.
_Используется в элементах_ : ANNOTATION , BINARY , CITE , EPIGRAPH , IMAGE , P , POEM , SECTION , SUBTITLE , TABLE , TD , TEXT-AUTHOR , TH
_Значение_ : текстовая строка.
Атрибут info-type
Характеризует произвольную информацию.
_Используется в элементах_ : CUSTOM-INFO
_Значение_ : произвольная текстовая строка.
Атрибут include
Назначение неясно.
_Используется в элементах_ : PART
_Значение_ :
Атрибут include-all
Назначение неясно.
_Используется в элементах_ : OUTPUT
_Значение_ : фиксированное
Атрибут match
Определяет степень соответствия произведения выбранному жанру.
_Используется в элементах_ : GENRE
_Значение_ : целое число в диапазоне от 1 до 100
Атрибут mode
Способ вывода платного документа
_Используется в элементах_ : output
_Значение_ :
Атрибут name
Позволяет присвоить элементу имя. В отличие от метки (id), имя элемента используется исключительно программными средствами обработки документа.
_Используется в элементах_ : BODY , SEQUENCE , OUTPUT-DOCUMENT-CLASS
_Значение_ : произвольное
Атрибут number
Порядковый номер книги в серии.
_Используется в элементах_ : SEQUENCE
_Значение_ : произвольное целое число
Атрибут price
Цена платного документа
_Используется в элементах_ : OUTPUT-DOCUMENT-CLASS
_Значение_ : произвольное число c плавающей запятой
Атрибут rowspan
Позволяет объединять строки таблицы.
_Используется в элементах_ : TH , TD
_Значение_ : произвольное целое число
Атрибут style
Позволяет выбрать для элемента предопределенный стиль.
_Используется в элементах_ : P , SUBTITLE , TABLE , TD , TEXT-AUTHOR , TH
_Значение_ : произвольное; строка состоящая из латинских букв и цифр.
Пример:
Текст, выровненный по правому краю
Текст: фон черный, цвет шрифта белый, отступы справа и слева 20 процентов, сверху и снизу — 10 пикселей, высота строки 180 процентов
Атрибут title
Позволяет добавить к рисунку заголовок (подпись)
_Используется в элементах_ : IMAGE
_Значение_ : произвольная текстовая строка
Атрибут type
Определяет тип элемента.
_Используется в элементах_ : A , STYLESHEET
_Значение_ : фиксированное
Атрибут value
Дата.
_Используется в элементах_ : DATE
_Значение_ : произвольная дата в формате YYYY-MM-DD
Атрибут xmlns
Ссылка на спецификацию формата.
Атрибут value: FICTIONBOOK
_Значение_ : жестко фиксированное
§ 2.15 Алфавитный список всех элементов FictionBook 2.1
a (§ 2.11)
annotation (§ 2.5)
author (§ 2.5)
binary (§ 2.3)
body (§ 2.3)
book-name (§ 2.5)
book-title (§ 2.5)
cite (§ 2.8)
city (§ 2.5)
code (§ 2.11)
coverpage (§ 2.5)
custom-info (§ 2.4)
date (§ 2.5)
description ( § 2.3 )
document-info (§ 2.4)
email (§ 2.6)
emphasis (§ 2.11)
empty-line (§ 2.8)
epigraph (§ 2.7)
FictionBook (§ 2.3 )
first-name ( § 2.6 )
genre (§ 2.5)
history (§ 2.5)
home-page (§ 2.6)
id (§ 2.5)
isbn (§ 2.5)
image ( § 2.7 )
keywords (§ 2.5)
lang (§ 2.5)
last-name (§ 2.6)
middle-name (§ 2.6)
nickname (§ 2.6)
output-document-class (§ 2.12)
output ( § 2.12 )
p (§ 2.8)
part ( § 2.12 )
poem (§ 2.8)
program-used (§ 2.5)
publish-info (§ 2.4)
publisher (§ 2.5)
section (§ 2.7)
sequence (§ 2.5)
src-lang (§ 2.5)
src-ocr (§ 2.5)
src-title-info (§ 2.4)
src-url (§ 2.5)
stanza (§ 2.9)
strikethrough (§ 2.11)
strong (§ 2.11)
style (§ 2.11)
stylesheet (§ 2.3 )
sub (§ 2.11)
subtitle (§ 2.8)
sup (§ 2.11)
table (§ 2.8)
td (§ 2.10)
text-author (§ 2.9)
th (§ 2.10)
title (§ 2.7)
title-info (§ 2.4)
tr (§ 2.10)
translator (§ 2.5)
v (§ 2.9)
version (§ 2.5)
year (§ 2.5)
Часть III
Конвертирование книг из других форматов
Cлучаи, когда книга готовится в формате FictionBook _изначально_ , (как _вот эта_ книга, :) ) чрезвычайно редки. Обычно имеется готовый текст, который необходимо конвертировать в формат FictionBook.
Вообще, создание книги в формате FictionBook можно разделить на три этапа.
1) подготовка исходного текста;
2) конвертация текста в формат FictionBook;
3) вычитка, структурирование и окончательная доводка книги.
Первый этап включает набор текста или сканирование исходного документа с распознаванием. Или же выдирание текста из PDF, или, какого-нибудь экзотического формата, например, ExeBook. Также сюда входит первичная вычитка текста.
Второй этап — конвертация в формат FB2.
Третий этап — доводка книги. По моему скромному мнению, самый тонкий и важный этап.
Дело в том, существующие программные средства позволяют конвертировать документы txt, html, doc(rtf), что называется «одним кликом». Но, к сожалению, качественный FB2 таким образом создать совершенно невозможно. После конвертации такую книгу приходится загружать в редактор и доводить до ума вручную.
Использование автоматической конвертации без последующей доводки допустимо только в том случае, если текст конвертируется исключительно для того, чтобы закачать на КПК, прочесть и удалить.
Но если книгу планируется выкладывать в Сеть, или распространять еще каким-то образом, то изготавливать ее «одним кликом» совершенно недопустимо. Не забывайте, что в этом случае, как бы еретически это ни звучало, вы фактически являетесь ИЗДАТЕЛЕМ книги. Проявите же уважение к автору и читателям.
Подготовка исходного текста — это тема для отдельной книги, поэтому здесь углубляться в нее не будем. Предположим, что исходный текст у вас уже есть. О редактировании и доводке книги будет подробно рассказано несколько ниже. Сейчас же речь пойдет именно о конвертировании текстов.
§ 3.1 Требования к исходному тексту
Наиболее предпочтительными являются txt и RTF(DOC). Их, как будет сказано ниже, можно перенести в редактор книг, без каких-либо дополнительных программных средств.
HTML в этом отношении гораздо хуже. Они, как правило, содержат кучу лишней информации, которую приходится отсекать.
Если же книга представлена в PDF, вам придется потратить время, чтобы «выковырять» текст оттуда. Бывает, что это не так-то просто сделать, а бывает — вообще невозможно (например, если в PDF собраны сканы страниц без распознавания).
Ну и очень желательно, чтобы текст был максимально качественный.
Автор этой книги сам убил массу времени, при чистке книги В. Вагина «Заяц, стань тигром». И только потом обнаружилось, что в Internet имеются гораздо более качественные тексты книги…
Поэтому, если вы берете текст из Сети, не поленитесь, поищите разные варианты и сравните их.
Для преобразования текстов в FB2 существуют несколько программных пакетов. Рассмотрим их по порядку.
§ 3.2 Any to FB2
Any to FB2 — «штатное» средство для конвертирования текстовых документов в формат FB2
Для нормальной работы программе требуются MSXML 4.0 и Windows Script Host версии 5.6.
Если MSXML можно скачать с сайта Micro$oft без каких-либо проблем, то при попытке загрузить Windows Script Host производится проверка на «подлинность», т.е. лицензионную чистоту вашей копии Windows.
Поэтому проще обновить Internet Explorer до версии 6.0 SP1. Windows Script Host 5.6 входит в его состав.
Посл установки щелкаем по иконке Any to FB2 GUI.
Интерфейс программы представляет собой окошко с несколькими закладками.
Самая первая строчка — путь ко входному файлу. По умолчанию там стоит «http://». Очевидно, программа может брать файлы на обработку прямо из Internet. Пусть вас это не смущает. Нажав кнопочку с многоточием, вы попадете в стандартное окно выбора файла.
Чуть ниже расположено выпадающее меню «Setting». Здесь можно выбрать профиль настроек. Изначально их там всего три: «Last used» (последние использованные) «Default» (по умолчанию) и «Headers+»
Внизу находятся кнопки:
«IMPORT » — запуск обработки файла. После того, как файл будет успешно преобразован, на месте кнопки «Import» появится кнопочка «Done». Щелкнув по ней, можно сохранить конечный файл.
«SAVE SETTINGS… » — вызывает окошко управления профилями настроек («Manage export presets»). Можно сохранить текущие настройки. Вводим имя профиля в верхней строчке, например, «My priority» и жмем кнопочку «Save». Здеь же можно удалить ненужные профили, выделив их в списке и щелкнув по кнопочке «Delete…»
«CANCEL » — выход из программы.
И кнопочка «? » позволяет узнать номер версии программы. Никакого файла помощи или руководства, к сожалению, не предусмотрено…
Если установить галочку напротив расположенной в самом низу рабочего окна опции «_Automatically close this window when finished_ », то сразу после обработки файла программа закроется.
Теперь рассмотрим закладки.
Первая закладка, «_DOCUMENT_ », содержит важнейшие настройки обработки файла.
«TEXT STRUCTURE » призвана помочь программе разобраться с разбиением текста на абзацы. Предусмотрены три положния радиокнопки.
«_Auto_ » — предоставляет программе решать этот вопрос самостоятельно.
«_Indented_ » — в начале каждого абзаца есть отступ.
«_EmptyLines_ » — после каждого абзаца идет пустая строка.
ВНИМАНИЕ, БАГ!
При преобразовании форматированных текстов, программа считает новым абзацем строку, начинающуюся со знака «тире», «-». вне зависимости, есть отступ перед ней или нет. К счастью, этот глюк можно легко обойти. Можно деформатировать текст по принципу, «одна строка — один абзац», до того, как скормить его конвертору, а можно сделать это и в самой программе, используя регулярные выражения пре-обработки.
Далее идут настройки, относящиеся непосредственно к преобразованию файлов. Сразу скажу, что «ишкуштвенный интилект» программы, весьма и весьма слаб, поэтому большинство настроек приходится отключать.
«PRESERVE